mysql补充知识(查缺补漏)
直接po代码和案例
#mysql补充知识(查缺补漏)
USE girls;
#drop table users1;
CREATE TABLE users1(
id INT PRIMARY KEY AUTO_INCREMENT,
uname VARCHAR(257), #故意把VARCHAR的长度设置成257,比255大。(为了做测试)
salary DECIMAL(8,3),
selfIntroduction VARCHAR(300) NULL DEFAULT NULL, #可以为null,设置默认值为空
address VARCHAR(100) NULL DEFAULT '地址不详', #可以为空,默认值为地址不详
remarks TEXT NULL #TEXT类型(长类型,就不用定义其长度了)
)ENGINE=MYISAM; #设置成MYISAM存储引擎
#插入数据(可以使用DEFAULT关键字来插入默认值,类似于SqlServer中插入默认值)
INSERT INTO users1 VALUES(NULL, '令狐冲', 9800.543, DEFAULT, DEFAULT, '备注1');
#
INSERT INTO users1(uname, salary, selfIntroduction, remarks)
VALUES('韦小宝', 9258.56, DEFAULT, '备注2');
#
INSERT INTO users1(uname, salary, selfIntroduction, address, remarks)
VALUES('张无忌', 8600.25, NULL, NULL, '备注3');
#
INSERT INTO users1(uname, salary)
VALUES('杨过', 9755.36);
#
INSERT INTO users1 VALUES(NULL, '乔峰', 7600.23, 'hello', '江西省赣州市于都县', '备注n');
#
SELECT * FROM users1;
/*
#设置存储引擎(存储引擎也叫做表类型)
#MYISAM引擎不支持事务和外键(特点/优点:查询速度很快)
#INNODB引擎支持事务和外键
*/
CREATE TABLE users2(
id INT PRIMARY KEY AUTO_INCREMENT,
uname VARCHAR(256),
age INT,
address VARCHAR(257)
)ENGINE=INNODB;#设置成INNODB存储引擎
#
SELECT * FROM users2;
#
DESC users2;
#添加默认值约束
#方式一(ALTER TABLE 表名 ALTER COLUMN 列名 SET DEFAULT 默认值;)
ALTER TABLE users2 ALTER age SET DEFAULT 16; #COLUMN可以省略不写(我不建议省略)
#COLUMN可以省略不写,但是可读性降低了,所以我不建议省略
ALTER TABLE users2 ALTER COLUMN age SET DEFAULT 18;
#方式二
ALTER TABLE users2 MODIFY COLUMN age INT DEFAULT 20;