-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path数据库语句记录.txt
61 lines (53 loc) · 2.93 KB
/
数据库语句记录.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
### SQL通用语法
单行注释 -- 注释内容
# 注释内容
多行注释 /* 注释内容*/
### DDL-数据库操作
CREATE DATABASE IF NOT EXISTS DEFAULT CHARSET COLLATE
DROP DATABASE IF EXISTS
目前的数据库名 create database if not exists shelfmono default charset utf8;
创建的数据表
create table monoactions(
-> id int,
-> time timestap DEFAULT CURRENT_TIMESTAP,
-> action varchar(5),
-> secret BLOB
-> ,shelf
### 数据库约束
非空约束:限制该字段的数据不能为null
唯一约束:保证该字段的所有数据都是唯一,不重复的
主键约束:一行数据的唯一标识,要求非空且唯一
默认约束:保存数据时,如果未指定该字段的值,则采用默认值
检查约束:保证字段值满足某一个条件
外键约束:两张表的数据之间建立连接,保证数据的一致性和完整性
### 外键约束
父表、子表(含外键)
添加外键 alter table 数据表 add constraint 外键名称 foreign key (外键字段名) references 主表(主表列名)
删除外键 alter table 表名 drop foreign key 外键名称
### 外键删除/更新行为
NO ACTION 当在父表中删除/更新对应记录时,首先检查该记录是否对应外键,如果有则不允许删除/更新。
RESTRICT 当在父表中删除/更新对应记录时,首先检查该记录是否对应外键,如果有则不允许删除/更新。
CASCADE 当在父表中删除/更新对应记录时,首先检查该记录是否对应外键,如果有则也删除/更新外键在子表中的记录。
SET NULL 当在父表中删除/更新对应记录时,首先检查该记录是否对应外键,如果有则设置子表中该外键值为null
SET DEFAULT 父表有变更时,子表将外键列设置成一个默认的值
外键删除/更新 alter table 表名 add constraint 外键名称 foreign key (外键字段名) references 主表(主表列名)on update cascade on delete cascade;
### 多表关系
一对一关系,多用于单表拆分,将一张表的基础字段放在一张表中,其他详情字段放在另一张表中,以提升操作效率
一对多(多对一):一个部门对应多个员工,一个员工对应一个部门实现:在多的一方建立外键,指向一的一方的主键
多对多:建立第三张中间表,中间表至少包含两个外键,分别关联两方主键
destination:检查约束
items:检查约束
shelf:外键约束
secret:唯一约束
acion:检查约束
time:默认约束
user:外键约束
三张表:用户表、日志表、货架表
用户表
create table user(
-> id int primary key auto_increment comment '主键',
-> name varchar(10) not null unique comment '姓名',
-> age int check ( age >0 && age<=120) comment '年龄',
-> satus char(1) default '1' comment '状态',
-> gender char(1) comment '性别'
-> ) comment '用户表';