mysql -约束合集笔记

复制代码
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: 标示在父表中的列
复制代码

 

posted @   正霜霜儿  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
历史上的今天:
2020-04-02 linux-设置代理和取消代理
点击右上角即可分享
微信分享提示