MySQL之建库建表

1.数据库

创建数据库

CREATE DATABASE mydb2;

不存在数据库才创建,并设置字符集和排序规则

CREATE DATABASE IF NOT EXISTS mydb DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;

在这里插入图片描述
查看建库语句
在这里插入图片描述
查看当前数据库字符集

use mydb2;
show variables like 'character_set_database';

修改数据库字符集

alter database mydb2 CHARACTER SET gbk;

在这里插入图片描述
删除数据库

DROP DATABASE  mydb2;

在这里插入图片描述

2.数据表

创建表

CREATE TABLE [IF NOT EXISTS] table_name (column_name column_type);
CREATE TABLE IF NOT EXISTS `blog`(
   `id` INT AUTO_INCREMENT,
   `author` VARCHAR(40) NOT NULL,
   `phone` CHAR(11) NOT NULL,
   `title` VARCHAR(100) NOT NULL,
   `content` TEXT NOT NULL,
   `publish_date` DATE,
   PRIMARY KEY ( `id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

在这里插入图片描述
查看创建表信息

show create table blog;
desc blog;

在这里插入图片描述
删除表全部数据和表结构,立刻释放磁盘空间,不管是 Innodb 和 MyISAM;

drop table table_name;

删除表全部数据,保留表结构,立刻释放磁盘空间,不管是 Innodb 和 MyISAM;

truncate table table_name;

删除表全部数据,表结构不变,对于 MyISAM 会立刻释放磁盘空间,InnoDB 不会释放磁盘空间;

delete from table_name;

带条件的删除,表结构不变,不管是 innodb 还是 MyISAM 都不会释放磁盘空间;

delete from table_name where 删除条件;

delete 操作以后,使用 optimize table table_name 会立刻释放磁盘空间
delete from 表以后虽然未释放磁盘空间,但是下次插入数据的时候,仍然可以使用这部分空间。

3.数据类型

整数类型

数据类型数据范围字节数数据说明
TINYINT-128 – 1271很小的整数
SMALLINT-32768 – 327672小的整数
MEDIUMINT-2^23 – 2^23-13中等大小的整数
INT-2^31 – 2^31-14普通大小的整数
LONGINT-2^63 – 2^63-18大整数

小数类型
m 表示浮点数的总长度,n 表示小数点后有效位数。

数据类型有效位数字节数数据说明
Float(m,n)74单精度浮点数
Double(m,n)158双精度浮点数
Decimal(m,n)2816定点数

字符串类型

数据类型字节范围数据说明
CHAR(m)0 – 255定长字符串
VARCHAR(m)0 – 65535变长字符串
TINYTEXT0 – 255短文本数据
TEXT0 – 65535文本数据
MEDIUMTEXT0 – 2^24 - 1中等文本数据
LONGTEXT0 – 2^32 - 1极长文本数据
TINYBLOB0 – 255二进制短文本数据
BLOB0 – 65535二进制长文本数据
MEDIUMBLOB0 – 2^24 - 1二进制长中等文本数据
LONGBLOB0 – 2^32 - 1二进制长极长文本数据

时间类型

数据类型字节数数据说明
YEAR1年份 YYYY
TIME3时间 HH:MM:SS
DATE3日期 YYYY-MM-DD
TIMESTAMP4时间戳 YYYY-MM-DD HH:MM:SS
DATETIME8日期时间 YYYY-MM-DD HH:MM:SS

char、varchar、text比较

char固定长度,即每条数据占用等长字节空间;适合用在身份证号码、手机号码等定。
char(n)中的n表示字符数,最大长度是255个字符; 如果是utf8编码方式, 那么char类型占255 * 3个字节。
char存储时尾部加空格补齐相应长度,读取时去掉尾部空格(包括写入的空格)

varchar可变长度,可以设置最大长度;适合用在长度可变的属性。
varchar(n)中的n表示字符数,最大空间是65535个字节, 存放字符数量跟字符集有关系;
MySQL5.0.3以前版本varchar(n)中的n表示字节数;以后版本varchar(n)中的n表示字符数;
varchar实际范围是6553265533, 因为内容头部会占用12个字节保存该字符串的长度;如果字段default null(即默认值为空),整条记录还需要1个字节保存默认值null。
如果是utf8编码, 那么varchar最多存65532/3 = 21844个字符。

text不设置长度, 当不知道属性的最大长度时,适合用text
理论上最多保存65535个字符, 实际上text占用内存空间最大也是65535个字节; 
考虑到字符编码方式, 一个字符占用多个字节, text并不能存放那么多字符; 
跟varchar的区别是text需要2个字节空间记录字段的总字节数。

按照查询速度: char最快, varchar次之,text最慢。

相关链接

首页
上一篇:用户权限管理
下一篇:表结构

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值