mysql表相关的约束,主键外键。
来源:互联网 发布:js 滚动加载更多 编辑:程序博客网 时间:2024/06/05 21:56
-- mysql 表的约束
--
-- 1 主键约束 PRIMARY KEY(主键都会自带索引)
-- 关系型数据库要求一个表只有一个主键
-- 3 非空约束 NOT NULL
-- 4 外键约束 foreign key referenc 要求使用外键的表,必须是InnDB存储引擎
USE AAA;
-- 根据一个表 克隆一个表,没有数据,但是结构一样
CREATE TABLE TTT LIKE TEACHER;
-- 存储引擎 目前两种最常用 MYISAM 速度快,INNODB(默认)事务 外键。
CREATE TABLE T1(
TID INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
TNAME VARCHAR(20)
)ENGINE=MYISAM AUTO_INCREMENT=1 DEFAULT CHARSET=UTF8;
-- 复合主键 是一个主键 必须tid和tname有一个不同。相同则不行因为是一个主键
CREATE TABLE T2(
TID INT UNSIGNED NOT NULL AUTO_INCREMENT,
TNAME VARCHAR(20),
PRIMARY KEY(TID,TNAME)
)ENGINE=MYISAM AUTO_INCREMENT=1 DEFAULT CHARSET=UTF8;
-- 2 默认约束 DEFAULT
CREATE TABLE T3(
TID INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
TNAME VARCHAR(30) NOT NULL,
TAGE TINYINT UNSIGNED DEFAULT 18 -- 默认年龄
)ENGINE=MYISAM AUTO_INCREMENT=1 DEFAULT CHARSET=UTF8;
INSERT INTO T3 VALUES(NULL,'张老师','20');
INSERT INTO T3(TNAME) VALUES('李老师');
SELECT * FROM T3;
-- 3 非空约束 NOT NULL
-- 4 外键约束 foreign key referenc 要求使用外键的表,必须是InnDB存储
USE AAA;
DROP TABLE teacher,stu;
-- 演示外键使用
CREATE TABLE teacher(
TID INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
TNAME VARCHAR(30) NOT NULL,
KEY(TNAME) -- 建立表的时候,同时在tname列上建立索引
)ENGINE=INNODB AUTO_INCREMENT=1 CHARSET=UTF8;
insert INTO teacher VALUES(NULL,'张老师'),(NULL,'李老师'),(NULL,'王老师');
SELECT * FROM student;
CREATE TABLE student(
SID INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
SNAME VARCHAR(30) NOT NULL,
TID INT UNSIGNED,
CONSTRAINT FK FOREIGN KEY(TID) REFERENCES teacher(TID) ON DELETE CASCADE -- 级联删除
)ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=UTF8;
-- CONSTRAINT FK FOREIGN KEY(TID) REFERENCES TEACHER(TID) -- 创建外键 关联到teacher表
-- 级联删除 与想要删除的字段有关的全部删除 但是不能删除表
-- CONSTRAINT FK FOREIGN KEY(TID) REFERENCES teacher(TID) ON DELETE CASCADE
-- 删除之后 自动设置成null
-- CONSTRAINT FK FOREIGN KEY(TID) REFERENCES teacher(TID) ON DELETE SET NULL
DELETE FROM teacher WHERE TID =2;
DELETE FROM student WHERE SID = 2;
INSERT INTO student VALUES(NULL,'张三',1),(NULL,'李四',2),
(NULL,'张三疯',1),(NULL,'赵六',1);
--
-- 1 主键约束 PRIMARY KEY(主键都会自带索引)
-- 关系型数据库要求一个表只有一个主键
-- 3 非空约束 NOT NULL
-- 4 外键约束 foreign key referenc 要求使用外键的表,必须是InnDB存储引擎
USE AAA;
-- 根据一个表 克隆一个表,没有数据,但是结构一样
CREATE TABLE TTT LIKE TEACHER;
-- 存储引擎 目前两种最常用 MYISAM 速度快,INNODB(默认)事务 外键。
CREATE TABLE T1(
TID INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
TNAME VARCHAR(20)
)ENGINE=MYISAM AUTO_INCREMENT=1 DEFAULT CHARSET=UTF8;
-- 复合主键 是一个主键 必须tid和tname有一个不同。相同则不行因为是一个主键
CREATE TABLE T2(
TID INT UNSIGNED NOT NULL AUTO_INCREMENT,
TNAME VARCHAR(20),
PRIMARY KEY(TID,TNAME)
)ENGINE=MYISAM AUTO_INCREMENT=1 DEFAULT CHARSET=UTF8;
-- 2 默认约束 DEFAULT
CREATE TABLE T3(
TID INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
TNAME VARCHAR(30) NOT NULL,
TAGE TINYINT UNSIGNED DEFAULT 18 -- 默认年龄
)ENGINE=MYISAM AUTO_INCREMENT=1 DEFAULT CHARSET=UTF8;
INSERT INTO T3 VALUES(NULL,'张老师','20');
INSERT INTO T3(TNAME) VALUES('李老师');
SELECT * FROM T3;
-- 3 非空约束 NOT NULL
-- 4 外键约束 foreign key referenc 要求使用外键的表,必须是InnDB存储
USE AAA;
DROP TABLE teacher,stu;
-- 演示外键使用
CREATE TABLE teacher(
TID INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
TNAME VARCHAR(30) NOT NULL,
KEY(TNAME) -- 建立表的时候,同时在tname列上建立索引
)ENGINE=INNODB AUTO_INCREMENT=1 CHARSET=UTF8;
insert INTO teacher VALUES(NULL,'张老师'),(NULL,'李老师'),(NULL,'王老师');
SELECT * FROM student;
CREATE TABLE student(
SID INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
SNAME VARCHAR(30) NOT NULL,
TID INT UNSIGNED,
CONSTRAINT FK FOREIGN KEY(TID) REFERENCES teacher(TID) ON DELETE CASCADE -- 级联删除
)ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=UTF8;
-- CONSTRAINT FK FOREIGN KEY(TID) REFERENCES TEACHER(TID) -- 创建外键 关联到teacher表
-- 级联删除 与想要删除的字段有关的全部删除 但是不能删除表
-- CONSTRAINT FK FOREIGN KEY(TID) REFERENCES teacher(TID) ON DELETE CASCADE
-- 删除之后 自动设置成null
-- CONSTRAINT FK FOREIGN KEY(TID) REFERENCES teacher(TID) ON DELETE SET NULL
DELETE FROM teacher WHERE TID =2;
DELETE FROM student WHERE SID = 2;
INSERT INTO student VALUES(NULL,'张三',1),(NULL,'李四',2),
(NULL,'张三疯',1),(NULL,'赵六',1);
阅读全文
0 0
- mysql表相关的约束,主键外键。
- MySQL约束:非空约束、主键约束、唯一约束、默认约束、外键约束
- 查看mysql所有的主键,外键约束名称
- MySql入门之一:DDL操作创建表(添加主键, 外键约束以及基本的数据类型)
- MySql之DDL操作创建表(添加主键, 外键约束以及基本的数据类型)
- MySQL主键、外键以及子表的删除、更新约束
- 主键约束, 外键约束, 其他约束
- MySQL入门——修改数据表4:添加主键约束、显示表结构、添加唯一约束、添加外键约束
- SQL的主键和外键约束
- SQL的主键和外键约束
- SQL的主键和外键约束
- SQL的主键和外键约束
- SQL的主键和外键约束
- SQL的主键和外键约束
- SQL的主键和外键约束
- SQL的主键和外键约束
- SQL的主键和外键约束
- SQL的主键和外键约束
- mysql 库的操作
- 奶牛博览会——双背包问题
- 原生js实现图片在固定窗口内放缩、拖拽
- gym 101512 BAPC 2014 I Interesting Integers
- [LeetCode] Algorithms-3.Longest Substring Without Repeating Characters
- mysql表相关的约束,主键外键。
- POJ 2388.Who's in the Middle
- 往eclipse项目中添加jar包
- asp.net core2.0 JWT Bearer 注意添加认证服务
- Linux ubtun 安装wireshark
- 打印X图
- Hive
- 【线筛】线性筛选素数
- ctag php 跳定义