数据库(二)

简介: 数据查询教程包括单表查询操作,如Select语句用于选取属性,可指定列名、使用别名、计算表达式,并通过Distinct去除重复元组。条件查询(Where子句)支持比较运算,如Between、In、Like(支持模糊匹配)及空值判断。连接查询用于合并多表数据,如内连接、外连接和笛卡尔积。例如,通过连接emp和dept表,可获取员工姓名及其所在部门名称。


数据查询

单表查询

  1. 对属性操作

Select后可以写属性名、常数、函数以及他们组成的表达式,除此之外还可以给属性名重命名以及星号和distinct。

Select相当于关系代数的投影运算

  1. 查询表中所有属性

select * from emp

  1. 查询每个员工的编号和姓名

属性的显示顺序与select后的属性列表顺序一致

Select id, name from emp

  1. 查询每个员工的编号和姓名、年工资

Select id, name,salary * 12 from emp

修改查询结果中的列名:在属性后用空格隔开直接定义属性名或者用as隔开

Select id, name,salary * 12  as year_sal from emp

  1. 查询每个员工的编号和姓名、年工资以及年收入

年收入=年工资*(1+提成)

Select id, name, salary * 12  as year_sal , salary * 12 * (1+comm_pct*0.01)

from emp

凡是null参与的运算结果仍未null

空值函数(A,B):如果A为空则函数返回B值,否则返回A值

ifnull(A,B)    

Select id, name, salary * 12  as year_sal , salary * 12 * (1+ifnull(comm_pct,0)*0.01)

  1. 查询每个员工的职位

Select title From emp

  1. 查询员工的职位种类

Distinct:用于去除查询结果中的重复元组,写在select之后属性列表之前

Select distinct title from emp;

  1. 查询每个员工的编号和职位

Select distinct id, title from emp

Select distinct id, distinct title from emp;--错误

  1. 对行的操作(条件查询)

Where—相当于关系代数中选择运算

Where 条件表达式,写在from之后

Where不能使用属性别名

在查询条件中属性尽量不要写在表达式中

  1. 查询1号员工

Select * From emp

Where id = 1;

  1. 工资大于1000的员工

Select * From emp

Where salary > 1000;

  1. 年工资大于12000的员工

选择先做

Select id, name,salary * 12  as year_sal from emp

Where year_sal > 12000;

  1. 查询工资在1000到2000之间的

否定形式 not between and

属性名Between A and B ->

属性 >= A and 属性 <=B

Select * From emp

Where salary between 1000 and 2000;

  1. 在1,3,5,7部门工作的员工

属性名  In (A,B,C……)->

属性 = A or 属性 = B or 属性 = C ……

否定形式:not in

Select * From emp

Where dept_id in(1,3,5,7)

  1. 模糊查询

否定形式:Not like

Like 用于字符串比较

%:任意长度的任意字符

_:任意一个字符

Name = ‘张三’

姓张同学: 张%

姓张的三个字的同学: 张__

名字中有张的: %张%

带Escape的like

带带正则表达式的like

Select * From emp

Where name like ‘A%’

  1. 查询没有提成的员工

Select * From emp

Where comm_pct is null;

  1. 查询有提成的员工

Select * From emp

Where comm_pct is not null;

连接查询

1.每个员工姓名及其所在部门的名称

select name,name from emp,dept ×

select emp.name,dept.name from emp,dept ×

select emp.name,dept.name from emp,dept

where emp.dept_id = dept.id --表连接条件

连接条件至少是表的个数减1个


2.每个部门的名称及其所在区域的名称

select dept.name,region.name from dept,region

where dept.regio_id = region.id

3.每个员工名字及其所在的城市

select epm.name,region.city from emp,region,dept

where emp.dept.id = dept.id and dept.region_id = region_id


表的别名:在from子句中表名后空格隔开直接定义表的别名。当给表定义别名后再访问该表时必须使用其别名


select e.name,r.city from emp e,region e,dept d

where e.dept.id = d.id and d.region_id = region_id


4.不等值连接:

select e.id,e.name,s.grade

from emp e,salgrade s

where e.salary >= s.lowsal and s.salary <=s.higsal

5.自然连接 natural join

select * from A表 natural join B表

6.笛卡尔积

cross join



外连接: 用于显示悬浮元组

相关文章
|
2月前
|
存储 数据管理 数据库
数据库三部分
数据库:用于存储数据的地方 数据库管理系统(DataBase Management System,DBMS):用于管理数据库的软件。是用户创建,管理和维护数据库时所使用的软件,位于用户和操作系统之间,对数据库进行统一管理。DBMS能定义数据存储结构,提供数据的操作机制,维护数据库的安全性,完整性和可靠性。 数据库应用程序:为了提高数据库系统的处理能力所使用的的管理数据库的软件补充。大多情况下,DBMS无法满足对数据管理的要求。数据库应用程序的使用可以满足对数据管理的更高要求,还可以使数据管理过程更加直观和友好。数据库应用程序负责与DBMS进行通信,访问和管理DBMS中存
|
4月前
|
存储 SQL NoSQL
常见的数据库
常见的数据库
49 6
|
4月前
|
关系型数据库 MySQL 数据库
|
8月前
|
存储 SQL 关系型数据库
我们应该要知道的数据库知识
我们常常谈到数据库可能就会想到Oracle数据库、ACCESS数据库、SQL数据库、MySQL等等,
42 1
|
8月前
|
存储 传感器 监控
数据库的应用
数据库广泛应用于电子商务、物流、酒店管理、医疗、航空、教育、政府和物联网等领域,用于高效存储和管理商品信息、订单数据、医疗记录、航班详情等各类数据,提升效率和服务质量。随着技术进步,其应用场景将持续扩展。
68 1
|
存储 SQL 数据库
数据库—耿建玲视频总结(三)
其实这章很是简单的,索引(编号),其中讲解了索引的优缺点;以及都有什么类别的索引,最后就是如何建立。
|
数据库
数据库1-3章小总结
数据库1-3章小总结
51 0
|
8月前
|
Go 数据库
数据库的实现
数据库的实现
|
存储 SQL 安全
一、如何快速掌握数据库
一、如何快速掌握数据库
128 0
|
关系型数据库 MySQL 数据库