MySQL 约束

in 网站建设
关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9

约束

约束保证数据的完整性一致性

按约束字段数量划分

列级约束和表级约束

列级约束既可以在列定义时声明,也可以在列定义后声明; 表级约束只能在列定义后声明.
并不是所有约束都存在表级约束。如NOT NULLDEFAULT约束不存在表级约束.

按功能划分

主键约束 PRIMARY KEY

主键会自动创建索引.

AUTO_INCREMENT只能用于主键,默认从1开始,自增1.

CREATE TABLE tb3(
id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,--指定主键
username VARCHAR(30) NOT NULL
);

外键约束 FOREIGN KEY

实现一对一一对多的关系(关系型数据库)

外键约束的要求:
修改数据表的默认存储引擎:

mysql配置文件(my.ini):

default-storage-engine=INNODB;
外键约束的参照操作
FOREIGN KEY(pid) REFERENCES provinces (id) ON DELETE CASCADE

唯一约束 UNIQUE KEY

唯一约束的字段虽然可以为NULL,却只能有一条记录为NULL,因为要保证唯一性.

CREATE TABLE tb5(  
id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,  
username VARCHAR(20) NOT NULL UNIQUE KEY, --唯一约束
age tinyint UNSIGNED
);

非空约束 NOT NULL

插入记录时,该字段不能为空.

默认约束 DEFAULT

当插入记录时,如果没有明确为字段赋值,则自动赋予默认值。

CREATE TABLE tb6(  
id SMALLINT UNSIGNED AUTO\_INCREMENT PRIMARY KEY,  
username VARCHAR(20) NOT NULL UNIQUE KEY,
sex ENUM('1','2','3') DEFAULT '3'  --默认值为3
);

Tips

修改mysql提示符

mysql -p --prompt '\u@\h \d>'
--......进入数据库
root@localhost (none)>

查看警告信息

SHOW WARNINGS;

查看数据库或表原来的创建命令

SHOW CREATE DATABASE db1;
SHOW CREATE TABLE tb1;

--查看db的编码方式
root@localhost (none)>SHOW CREATE DATABASE t1;
+----------+---------------------------------------------------------------+
| Database | Create Database                                               |
+----------+---------------------------------------------------------------+
| t1       | CREATE DATABASE `t1` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+----------+---------------------------------------------------------------+
1 row in set (0.00 sec)

修改db的编码方式

root@localhost (none)>ALTER DATABASE t1 CHARACTER SET = utf8;
Query OK, 1 row affected (0.00 sec)

root@localhost (none)>SHOW CREATE DATABASE t1;
+----------+-------------------------------------------------------------+
| Database | Create Database                                             |
+----------+-------------------------------------------------------------+
| t1       | CREATE DATABASE `t1` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+-------------------------------------------------------------+
1 row in set (0.00 sec)
关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9
扫一扫关注公众号添加购物返利助手,领红包
Comments are closed.

推荐使用阿里云服务器

超多优惠券

服务器最低一折,一年不到100!

朕已阅去看看