SQL语言中常用的语句可以分为四类:
数据定义语言DDL;
数据操纵语言DML;
数据查询语言DQL;
数据控制语言DCL。
这篇博文以mysql为例,记录下常用的DDL语句。
DDL用来创建数据库、表、视图等。
1 数据库的操作
1.1 创建数据库
CREATE DATABASE IF NOT EXISTS 数据库名
DEFAULT CHARACTER SET utf8;
需要说明的是:
if not exists
是为了避免有已经存在的数据库而报错;
utf8
是数据库编码,中间没有杠。
1.2 删除数据库
DROP DATABASE IF EXISTS 数据库名;
if exists
是为了避免数据库不存在而报错;
1.3 修改数据库
ALTER DATABASE 数据库名 CHARACTER SET 字符编码;
# 例如:
alter database how2j character set gb2312;
一般对数据库的修改也就是改一下字符编码
1.4 查看数据库
# 查看已有数据库
show databases;
# 数据库的编码
SHOW CREATE DATABASE 数据库名;
如下图所示。
2 表的操作
2.1 创建表
CREATE TABLE hero (
id int(11) AUTO_INCREMENT,
name varchar(30) ,
hp float ,
damage int(11) ,
PRIMARY KEY (id)
) DEFAULT CHARSET=utf8;
说明:
创建表hero;
字段有:id, name, hp, damage;
id为主键,且自增;
编码为utf8。
2.2 删除表
DROP TABLE 表名;
数据表之间经常存在外键关联的情况,这时如果直接删除父表,会破坏数据表的完整性,也会删除失败。
删除父表有以下两种方法:
- 先删除与它关联的子表,再删除父表;但是这样会同时删除两个表中的数据。
- 将关联表的外键约束取消,再删除父表;适用于需要保留子表的数据,只删除父表的情况。
2.3 查看表结构
# 以表格的形式来展示表的字段信息,
# 包括字段名、字段数据类型、是否为主键、是否有默认值等
DESC 表名;
# SHOW CREATE TABLE 命令会以 SQL 语句的形式来展示表信息。
# 和 DESCRIBE 相比,SHOW CREATE TABLE 展示的内容更加丰富。
# 它可以查看表的存储引擎和字符编码。
# 另外,你还可以通过\g或者\G参数来控制展示格式。
SHOW CREATE TABLE 表名;
SHOW CREATE TABLE 表名 \G;
2.4 修改表结构
ALTER TABLE <表名> [修改选项]
# 修改选项的语法格式如下:
{ ADD COLUMN <列名> <类型>
| CHANGE COLUMN <旧列名> <新列名> <新列类型>
| ALTER COLUMN <列名> { SET DEFAULT <默认值> | DROP DEFAULT }
| MODIFY COLUMN <列名> <类型>
| DROP COLUMN <列名>
| RENAME TO <新表名>
| CHARACTER SET <字符集名>
| COLLATE <校对规则名> }
看一些例子:
# 修改表名
ALTER TABLE 旧表名 RENAME [TO] 新表名;
# to可加可不加。
# 修改编码
ALTER TABLE 表名 [DEFAULT] CHARACTER SET 编码;
# 添加字段,以student表为例。
# 末尾添加字段
ALTER TABLE student ADD age INT(4);
# 开头添加字段
ALTER TABLE student ADD stuId INT(4) FIRST;
# 特定字段后添加,在name字段后添加stuno字段
ALTER TABLE student ADD stuno INT(11) AFTER name;
# 修改字段类型,将student表中name字段的类型改为VARCHAR(30)
ALTER TABLE student MODIFY name VARCHAR(30);
# 删除字段,删除student表中的name字段
ALTER TABLE student DROP name;