时人不识凌云木,直待凌云始道高。这篇文章主要讲述#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创建表】
推荐阅读
- 第十一周学习作业
- win10浏览版10049新特征总结
- win10斯巴达浏览器中的小娜到底有啥用?
- win10 build 10041安装升级至build 10049版上手体验
- Windows10浏览版10049的各项更新大盘点【图】
- Windows10浏览版无法安装UEFI硬盘怎样办
- Windows10浏览版10049修好了开始屏幕透明问题
- Win10浏览版10049斯巴达与小娜陪你逛意大利餐厅
- Win10系统防范安装程序软件保护电脑安全的办法