Mysql学习笔记(8)约束、标识列、事务、隔离级别

约束

在这里插入图片描述
在这里插入图片描述

列约束

在这里插入图片描述

CREATE TABLE stu(
	id INT PRIMARY KEY, #主键
	sname VARCHAR(20) NOT NULL, #非空
	age INT DEFAULT 18, #默认值
	seat INT UNIQUE #唯一
)

表约束

CREATE TABLE stu(
	id INT,
	sname VARCHAR(20),
	age INT,
	gender CHAR(1),
	jobid INT,
	seat INT,
	PRIMARY KEY(id), #主键
	UNIQUE(seat), #唯一
	FOREIGN KEY(jobid) REFERENCES job(id) #外键
);
#通用写法
CREATE TABLE IF NOT EXISTS stu(
	id INT PRIMARY KEY, #主键
	sname VARCHAR(20) NOT NULL, #非空
	age INT DEFAULT 18, #默认值
	seat INT UNIQUE, #唯一
	jobid INT,
	FOREIGN KEY(jobid) REFERENCES job(id) #外键
)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

标识列

在这里插入图片描述

#创建表时设置自增长标识列 AUTO_INCREMENT
CREATE TABLE autoTest(
	id INT PRIMARY KEY AUTO_INCREMENT,
	aname VARCHAR(20) NOT NULL,
	age INT DEFAULT 18
);
#修改表时设置标识列
ALTER TABLE `autoTest` MODIFY id INT PRIMARY KEY AUTO_INCREMENT;

#修改表时删除自增标识列
ALTER TABLE `autoTest` MODIFY id INT

事务

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#修改表的搜索引擎
ALTER TABLE dept ENGINE=INNODB;
#开启事务
SET autocommit=0;
INSERT INTO dept(NAME,test_column) VALUE('徐凤年',10),('轩辕青锋',16);
UPDATE dept SET test_column = 30 WHERE NAME='徐凤年';
DELETE FROM dept WHERE NAME='徐凤年';
#回滚事务
ROLLBACK;
#提交事务
COMMIT;

隔离级别

在这里插入图片描述

#开启事务
SET autocommit=0;
INSERT INTO dept(NAME,`test_column`) VALUE('李淳刚',30);
SAVEPOINT a; #设置保存点
UPDATE dept SET test_column = 50 WHERE NAME='李淳刚';
ROLLBACK TO a; #回滚至保存点
SELECT * FROM dept
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值