mysql workbench pk、nn、qu、b、un、zf、ai、g、Default/Expression 代表的意思
PK:primary key 主键
NN:not null 非空
UQ:unique 唯一索引
BIN:binary 二进制数据(比text更大的二进制数据)
UN:unsigned 无符号 整数(非负数)
ZF:zero fill 补零 填充0
AI:auto increment 自增
G:generated column 生成列
Default/Expression:设置字段的默认值
删除表和创建有约束的表
sql 的约束
1.NOT NULL
在默认情况下,表接受 NULL 值,约束强制列不接受 NULL 值。 <举例> CREATE TABLE table_name 语句: 现要创建一个学生信息表,对表中的列进行约束
create table Student
(
SNO varchar(5) NOT NULL,
SNAME varchar(20)
);
ALTER TABLE table_name 语句: 在一个创建好的学生信息表中添加 NOT NULL 约束 添加 NOT NULL 约束
ALTER TABLE Student
ADD COLUMN 列名 int NOT NULL;
2.UNIQUE
唯一约束,防止一个特定的列中两个记录有一致的值。 <举例> CREATE TABLE table_name 语句: 现要创建一个学生信息表,对 SName 列进行 UNIQUE 约束
create table Student
(
SNO varchar(5),
SNAME varchar(20) UNIQUE
);
或者
create table Student
(
SNO varchar(5),
SNAME varchar(20),
unique key uk_sname (SNAME)
);
ALTER TABLE table_name语句: 添加 UNIQUE 约束
ALTER TABLE Student
ADD UNIQUE (SNO);
对SNO列添加UNIQUE约束
3.CHECK
检查约束,保证列中的值符合指定的条件,用于限制列中的值的范围。
<举例> CREATE TABLE table_name 语句: 现要建一个学生信息表,对表中的 SAge 列进行范围约束
create table Student
(
SNO varchar(5),
SNAME varchar(20),
SAGE int CHECK(SAGE >= 0)
);
或者
create table Student
(
SNO varchar(5),
SNAME varchar(20),
SAGE int ,
CHECK(SAGE >= 0)
);
ALTER TABLE table_name语句: 添加约束:
ALTER TABLE Student
ADD CHECK (SAGE>=0);
4.PRIMARY KEY
主键约束,在所有约束中,最重要的,也最常用。要向符合第一范式,则每个表中都必须有一个主键(提供表之间的链接),是 UNIQUE 约束和 NOT NULL 约束的组合,确保某列必须要有唯一标识符,主键约束不可重复,不可 NULL 值。
<举例> CREATE TABLE table_name 语句: 现要创建一个学生信息表,对 SId 列进行主键 PRIMARY KEY 约束
create table Student
(
SNO varchar(5) PRIMARY KEY,
SNAME varchar(20)
);
或者
create table Student
(
SNO varchar(5),
SNAME varchar(20),
primary key(SNO)
);
ALTER TABLE table_name 语句: 添加约束
ALTER TABLE Student
ADD PRIMARY KEY (SNO);
5.FOREIGN KEY
外键约束,主键和外键创建了不同表中数据的相互关系。
<举例> CREATE TABLE table_name 语句: 现有一个 Student 表,创建一个 SC 表,对 SNO 列进行外键约束
create table SC
(
SNO char(5),
CNO char(5),
foreign key(SNO) references Student(SNO)
);
ALTER TABLE table_name 语句: 添加外键
ALTER TABLE SC
ADD CONSTRAINT sc_fk_sno FOREIGN KEY (SNO)
REFERENCES Student (SNO);
删除主键
ALTER TABLE SC
DROP CONSTRAINT sc_fk_sno;
5.DEFAULT 约束