主键约束
限制主键列 非空 唯一
一个表应该有一个主键
只能有一个主键
PRIMARY KEY
添加主键约束方法:
1.创建数据库表时 直接添加主键约束
2.创建表时,在constraint约束区域,声明指定字段为主键 CONSTRAINT 名称 PRIMARY KEY (字段列表)
3.alter修改表结构 ALTER TABLE persons ADD [CONSTRAINT 名称] PRIMARY KEY (字段列表)
删除主键: ALTER TABLE 表名 DROP PRIMARY KEY
如果设置了主键自动增长 必须 先去掉自动增长 才能删除主键
联合主键 : 将多个列看做是一个主键列 列中不能有null值.然后多列的数据不可以完全相同 单独一列相同是可以的.
非空约束
限制当前列数据不能是null值
一个表可以有多个非空约束
not null
添加约束方法:
1.创建表时 直接在列后指定约束
2.通过修改表结构 添加或删除非空约束:ALTER TABLE 表名 MODIFY 列名 数据类型 [约束];
唯一约束
UNIQUE 约束唯一标识数据库表中的每条记录。
UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。
PRIMARY KEY 拥有自动定义的 UNIQUE 约束。
请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。
添加唯一约束方法:
1.创建表时,在字段描述处,声明唯一
2.创建表时 在constraint区域添加
3.创建表时 不指定 使用修改表结构的方式添加 ALTER TABLE 表名 ADD [CONSTRAINT 名称] UNIQUE (列名)
删除唯一约束:ALTER TABLE 表名 DROP INDEX 自定义名;
多表查询
交叉查询:select 列名,列名 from A,B;
内连接
1.隐式内连接:select 列名 from A,B where 条件;
2.显示内连接: select 列名 from A [inner] join B on 条件;
外连接
1.左外连接:查询A表有,但B表没有的内容
select 列名 from A left [outer] join B on 条件
2.右外连接:查询B表有,A表没有的内容
select 列名 from A right [outer] join B on 条件
全外连接:mysql不支持,但是可以使用union 达到全外的效果
union 查询左表有但是右表没有 右表有但是左表没有的内容
可以将两条语句的查询结果合并为一条 并去重 注意:列数必须一致
union all 合并查询结果 但是 不去重