SQL语句之2约束

约束

约束定义:添加在列上的,对该列进行各种各样的限制。

1、 主键约束(唯一标识) primary key

非空

唯一

可以被引用(外键的时候说)

主键的添加方式:

建表的时候,直接加主键

 SQL语句之2约束

SQL语句之2约束

2、 主键自增长 AUTO_INCREMENT

指的是添加数据的时候,不用管主键的值,所谓的自增长,就是在上一条数据(找主键值最大的那条数据)的主键值上+1

 SQL语句之2约束

SQL语句之2约束 

3、 非空约束 not null

 SQL语句之2约束

SQL语句之2约束

 SQL语句之2约束

4、 唯一约束 unique

 SQL语句之2约束

 SQL语句之2约束

第一次执行成功,第二次失败

5、 模型概念(Oracle讲)

6、 外键约束

一个表的外键必须是另一个表的主键(1表的外键需要引用2表的主键)

外键的值可以重复

一张表中可以有多个外键(一般不用,太麻烦,容易出现耦合)

语法:CONSTRAINT外键名字 FOREIGN KEY(外键列名) REFERENCES 关联表(关联表的主键)

如何添加外键:在创建表的时候,直接添加外键

 SQL语句之2约束

删除外键:需要知道外键的名字,

显示建表的SQL语句

SQL语句之2约束

接下来删除外键,语法如下:

SQL语句之2约束

提示:sqlyog无法看出是否删除成功,验证方式为,显示建表语句,外键被删除

额外的去添加外键

ALTER TABLE 需要添加外键的表名 ADD CONSTRAINT 外键名字 FOREIGN KEY

(需加外键表的字段名) REFERENCES 关联表(关联表的主键)

 SQL语句之2约束

外键最主要的作用是把两个表联系起来进行查询(多表联查,最难的)

 

编码问题

1、 查看mysql数据库的编码

 SQL语句之2约束

character_set_clientmysql使用指定的编码方式解读客户端发送过来的数据

character_set_resultsmysql使用指定的编码方式解读结果集,再发送给客户端

数据库的备份问题

完全备份:把所有的数据(包括以前的,包括更改的sql语句)都备份,一星期备份一次

差异备份:根据版本来备份  V1.0  V2.0(一个月一个版本),一天备份一次

增量备份:根据修改的内容来备份(包括SQL语句),2-3小时备份一次

 

1、 数据库导出SQL脚本

mysqldump   -u用户名  -p密码  库名>导出地址\文件名.sql

注意:结束的时候,不加分号。不能登录mysql,直接在dos下执行

SQL语句之2约束

2、 执行导出后的SQL脚本

mysql –uroot –p123 库名 < 路径\文件名.sql

操作流程:

A 先导出数据库的表,得到.sql文件(注意:该文件中没有建库语句)

B 在客户端删除该库的所有的表

C 执行导入sql文件

D 查看该数据库,表和数据是否已经导入

 SQL语句之2约束