- 数据库约束
- 表的关系
- 新增:
- 删除
- 修改
- 查询
1.数据库约束
NOT NULL
-
指示某列不能存储
NULL
值。
UNIQUE
-
保证某列的每行必须有唯一的值。
DEFAULT
-
规定没有给列赋值时的默认值。
PRIMARY KEY
- NOT NULL
和
UNIQUE
的结合。确保某列(或两个列多个列的结合)有唯一标
识,有助于更容易更快速地找到表中的一个特定的记录。
FOREIGN KEY-外键约束:foreign key(字段名) references 主表(列)
2.查询
2.1聚合查询
聚合函数
COUNT([DISTINCT] expr)
返回查询到的数据的 数量
SUM([DISTINCT] expr)
返回查询到的数据的 总和,不是数字没有意义
AVG([DISTINCT] expr)
返回查询到的数据的 平均值,不是数字没有意义
MAX([DISTINCT] expr)
返回查询到的数据的 最大值,不是数字没有意义
MIN([DISTINCT] expr)
返回查询到的数据的 最小值,不是数字没有意义
GROUP BY子句
SELECT
中使用
GROUP BY
子句可以对指定列进行分组查询。需要满足:使用
GROUP BY
进行分组查询时,SELECT
指定的字段必须是
“
分组依据字段
”
,其他字段若想出现在
SELECT
中则必须包含在聚合函数中。
select
column1, sum(column2), ..
from table group by
column1,column3;
HAVING
GROUP BY
子句进行分组以后,需要对分组结果再进行条件过滤时,不能使用
WHERE
语句,而需要用 HAVING
2.2联合查询
内连接
select
字段
from
表
1
别名
1 [inner]
join
表
2
别名
2
on
连接条件
and
其他条件
;
select
字段
from
表
1
别名
1,
表
2
别名
2
where
连接条件
and 其他条件
外连接
外连接分为左外连接和右外连接。如果联合查询,左侧的表完全显示我们就说是左外连接;右侧的表完 全显示我们就说是右外连接。
--
左外连接,表
1
完全显示
select
字段名
from
表名
1 left
join
表名
2
on
连接条件
;
--
右外连接,表
2
完全显示
select
字段
from
表名
1 right
join
表名
2
on
连接条件
;
自连接
自连接是指在同一张表连接自身进行查询。
select...from 表1,表1 where 条件
select...from 表1,join 表2 on 条件
子查询
单行子查询:返回一行记录的子查询
多行子查询:返回多行记录的子查询
select ... from
表
1 where
字段
1 = (select ... from ...);
-- [NOT] IN
select ... from
表
1 where
字段
1 in (select ... from ...);
-- [NOT] EXISTS
select ... from
表
1 where exists (select ... from ... where
条件
);
--
临时表:
form
子句中的子查询
select ... from
表
1
,
(select ... from ...) as tmp where
条件
合并查询
在实际应用中,为了合并多个
select
的执行结果,可以使用集合操作符
union
,
union all
。使用
UNION 和UNION ALL
时,前后查询的结果集中,字段需要一致。
union
该操作符用于取得两个结果集的并集。当使用该操作符时,会自动去掉结果集中的重复行。
union all
该操作符用于取得两个结果集的并集。当使用该操作符时,不会去掉结果集中的重复行。