外键

增加外键

创建表的时候增加外键:在所有的表字段之后,使用foreign key(外键字段) references 外部表(主键字段)

在新增表之后增加外键:修改表结构,使用alter table 表名 add [constraint 外键名字] foreign key(外键字段) references 父表(主键字段);

修改外键&删除外键

alter table 表名 drop foreign key 外键名;

外键条件

外键要存在,首先必须保证表的存储引擎是innodb

列类型必须与父表的主键类型一致

一张表中的外键名字不能重复

增加外键的字段数据已经存在,必须保证数据与父表主键要求对应

外键约束

有三种约束模式

district:严格模式(默认的)

cascade:级联模式

set null:置空模式

语法:foreign key(外键字段) references 父表(主键字段) on delete 模式 on update 模式;

联合查询

基本语法:

select 语句1

union [union 选项]

select 语句2……

union 选项

all:保留所有,不管重复

distinct:去重,默认的

按位置分类

from子查询

where子查询

exists子查询

按结果分类

标量子查询

列子查询

行子查询

表子查询

列子查询

=any等价于in; -- 其中一个即可

any等价于some; -- 二者是一样的

=all为全部

方式:

数据表备份

单表数据备份

SQL备份

增量备份

数据表备份

存储引擎:innodb、myisam

innodb:只有表结构,数据全部存储到 ibdata1 文件中

myisam:表、数据和索引全部单独分开存储

单表数据备份

备份:select */字段列表 into outfile 文件所在路径 from 数据源;

高级备份:select */字段列表 into outfile 文件所在路径 fields 字段处理 lines 行处理 from 数据源;

fields:字段处理,enclosed by(默认'')、terminated by(默认'\t')、escaped by(默认'\\')

lines:行处理,starting by(默认'')、terminated by(默认'\r\n')

单表数据备份

数据还原:

load data infile 文件所在路径

into table 表名[(字段列表)]

fields 字段处理

lines 行处理;

SQL备份

备份:mysqldump.exe

mysqldump/mysqldump.exe -hPup 数据库名字 [数据表名字1 [数据表名字2...]] > 外部文件路径

整库备份:

mysqldump/mysqldump.exe -hPup 数据库名字 > 外部文件路径

SQL还原数据

方案一:使用mysql.exe客户端还原

mysql.exe/mysql -hPup 数据库名字 < 备份文件目录

方案二:使用SQL指令还原

source 备份文件所在路径


你可能感兴趣的:(外键)