数据库中的三种运算
1.选择:选择符合条件的元组——在横向上运算
2.投影:选择符合要求的字段——在纵向上运算
3.链接:在两个表的笛卡尔积中选择满足条件的元组(笛卡尔积两个几何的乘法)组成一个新的关系
SQL
- SQL:结构化语言查询
- select:SQL查询语句的核心,含义为查询或检索
- select 格式
select 字段名或表达式 from 表名 [where 条件] [group by 字段] [order by 字段asc(升序\desc降序]
注: 多张表,表中间要用逗号隔开
实例
distinct 取消重复值
重点:
查询条件 | 谓语 |
比较 | =,>,<,>=,<=,<>或!= |
确定范围 | between……and , not between……and |
确定集合 | in ,not in |
字符匹配 | like not like |
空值 | is null is not null |
实例:
SQL主要聚集函数
count(*) | 统计元组个数 |
count(列名) | 统计某一列中的个数 |
sum(列名) | 和 |
avg(列名) | 平均数 |
Max(列名) | 最大值 |
Min(列名) | 最小值 |
实例:
当分组是有条件的时候,必须在 group by 之后加上 having+条件语句
多表查询
1,交叉查询
所有表的组合情况
2,内连接查询(所有表的交集(inner))
隐式内连接
表与表之间使用,连接,条件使用where连接
显示内连接
表与表之间使用inner连接,条件使用on连接
3,外连接查询
左外连接
使用left join 连接,查的是左边表的全部和两张表的交集
右外连接
使用right join 连接,查的是右边表的全部和两张表的交集
4,子查询
结果是单行单列:使用运算符连接
结果是多行单列:使用in any all exist 连接
结果是多行多列:作为一张虚拟的表参与运算
5,自关联查询
是一张特殊的表,可以将它当做两张表,起不同的别名,用条件关联上