1.约束:作用:为了保证数据的有效性和完整性
mysql中常用的约束:主键约束(primary key) 唯一约束(unique) 非空约束(not null) 外键约束(foreign key)
1)主键约束:被修饰过的字段唯一非空
注意:一张表只能有一个主键,这个主键可以包含多个字段
方式1:建表的同时添加约束 格式: 字段名称 字段类型 primary key
方式2:建表的同时在约束区域添加约束
所有的字段声明完成之后,就是约束区域了
格式: primary key(字段1,字段2)
create table pk01(
id int,
username varchar(20),
primary key (id)
);
方式3:建表之后,通过修改表结构添加约束
create table pk02(
id int,
username varchar(20)
);
2)唯一约束:(了解)被修饰过的字段唯一,对null不起作用
方式1:建表的同时添加约束 格式: 字段名称 字段类型 unique
create table un(
id int unique,
username varchar(20) unique
);
方式2:建表的同时在约束区域添加约束
所有的字段声明完成之后,就是约束区域了
unique(字段1,字段值2...)
方式3:建表之后,通过修改表结构添加约束
alter table 表名 add unique(字段1,字段2);-- 添加的联合唯一
alter table 表名 add unique(字段1);-- 给一个添加唯一
alter table 表名 add unique(字段2);-- 给另一个添加唯一
3)非空约束(了解)
特点:被修饰过的字段非空
方式:
create table nn(
id int not null,
username varchar(20) not null
);
truncate 清空表 ★
格式:
truncate 表名; 干掉表,重新创建一张空表和delete from 区别:
*****delete属于DML语句 truncate属于DDL语句
delete逐条删除 truncate干掉表,重新创建一张空表
auto_increment 自增
要求:
1.被修饰的字段类型支持自增. 一般int
2.被修饰的字段必须是一个key 一般是primary key
4)笛卡尔积:了解
多张表无条件的联合查询.没有任何意思
select a.*,b.* from a,b;
5)内连接:★
格式1:显式的内连接
select a.*,b.* from a [inner] join b on ab的连接条件
格式2:隐式的内连接
select a.*,b.* from a,b where ab的连接条件
6)外连接:★
左外连接:★
select a.*,b.* from a left [outer] join b on 连接条件; outer 可以不写
意思:
先展示join左边的(a)表的所有数据,根据条件关联查询 join右边的表(b),符合条件则展示出来,不符合以null值展示.
右外连接:
select a.*,b.* from b right [outer] join a on 连接条件; outer 可以不写
意思:
先展示jion右边的表(a)表的所有数据,根据条件关联查询join左边的表(b),符合条件则展示出来,不符合以null值展示.
7)子查询:★
一个查询依赖另一个查询.