约束: 防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成的无效的操作或错误新系而提出的。
约束的分类:
-
-
Not NULL约束:非空约束
-
Check约束:检查约束
-
在主键列后面直接加主键约束, 复合主键不能使用这种方式 | 单独声明主键约束 | 声明复合主键,复合主键只能使用这种方式 |
---|---|---|
CREATE TABLE t_stu( sid INT PRIMARY KEY, sname VARCHAR(100), gender CHAR); | CREATE TABLE t_course( cid INT , cname VARCHAR(100), decription VARCHAR(200), PRIMARY KEY(cid)); | CREATE TABLE t_stu_course( sid INT, cid INT, score DOUBLE(4,1), PRIMARY KEY(sid,cid)); |
建表后添加主键约束 | alter table 表名称 add 【constraint 约束名】 primary key (字段名); | |
alter table 表名称 add 【constraint 约束名】 primary key (字段名1,字段名2); | ||
ALTER TABLE t_stu ADD PRIMARY KEY(sid); | ALTER TABLE t_course ADD PRIMARY KEY(cid); |
Unique key,简称UK
同一个表可以有多个唯一约束。
唯一约束可以是某一个列的值唯一,也可以多个列组合值的唯一
建立唯一键的方法:
- create table 表名(gender char not null default(默认值) '男'); 在某个列后面直接加唯一性约束
- alter table表名称 add unique (字段名);
- alter table表名称 add unique (字段名1,字段名2);
外键:
自增列:AUTO_INCREMENT
注意: 整数类型的字段才可以设置自增长。
一个表最多只能有一个自增长列
自增长列必须是主键列或唯一键列。
建立表之间的关系: 一对一、一对多、多对一、多对多
分组:group by +聚合函数
排序:order by + desc(降序)/asc(升序默认的)
限制条数:limit2;(数字-限制的条数)
聚合函数:avg、count、sum、max、min
别名:AS (或者空格)
筛选:having
条件查询:where(从原表中的记录进行筛选)
--- 两个区别(having、where):
-
-
where后面不能写分组函数,而having后面可以使用分组函数
-
运算符:+、-、*、/(满足运算法则)
比较运算符:=,>,>=,<,<=,<>