DDL: 操作数据库、表
1. 操作数据库: CRUD( Create Drop Alter Show )
1). C(Create):创建
1)创建数据库:
create database 数据库名称;
2)创建数据库,判断不存在,再创建:
create database if not exists 数据库名称;
3)创建数据库,并指定字符集
create database 数据库名称 character set 字符集名;练习: 创建db 数据库,判断是否存在,并制定字符集为gbk
create database if not exists db character set gbk;
2. R(Retrieve):查询
1)查询所有数据库的名称:
show databases;
2)查询某个数据库的字符集:查询某个数据库的创建语句
show create database 数据库名称;
注意
information_schema: 在查询的时候是视图实际并不存在
mysql: 核心数据库
performance_schema: 对提升性能做操作的数据库
test :空表
3) 查询某个数据库的字符集:查询某个数据库的创建语句
show create database mysql;
3. U(Update):修改
1)修改数据库的字符集
alter database 数据库名称 character set 字符集名称;
alter database db3 character set UTF8;
4. D(Delete):删除
1)删除数据库
drop database 数据库名称;
2)判断数据库存在,存在再删除
drop database if exists 数据库名称;5. 使用数据库 Use
1)先查询当前正在使用的数据库
select database();
2)使用数据库
use 数据库名称;
2. 操作表 CRUD( Create Drop Alter show/desc )
1. C(Create):创建
1) 语法:
create table 表名(
列名1 数据类型1,
列名2 数据类型2,
....
列名n 数据类型n
);
* 注意:最后一列,不需要加逗号(,)创建表
create table student(
id int,
name varchar(20),
age int ,
score double(4,1),
birthday date,
insert_time timestamp # 插入时间戳
);
2) 复制表:
create table 表名 like 被复制的表名;2. R(Retrieve):查询
1) 查询某个数据库中所有的表名称
show tables;
2) 查询表结构
desc 表名;
3. U(Update):修改
1) 修改表名
alter table 表名 rename to 新的表名;
2) 修改表的字符集
alter table 表名 character set 字符集名称;
3) 添加一列
alter table 表名 add 列名 数据类型;
4) 修改列名称 类型
alter table 表名 change 列名 新列别 新数据类型;
alter table 表名 modify 列名 新数据类型;
5) 删除列
alter table 表名 drop 列名;
4. D(Delete):删除
drop table 表名;
drop table if exists 表名 ;
3. 数据类型
创建表时需要的数据类型总结:
常用数据库类型总结:
类型 | 类型说明 |
int | 整型 默认11位 |
double | 浮点型 score double(5,2) // 一共最多5位小数, 保留2位小数 |
varchar | 字符串型, varchar(20) 字符串长度为20 ,一个汉字一个字符, 一个英文字母一个字符 |
date | 日期类型, 格式为yyyy-MM-dd, 只有年月日, 没有时分秒 |
datetime | 日期, 包含年月日时分秒 yyyy-MM-dd HH:mm:ss |
timestamp | 时间错类型 包含年月日时分秒 yyyy-MM-dd HH:mm:ss 如果将来不给这个字段赋值,或赋值为null,则默认使用当前的系统时间,来自动赋值 |
详细的数据类型总结:
分类 | 类型名称 | 类型说明 |
整数 | tinyInt | 微整型:很小的整数(占 8 位二进制) |
smallint | 小整型:小的整数(占 16 位二进制) | |
mediumint | 中整型:中等长度的整数(占 24 位二进制) | |
int(integer) | 整型:整数类型(占 32 位二进制) | |
小数 | float | 单精度浮点数,占 4 个字节 |
double | 双精度浮点数,占 8 个字节 | |
日期 | time | 表示时间类型 |
date | 表示日期类型 | |
datetime | 同时可以表示日期和时间类型 | |
字符串 | char(m) | 固定长度的字符串, 无论使用几个字符都占满全部, M 为 0~255 之间的整数 |
varchar(m) | 可变长度的字符串, 使用几个字符就占用几个, M 为 0~65535 之间的整数 | |
大二进制 | tinyblob Big Large Object | 允许长度 0~255 字节 |
blob | 允许长度 0~65535 字节 | |
mediumblob | 允许长度 0~167772150 字节 | |
longblob | 允许长度 0~4294967295 字节 | |
大文本 | tinytext | 允许长度 0~255 字节 |
text | 允许长度 0~65535 字节 | |
longtext | 允许长度 0~4294967295 字节 | |
mediumtext | 允许长度 0~167772150 字节 |