目录
一、查看所有表
1.1、语法
二、创建表
2.1、语法
2.2、示例:
2.3、创建数据加时使⽤校验语句[if not exists]
三、查看表结构
3.1、语法
3.2、示例
四、删除表
4.1、语法
4.2、示例
4.3、注意事项
五、主要数据类型
5.1、数值类型
5.2、日期和时间类型
5.3、字符串类型
5.3.1、char 和 varchar 的区别
存储方式:char 固定长度,varchar 可变长度。char 类型会占用固定长度的存储空间,例如如果定义了一个 char(10) 类型的列,无论实际存储的数据长度是多少,都会占用10个字符的存储空间。而 varchar 类型则根据实际存储的数据长度来占用存储空间,例如如果定义了一个 varchar(10) 类型的列,存储一个5个字符长的字符串,则只会占用5个字符的存储空间。
5.3.2、如何选择char和varchar
一、查看所有表
1.1、语法
1 show tables;
注意:创建表时,需要先选择要操作的数据库
如下图:我们选择aokey数据库,使用SQL语句查看表结构,显示为空,因为我们暂未在该数据库中创建表。,下面我们先学习怎么创建表:
二、创建表
2.1、语法
create table aokey_table(
id bigint,
name varchar(20)
);
详细的建表语法参考相关网站:
https://dev.mysql.com/doc/refman/8.0/en/create-table.html
2.2、示例:
此时,我们再来查看表,如下图显示,即表示创建成功:
2.3、创建数据加时使⽤校验语句[if not exists]
如果该1数据库中表已存在,则会报出一个警告 :
表 `aokey_table` 已存在
三、查看表结构
3.1、语法
1 desc 表名;
3.2、示例
解析:
(1)Field:表中的字段
(2)Type:字段的数据类型
(3)Null:当前的字段是否允许为 Null
(4)Key:键值的类型
(5)Defauult:当前列的默认值,不指定时为 NULL
(6)Extra:其他扩展内容(后期展示)
四、删除表
4.1、语法
1 DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [, tbl_name] ...
TEMPORARY:表示临时表
tbl_name:要删除的表名
[, tbl_name] ...:一个drop可以删除很多表,中间用逗号隔开
4.2、示例
mysql> drop table aokey_table;
Query OK, 0 rows affected (0.01 sec)
mysql> show tables;
Empty set (0.00 sec)
删除后,aokey 数据库为空
4.3、注意事项
• 删除表是⼀个危险操作,执行删除语句时⼀定要谨慎
• 删除表成功后,磁盘上对应的数据文件也会被删除
• ⼀次可以删除多个表,表与表之间用逗号隔开
五、主要数据类型
5.1、数值类型
5.2、日期和时间类型
5.3、字符串类型
5.3.1、char 和 varchar 的区别
存储方式:char 固定长度,varchar 可变长度。char 类型会占用固定长度的存储空间,例如如果定义了一个 char(10) 类型的列,无论实际存储的数据长度是多少,都会占用10个字符的存储空间。而 varchar 类型则根据实际存储的数据长度来占用存储空间,例如如果定义了一个 varchar(10) 类型的列,存储一个5个字符长的字符串,则只会占用5个字符的存储空间。
存储效率:char 类型在存储和检索时效率更高。由于 char 类型是固定长度的,所以在存储和读取数据时更快。而 varchar 类型由于可变长度,存储和读取时可能需要更多的操作。所以在需要频繁读写数据的场景下,char 类型更适合。
存储空间:在存储相同数据的情况下,char 类型占用的存储空间通常会比 varchar 类型大。由于 char 类型是固定长度的,所以无论存储的数据长度是多少,都会占用固定长度的存储空间。而 varchar 类型会根据实际存储的数据长度来占用存储空间,所以通常情况下占用的存储空间会比 char 类型少。
5.3.2、如何选择char和varchar
• 如果数据确定长度都一样,就使用定长 char 类型,比如:身份证,md5,学号,邮编。
• 如果数据 ch 度有变化,就使用变长 varchar , 比如:名字,地址,但要规划好长度,保证最长的字符串能存的进去。
• 定长 char 类型比较浪费磁盘空间,但是效率⾼。
• 变长 varchar 类型比较节省磁盘空间,但是效率低。
• 定长 char 类型会直接开辟好对应的存储空间。
• 变长 varchar 类型在不超过定义长度范围的情况下用多少开辟多少存储空间 。