comment: 在sql语句的后面表示,注释的字段
primary key == 主键 等价于 唯一 (UNIQUE) 且 非空 (NOT NULL)
主键约束的相关:
主键约束:就是一种约束。
主键字段:该字段上添加了主键约束,这样的字段叫做:主键字段
主键值:主键字段中的每一个值都叫做:主键值 primary key
auto_increment key 主键自动增长
mysql中的unsigned 既为非负数,用此类型可以增加数据长度!
例如如果 tinyint最大是127,那 tinyint unsigned 最大 就可以到 127 * 2
unsigned 属性只针对整型, 而binary属性只用于char 和varchar
表的关系:
一对一: 用户 和用户详情
实现方式: 在任意一方通过加入外键,关联另一方主键按,并且设置为外键唯一
一对多:部门和员工
实现方式: 在多的一方建立外键,指向一的一方的主键
多对多: 订单表和商品表
实现方式:建立第三张中间表,中间表至少包含两个外键,分别关联两方主键
外键:
外键约束:
[CONSTRAINT] [外键名称] FOREIGN KEY(外键列名) REFERENCES 主表(主表列名)
-- 创建表时添加外键约束
CREATE TABLE 表名(
列名 数据类型,
…
[CONSTRAINT] [外键名称] FOREIGN KEY(外键列名) REFERENCES 主表(主表列名)
);
-- 1.创建表添加外键实例
-- 部门表
CREATE TABLE dept(
id int primary key auto_increment,
dep_name varchar(20),
addr varchar(20)
);
-- 员工表
CREATE TABLE emp(
id int primary key auto_increment,
name varchar(20),
age int,
dep_id int,
-- 添加外键 dep_id,关联 dept 表的id主键
CONSTRAINT fk_emp_dept FOREIGN KEY(dep_id) REFERENCES dept(id)
);
添加数据
-- 添加 2 个部门
insert into dept(dep_name,addr) values
('研发部',