DDL语句(Data Definition Language)
一、DDL语句
- DDL(Data Definition Language)数据定义语句,这些语句定义了不同的数据段、数据库、表、列、索引、约束等数据库对象
- create database
- drop database
- create table
- alter table
- rename table
- drop table
- create index
- drop index
二、数据库操作
-
创建数据库
-
语法
-
CREATE DATABASE [IF NOT EXISTS] <dbname> create database if not exists test_db character set utf8
-
-
参数
[]
: 表示可选参数<>
: 必填参数- utf8: 字符编码格式,utf8兼容中文
-
注意事项
- 数据库名称不能重复
-
-
修改数据库字符集
-
alter database <dbname> character set='utf8';
-
-
修改数据库名称
- 导出数据,创建新的数据库,导入数据
- 官方不推荐直接修改数据库名称(5.1.7到5.1.23版本可用):
RENAME database <old_name> TO <new_name>;
-
删除数据库
-
drop database <dbname>;
-
三、数据类型
-
整数
- tinyint 极小整数 (-128,127) (0,255) 占 1字节
- bigint:大整数 占8字节
- 定义语法
- age int(2)
-
小数
- float: 单精度浮点数 精度7位小数 占4字节
- double:双精度浮点数 精度15位小数 占8字节
- decimal:大浮点数 精度30位小数 占17字节
- 定义语法
- price float(7,2) 7包含小数位
- price decimal(30,29) 30位包含小数位
-
字符串
- char(n) 定义字符串 0-255
- varchar(n) 变长字符串 0-65535
- text(n) 文本类型 0-65535
- binary(n) 二进制 0-n
- 定义语法
- name varchar(10)
- char和varchar区别
- 存储空间:char(10)不管存多少字节都会分配10个字符的空间,varchar(10)存多少就用多少空间
- 性能:char处理速度比varchar快
- 适用场景:能预估内容长度用char,不能预估内容长度用varchar
-
日期
-
year
- 类型用来表示年份,格式为YYYY,在所有的日期时间类型中所占用的存储空间最小,只需要 1个字节 的存储空间
-
date
- 类型表示日期,没有时间部分,格式为 YYYY-MM-DD
- YYYY表示年份,MM表示月份,DD表示日期。需要 3个字节 的存储空间
-
time
- 类型用来表示时间,不包含日期部分。在MySQL中,需要 3个字节 的存储空间来存储TIME类型的数据
- 可以使用“HH:MM:SS”格式来表示TIME类型,其中,HH表示小时,MM表示分钟,SS表示秒
-
timestamp
- 在所有的日期时间类型中占用的存储空间最大,总共需要 8 个字节的存储空间
- 在格式上为DATE类型和TIME类型的组合,可以表示为 YYYY-MM-DD HH:MM:SS
- 其中YYYY表示年份,MM表示月份,DD表示日期,HH表示小时,MM表示分钟,SS表示秒
-
datetime
- 表示日期时间,其显示格式与DATETIME类型相同,都是 YYYY-MM-DD HH:MM:SS ,需要4个字节的存储空间。
- TIMESTAMP存储的时间范围比DATETIME要小很多,只能存储“1970-01-01 00:00:01 UTC”到“2038-01-19 03:14:07 UTC”之间的时间。
- UTC表示世界统一时间,也叫作世界标准时间
-
定义语法
- birthday date
-
-
二进制
- tinyblob 0-255
- blob 65KB
- mediumblob 16M 存图片
- longblob 4G 存视频
四、创建表
-
建表语法
-
create table <table_name>( 字段名称1 数据类型(长度) 约束类型, ...... #最后一行不能加逗号,否则会报语法错误 字段名称2 数据类型(长度) 约束类型 )engine=innodb charset=utf8;
-
举例
-
CREATE TABLE `student` (
-
-