MySQL基础关键_008_DDL 和 DML(一)
目 录
一、DDL
1.创建表
(1)语法格式
(2)实例
2.查看建表语句
(1)语法格式
(2)实例
3.修改表名
(1)语法格式
(2)实例
4.新增字段
(1)语法格式
(2)实例
5.修改字段名、数据类型
(1)语法格式
(2)实例
6.修改字段数据类型
(1)语法格式
(2)实例
7.删除字段
(1)语法格式
(2)实例
8.删除表
(1)语法格式
(2)实例
二、MySQL 数据类型
1.整数类型
2.浮点数类型
3.定点数类型
4.日期时间类型
5.字符串类型
(1)char
(2)varchar
(3)text
(4)enum
(5)set
6. 二进制类型
一、DDL
1.创建表
(1)语法格式
CREATE TABLE 表名 (
字段名1 数据类型;
字段名2 数据类型;
字段名3 数据类型;
……
);
(2)实例
创建一个人员表 persons 。
字段有:
int 类型的 id,varchar 类型的 name,char 类型的性别(默认是“未知”)。
create table persons (id int,name varchar(255),gender char(2) default '未知'
);
2.查看建表语句
(1)语法格式
SHOW CREATE TABLE 表名;
(2)实例
查看 persons 表的建表语句。
show create table persons;
3.修改表名
(1)语法格式
ALTER TABLE 表名 RENAME 新表名;
(2)实例
将 persons 表名称修改为 users。
alter table persons rename users;
4.新增字段
(1)语法格式
ALTER TABLE 表名 ADD 字段名 数据类型;
(2)实例
为 users 表新增 int 类型的 age 字段 。
alter table users add age int;
5.修改字段名、数据类型
(1)语法格式
ALTER TABLE 表名 CHANGE 字段名 新字段名 数据类型;
(2)实例
将 gender 字段名称修改为 sex。
alter table users change gender sex char(2);
6.修改字段数据类型
(1)语法格式
ALTER TABLE 表名 MODIFY COLUMN 字段名 数据类型;
(2)实例
将 sex 字段类型修改为 varchar(2)。
alter table users modify column sex varchar(2);
7.删除字段
(1)语法格式
ALTER TABLE 表名 DROP 字段名;
(2)实例
删除 age 字段。
alter table users drop age;
8.删除表
(1)语法格式
DROP TABLE 表名;
为防止表不存在导致报错,可以加入判断:
DROP TABLE IF EXISTS 表名;
(2)实例
删除 users 表。
drop table if exists users;
二、MySQL 数据类型
1.整数类型
- 微小整数:tinyint(1 个字节);
- 小整数:smallint(2 个字节);
- 中等大小整数:mediumint(3 个字节);
- 普通大小整数:int(integer)(4 个字节);
- 大整数:bigint(8 个字节)。
2.浮点数类型
单精度(最多 5 位小数):float(4 个字节);
双精度(最多 16 位小数): double(8 个字节)。
3.定点数类型
- decimal,底层实际采用字符串形式存储;
- 语法格式:【decimal(m, d)】。m 表示有效数字,d 表示小数位数。最多有 65 个有效数字,30 位小数。
4.日期时间类型
年:year(1 个字节),格式:YYYY;
时间:time(3 个字节),格式:HH:MM:SS / HHMMSS;
日期:date(3 个字节),格式:YYYY-MM-DD;
日期时间:
datetime(8 个字节)(公元 1000 年 ~ 公元 9999 年),格式:YYYY-MM-DD HH:MM:SS;
timestamp(4 个字节)(公元 1980 年 ~ 公元 2040 年),格式:
YYYY-MM-DD HH:MM:SS;
YYYYMMDDHHMMSS(此格式可以不使用单引号)。
5.字符串类型
(1)char
- char(m):m 长度为 0 ~ 255 个字符;
- 固定长度字符串,定义时指定字符串长度;
- 包含的字符个数最大为 m,当插入的数据字符长度大于 m,则会报错。但超过 m 个字符长度之后都是空格字符,这些空格字符会被自动删除,从而成功插入。
(2)varchar
varchar(m):m 长度为 0 ~ 16383个字符;
长度可变字符串,最大实际长度由最长的数据字符大小和使用的字符集决定;
实际占用空间是字符串实际长度加 1 ;
值保存和检索时尾部空格仍保留。
插入值 | char(4) | 实际存储 | varchar(4) | 实际存储 |
---|---|---|---|---|
' ' | ' ' | 4 字符 | '' | 1 字符 |
'ab' | 'ab ' | 4 字符 | 'ab' | 3 字符 |
'abc' | 'abc ' | 4 字符 | 'abc' | 4 字符 |
'abcd' | 'abcd' | 4 字符 | 'abcd' | 5 字符 |
'abcd ' | 'abcd' | 4 字符 | 'abcd ' | 7 字符 |
(3)text
- tinytext:长度为 255 字符;
- text:长度为 65535 字符;
- mediumtext:长度为 16777215 字符;
- longtext:4294967295 或 4GB 字符。
(4)enum
- 语法格式:【<字段名> enum('值1', '值2', ……)】;
- 插入值时,只能是指定的枚举值。
(5)set
- 语法格式:【<字段名> set('值1', '值2', ……)】;
- 值不可重复;
- 插入值时,只能是指定的值。
6. 二进制类型
- blob:最大长度 65535 个字节;
- mediumblob:最大长度 16777215 个字节;
- longblob:最大长度 4GB 个字节。