【MySQL数据库 | 第四篇】 数据类型+DDL表操作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.1754351 * 10-38 ~ 3.402823466 * 1038 | ---- | 4字节 |
double | 双精度浮点数 | 2.22507385 * 10-308~ 1.79769313 * 10308 | ---- | 8字节 |
decimal | 字符串形式的浮点数 | decimal(m, d) | ---- | m字节 |
日期时间类型
类型 | 说明 | 取值范围 |
---|---|---|
DATE | YYYY-MM-dd ,日期格式 | 1000-01-01 ~ 9999-12-31 |
TIME | HH:mm:ss , 时间格式 | -838:59:59.000000 ~ 838:59:59.000000 |
DATETIME | YY-MM-dd HH:mm:ss | 1000-01-01 00:00:00.000000 ~ 9999-12-31 23:59:59.999999 |
TIMESTAMP | YYYY-MM-dd HH:mm:ss 格式表示的时间戳 | 1970-01-01 00:00:01.000000 ~ 2038-01-19 03:14:07.999999 |
YEAR | YYYY 格式的年份值 | 1901~2155 |
字符串类型
类型 | 说明 | 最大长度 |
---|---|---|
char [(M)] | 固定长字符串,检索快但费空间, 0 <= M <= 255 | M字符 |
varchar [(M)] | 可变字符串0 <= M <= 65535 | 变长度 |
text | 文本串 | 216–1字节 |
列类型修饰属性
属性名 | 说明 | 示例 |
---|---|---|
UNSIGNED | 无符号,只能修来修饰数值类型,表名该列数据不能出现负数 | INT(4) UNSIGNED,表示只能为4位大于等于0的整数 |
ZEROFILL | 不足的位数使用0来填充 | INT(4) ZEROFILL ,如果给定的值为10,此时只有2位,而该列需要4位,不足的2位由0来填充,最终值为0010 |
NOT NULL | 表示该列类型的值不能为空 | VARCHAR (20) NOT NULL,表示该列数据不能为空值 |
DEFAULT | 表示设置默认值 | INT(4) DEFAULT 0,表示该列不赋值时默认为0 |
AUTO_INCREMENT | 表示自增长,只能应用于数值列类型,该列类型必须为键,且不能为空 | INT(11) AUTO_INCREMENT NOT NULLPRIMARY KEY。第一次为该列中插入值时为1,第二次为2 |
数据表操作 - 创建 & 查询 🫡
创建数据表
语法:
CREATE TABLE [IF NOT EXISTS] 数据表名称(
字段名1 列类型(长度) [修饰属性] [键/索引] [注释],
字段名2 列类型(长度) [修饰属性] [键/索引] [注释],
字段名3 列类型(长度) [修饰属性] [键/索引] [注释],
......
字段名n 列类型(长度) [修饰属性] [键/索引] [注释]
) [ENGINE = 数据表类型][CHARSET=字符集编码] [COMMENT=注释];
注意:[…] 为可选参数,最后一个字段后面没有逗号
示例:创建学生表,表中有字段学号、姓名、性别、年龄和成绩:
CREATE TABLE IF NOT EXISTS student(
`number` VARCHAR(30) NOT NULL PRIMARY KEY COMMENT '学号,主键',
name VARCHAR(30) NOT NULL COMMENT '姓名',
sex TINYINT(1) UNSIGNED DEFAULT 0 COMMENT '性别:0-男 1-女 2-其他',
age TINYINT(3) UNSIGNED DEFAULT 0 COMMENT '年龄',
score DOUBLE(5, 2) UNSIGNED COMMENT '成绩'
)ENGINE=InnoDB CHARSET=UTF8 COMMENT='学生表';
查询当前数据库所有表
SHOW TABLES 【查询当前数据库所有表】
mysql> show tables;
查询表结构
DESC 表名 【查询表结构】
示例:查询数据表 student 的表结构
mysql> desc student;
查询指定的建表语句
SHOW CREATE TABLE 表名 【查询指定表的建表语句】
示例:查询上述数据表 student 的建表语句
mysql> show create table student;
如果我的内容对你有帮助,请 点赞 , 评论 , 收藏 。创作不易,大家的支持就是我坚持下去的动力!