#yyds干货盘点# 04 MySQL创建表

时人不识凌云木,直待凌云始道高。这篇文章主要讲述#yyds干货盘点# 04 MySQL创建表相关的知识,希望能为你提供帮助。
一、表命令
1.查看所有表

show tables;


2.创建表
CREATE TABLE table_name (
column1_name data_type constraints,
column2_name data_type constraints,
....
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

3.创建一个用户表
CREATE TABLE users (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
birth_date DATE,
phone VARCHAR(11) NOT NULL UNIQUE
)ENGINE=InnoDB DEFAULT CHARSET=utf8;


上面的语句创建了一个名为users的表,其中包含5个字段??id???、??name???、??birth_date???和??phone??。注意,每个字段后面都有一个数据类型声明,表示该字段将存储何种类型的数据,例如:整数、字符串、日期等。


二、mysql支持的常用数据类型
1.数字型
??类型??
??说明??
??取值范围??
??存储需求??


?tinyint?




?非常小的数据?


?有符值: -27 ~27-1?
?无符号值:0~ 28-1?


?1字节?




?smallint?


?较小的数据?
?有符值:  -215?~215-1  ?
?无符号值:  0 ~ 216-1            ?


?2字节?


?mediumint?


?中等大小的数据?
?有符值:  -223?~223-1  ?
?无符号值:  0 ~ 224-1            ?


?3字节?


?int?


?标准整数?
?有符值: -231?~ 231-1  ?
?无符号值:0~ 232-1            ?


?4字节?


?bigint?


?较大的整数?
?有符值: -263?~263-1?
?无符号值:0~264-1            ?


?8字节?
?float?
?单精度浮点数?
?±1.1754351e -38?
?4字节?
?double?
?双精度浮点数?
?±2.2250738585072014e -308?
?8字节?
?decimal?
?字符串形式的浮点数?
?decimal(m,d)?
?m个字节?
单精度和双精度不同
1、在内存中占有的字节数不同
2、有效数字位数不同
3、所能表示数的范围不同


2.字符串
?类型?
?说明?
?最大长度?
char[(M)]
固定长字符串,检索快但费空间,
?0 < =  M  < =    255?
M字符


varchar[(M)]
可变字符串
0 < =  M < = 65535
变长度
tinytext
微型文本串
28–1字节
text
文本串
216–1字节


3.日期
?类型?
?说明?
?取值范围?
DATE
YYYY-MM-DD,日期格式
1000-01-01~
9999-12-31
TIME
Hh:mm:ss ,时间格式
-838:59:59~838:59:59
DATETIME
YY-MM-DD hh:mm:ss
1000-01-01 00:00:00 至
9999-12-31 23:59:59
TIMESTAMP
YYYYMMDDhhmmss
格式表示的时间戳
197010101000000 ~
2037年的某个时刻
YEAR
YYYY格式的年份值
1901~2155


三、MySQL支持的常用约束
? 修饰符?
? 描述 ?
primary key
主键
not null
非空
unique
唯一
default
默认
foreign key
外键


四、存储引擎
MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。

show engines;


五、表命令(crud)
1.查看表结构
desc 表名;

2.查看表的创建语句
show create table 表名;

3.更改表名称
rename table 原表名 to 新表名;

4.修改表
alter table 表名 add|change|drop 列名 类型;

alter table users add age int default 1;

alter table users add user_desc varchar(50) default 哈哈;
alter table users change user_desc userdesc varchar(50);

alter table users drop userdesc

5.删除表
drop table 表名;

六、更新约束
1.先创建一个表,除了主键,不加其他约束。
CREATE TABLE users1 (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50),
birth_date DATE,
phone VARCHAR(11)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

2.给手机号添加唯一约束
ALTER TABLE users1 ADD UNIQUE (phone);

3.删除唯一约束
ALTER TABLE users1 DROP INDEX phone;

4.给名字添加非空约束
ALTER TABLE users1 modify name VARCHAR(50) not null;

5.删除非空约束
ALTER TABLE users1
CHANGE COLUMN `name` `name` VARCHAR(50) NULL ;

6.给生日添加默认约束
ALTER TABLE users1 ALTER birth_date SET DEFAULT 1992-05-11;

7.删除默认约束
ALTER TABLE users1 ALTER birth_date DROP DEFAULT;

【#yyds干货盘点# 04 MySQL创建表】


    推荐阅读