mysql操作语句之数据定义语言DDL example:建库、建表。
库相关
- 创建数据库test
create database test;
- 查看当前在哪个库里
select database();
- 进入test数据库的操作
use test;
- 判断test数据库是否存在,如果不存在则创建数据库test
create database if not exists test;
- 创建数据库test并指定字符集为utf8mb4
create database test default character set utf8mb4;
- 查看test数据库是什么字符集
show create database test;
- 查看当前mysql使用的字符集
show variables like 'character%';
表相关
- mysql数据类型
数据类型是指列、存储过程参数、表达式和局部变量的数据特征,它决定了数据的存储格式,代表了不同的信息类型。
- mysql常见数据类型
<1>整数型
类型 大小 范围(有符号) 范围(无符号unsigned) 用途
TINYINT 1 字节 (-128,127) (0,255) 小整数值
SMALLINT 2 字节 (-32768,32767) (0,65535) 大整数值
MEDIUMINT 3 字节 (-8388608,8388607) (0,16777215) 大整数值
INT 4 字节 (-2147483648,2147483647) (0,4294967295) 大整数值
BIGINT 8 字节 () (0,2的64次方减1) 极大整数值
<2>浮点型
FLOAT(m,d) 4 字节 单精度浮点型 备注:m代表总个数,d代表小数位个数
DOUBLE(m,d) 8 字节 双精度浮点型 备注:m代表总个数,d代表小数位个数
<3>定点型
DECIMAL(m,d) 依赖于M和D的值 备注:m代表总个数,d代表小数位个数
<4>字符串类型
类型 大小 用途
CHAR 0-255字节 定长字符串
VARCHAR 0-65535字节 变长字符串
TINYTEXT 0-255字节 短文本字符串
TEXT 0-65535字节 长文本数据
MEDIUMTEXT 0-16777215字节 中等长度文本数据
LONGTEXT 0-4294967295字节 极大文本数据
char的优缺点:存取速度比varchar更快,但是比varchar更占用空间
varchar的优缺点:比char省空间。但是存取速度没有char快
<5>时间型
数据类型 字节数 格式 备注
date 3 yyyy-MM-dd 存储日期值
time 3 HH:mm:ss 存储时分秒
year 1 yyyy 存储年
datetime 8 yyyy-MM-dd HH:mm:ss 存储日期+时间
timestamp 4 yyyy-MM-dd HH:mm:ss 存储日期+时间,可作时间戳
- 建表语法
create table 表名(
字段名1 字段类型1 约束条件1 注释说明1,
字段名2 字段类型2 约束条件2 注释说明2,
字段名3 字段类型3 约束条件3 注释说明3
);
create table tableName(
columnName1 columnType1 constraint1 comment '',
columnName2 columnType2 constraint2 comment '',
columnName3 columnType3 constraint3 comment ''
);
create table 新表名 as select * from 旧表名 where 1=2;
(comment:此创建方式多用于临时测试时使用,因为索引相关的可能会复制不过来)
create table 新表名 like 旧表名;
- 约束条件
comment ----说明解释
not null ----不为空
default ----默认值
unsigned ----无符号(即正数)
auto_increment ----自增
zerofill ----自动填充
unique key ----唯一值
example
CREATE TABLE student (
id tinyint(5) auto_increment default null comment '学生学号',
name varchar(20) default null comment '学生姓名',
age tinyint default null comment '学生年龄',
class varchar(20) default null comment '学生班级',
sex char(5) not null comment '学生性别',
unique key (id)
)engine=innodb charset=utf8mb4;
- mysql表结构信息相关查询命令
#查看数据库中所有表
show tables;
#查看表结构
desc 表名;
#查看建表语句
show create table 表名;