约束
列约束
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