约束: 防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成的无效的操作或错误新系而提出的。
约束的分类:
键约束:主键约束、外键约束、唯一键约束 (PRIMARY KEY/unique not null)
Not NULL约束:非空约束
Check约束:检查约束
Default约束:缺省约束
主键:Primary key,简称PK
每个表有且最多只允许一个主键约束,不允许出现空值
建立主键的方法:
在主键列后面直接加主键约束,
复合主键不能使用这种方式单独声明主键约束声明复合主键,复合主键只能使用这种方式
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);
ALTER TABLE t_stu_course ADD PRIMARY KEY(sid,cid);
唯一键:Unique key,简称UK
同一个表可以有多个唯一约束。
唯一约束可以是某一个列的值唯一,也可以多个列组合值的唯一
建立唯一键的方法:
create table 表名(gender char not null default(默认值) '男'); 在某个列后面直接加唯一性约束
alter table表名称 add unique (字段名);
alter table表名称 add unique (字段名1,字段名2);
外键:Foreign key,简称FK
外键约束是保证一个或两个表之间的参照完整性,外键是构建于一个表的两个字段或是两个表的两个字段之间的参照关系
自增列:AUTO_INCREMENT
注意: 整数类型的字段才可以设置自增长。
一个表最多只能有一个自增长列
自增长列必须非空
自增长列必须是主键列或唯一键列。
建立表之间的关系: 一对一、一对多、多对一、多对多
分组:group by +聚合函数
排序:order by+ desc(降序)/asc(升序默认的)
限制条数:limit2;(数字-限制的条数)
聚合函数:avg、count、sum、max、min
别名:AS (或者空格)
筛选:having
条件查询:where(从原表中的记录进行筛选)
--- 两个区别(having、where):
where针对表中的列发挥作用,查询数据;having针对查询结果中的列发挥作用,筛选数据
where后面不能写分组函数,而having后面可以使用分组函数
having只用于group by分组统计语句
字符串中占位符:“%”所有、“_”一个……
运算符:+、-、*、/(满足运算法则)
比较运算符:=,>,>=,