SQL创建数据库 create database school USE school #(数据库名) 创建数据库表: create table students( userid INT NOT NULL PRIMARY key , lastname varchar(255), firstname varchar(255) )#创建student 数据库表且设置userid 为主键) SQL 约束 : 查看某个表已有的约束: #information_schema数据库名(系统库) #table_constraints表名称(专门存储各个表的约束) SELECT * FROM information_schema.table_constraints WHERE table_name = '表名称'; 1. NOT NULL 非空约束,规定某个字段不能为空(在创建表的时候,可以强制不接受空值) (空字符不等于null ,0也不等于null 1.1 --创建表 lastname varchar(25) NOT NULL 1.2 --建表后 ALTER table 表名称 MODIFY 字段名 数据类型 not NULL 1.3 --删除非空约束 alter table 表名称 MODIFY 字段名 数据类型 NULL (也可不加) 2. UNIQUE (约束唯一标识数据库的每条记录) 2.1 --创建表 userid int not null UNIQUE userid INT not null UNIQUE key CONSTRAINT 约束名 unique(字段名) 例如: 复合唯一约束:create table students( userid INT,last_name varchar(255),first_name varchar(255),CONSTRAINT uk_userid_lname unique(userid,last_name)) 2.2 --建表后 方法一:(ALTER TABLE students add UNIQUE (userid)) 方法二: alter table students modify 字段名 字段类型 UNIQUE : 例如: alter TABLE students MODIFY userid int unique ; 2.3 删除唯一约束: alter table students DROP INDEX uk_userid_lanme (删除唯一约束只能通过删除唯一索引的方式删除) 补充: 可以通过show index FROM 表名;查看表的索引 3. PRIMARY KEY 主键(非空且唯一)约束 --一个表最多只能有一个主键约束,不需要自己命名 3.1 userid int not null primary key --创建表 3.2 create table stu1(id INT PRIMARY KEY auto_increment, name varchar(25)); ##列级约束 3.3 create table stu2(id int not null auto_increment, name varchar(255),pwd varchar(255),CONSTRAINT stu2_id_pwd PRIMARY KEY(id)) #表级约束 3.4 --建表后增加主键约束: alter table 表名 add primary key (字段名) 4. FOREIGN KEY 外键约束。--限定某个表的某个字段的饮用完整性 主表(父表):被引用的表,被参考的表; 从表(子表);引用别人的表,参考别人的表 create table 主表名称( 字段1 数据类型 primary key, 字段2 数据类型 ); create table 从表名称( 字段1 数据类型 primary key, 字段2 数据类型, [CONSTRAINT <外键约束名称>] FOREIGN KEY(从表的某个字段) references 主表名(被参考字段) ); #(从表的某个字段)的数据类型必须与主表名(被参考字段)的数据类型一致,逻辑意义也一样 #(从表的某个字段)的字段名可以与主表名(被参考字段)的字段名一样,也可以不一样 -- FOREIGN KEY: 在表级指定子表中的列 -- REFERENCES: 标示在父表中的列
标签:varchar,--,数据类型,userid,笔记,约束,mysql,table,合集 From: https://www.cnblogs.com/clairedandan/p/18109799