数据库之表的创建及数据类型

文章详细介绍了在MySQL中创建表的语法,包括列定义、注释、存储引擎的选择,以及各种数据类型如文本、数字和日期/时间类型的使用。通过示例展示了如何创建包含不同数据类型的表,并解释了各种数据类型的存储限制和用途。
摘要由CSDN通过智能技术生成

创建表

简单语法:

CREATE TABLE 表名(
    列名 列类型,
    列名 列类型
    );

固定格式:

 create table tb_name(
     字段1 类型 COMMENT‘学生姓名’,
     字段2 类型,
     字段3 类型,
     ..........	
)engine=innodb [default] [character set utf8mb4 collate utf8mb4_090_ai_ci]

详解:

    标准的建表(table)语法(列定义之间以英文逗号,隔开):
    数据表的每行称为一条记录(record),每一列称为一个字段(field)

    COMMENT --- 用来注释

    ENGINE --- 存储机制

案例

CREATE TABLE `g_u` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `g_id` int(11) NOT NULL COMMENT '商品id',
 u_id` int(11) NOT NULL COMMENT '用户id',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2800001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

AUTO_INCREMENT — 自动递增

AUTO_INCREMENT=2800001 — 最大不超过2800001

CHARSET=utf8mb4 — 指定字符集为uft8mb4

COLLATE=utf8mb4_0900_ai_ci — 指定校队规则为utf8mb4_0900_ai_ci

NOT NULL — 表明不能为空

数据类型

在 MySQL 中,有三种主要的类型:文本、数字和日期/时间类型

文本类型

文本型

TINYTEXT — 小的文本 — 255个字符

TEXT — 65,535个字符

MEDIUMTEXT — 中等文本 — 16,777,215个字符

LONGTEXT — 大文本 — 4,294,967,295 个字符

字符串型

char(length)— 保存固定长度的字符串 — 255 个字符

varchar(length)— 保存可变长度的字符串 — 255 个字符 ---- 超过则转换为text类型

二进制文本

BLOB — 65,535个字节

MEDIUMBLOB — 16,777,215个字节

LONGBLOB — 4,294,967,295 个字节
枚举型
ENUM(a,b,c,d) — a,b,c,d中的其中一个

集合型

SET(a,b,c,d) — a;a,b;a,b,c;a,c;可以是这种包含两个或两个以上

数字类型

整数型

TINYINT(size) — -128 - 127 — 1byte

SMALLINT(size) — -32768 - 32767 — 2byte

MEDIUMINT(size) — -8388608 - 8388607 — 3byte

INT(size) — -2147483648 - 2147483647 — 4byte
BIGINT(size) — -9223372036854775808 - 9223372036854775807 — 8byte
UNSIGNED TINYINT — 无符号位,相当于直接为正整数

浮点型

FLOAT(size,d) — size:总的位数,d:小数点后多少位

DOUBLE(size,d) — size:总的位数,d:小数点后多少位
DECIMAL — 作为字符串存储的都被类型,允许固定的小数点 — 相当于如果位数不够需要补0

Date类型

DATE()日期

格式 — YYYY-MM-DD

范围 — 从 ‘1000-01-01’ 到 ‘9999-12-31’

DATETIME() 日期和时间的组合

格式 — YYYY-MM-DD HH:MM:SS

范围 — 从’1000-01-01 00:00:00’ 到 ‘9999-12- 31 23:59:59’

TIMESTAMP() 时间戳

格式 — YYYY-MM-DD HH:MM:SS

范围 — 使用 Unix 纪元(‘1970-01-01 00:00:00’ UTC) 至 ‘2038-01-09 03:14:07’ UTC

TIME() 时间

格式 — HH:MM:SS

范围 — 支持的范围是从 ‘-838:59:59’ 到 ‘838:59:59’

YEAR() 2 位或 4 位格式的年

4 位格式所允许的值 — 1901 到 2155。

2 位格式所允许 的值 — 70 到69,表示从 1970 到 2069

案例

创建一个包含所有数据类型的表

create table multi_tb(
	id int(11) comment '编号',
	company_name char(6) comment '公司名称',
	introduce varchar(100) comment '介绍',
	content1 tinytext  comment '内容1',
	content2 text  comment '内容2',
	content3 mediumtext comment '内容3',
	content4 longtext comment '内容4',
	description1 blob comment '描述1',
	description2 mediumblob comment '描述2',
	description3 longblob comment '描述3',
	iq tinyint comment '0705数据库IQ',
	salary smallint comment '薪资',
	five_plan mediumint comment '五年计划',
	code_num bigint comment '代码量',
	gender enum('f','l') comment '性别',
	hobby set('A','B','C','D') comment '业余爱好',
	share_price float(10,3) comment '股票价格',
	temperature double(4,2) comment '温度',
	amount decimal comment '数量',
	birth_date date comment '出生日期',
	register_date datetime comment '注册日期',
	last_modify_date timestamp comment '修改日期',
	time time comment '时间'
)engine=InnoDB default character set utf8mb4 collate utf8mb4_0900_ai_ci;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值