mysql常用语句一: 数据定义语言DDL

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 数据库名;

如下图所示。
mysql常用语句一: 数据定义语言DDL_第1张图片

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 表名;

mysql常用语句一: 数据定义语言DDL_第2张图片

# SHOW CREATE TABLE 命令会以 SQL 语句的形式来展示表信息。
# 和 DESCRIBE 相比,SHOW CREATE TABLE 展示的内容更加丰富。
# 它可以查看表的存储引擎和字符编码。
# 另外,你还可以通过\g或者\G参数来控制展示格式。
SHOW CREATE TABLE 表名;

mysql常用语句一: 数据定义语言DDL_第3张图片

SHOW CREATE TABLE 表名 \G;

mysql常用语句一: 数据定义语言DDL_第4张图片

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;

你可能感兴趣的:(mysql)