本文主要介绍MySQL语法之DDL(data define language)操作。
1.MySQL数据定义语言
用于定义和管理数据对象,包括数据库、数据表等。包括CREATE、DROP、ALTER、TRUNCATE、RENAME等。
2. CREATE语句
CREATE DATABASE建库
1
2
3
4
5
6# 建库语句
mysql> CREATE DATABASE IF NOT EXISTS db1 DEFAULT CHARACTER SET UTF8;
# 其中有一部分可以省略
mysql> CREATE DATABASE db1;
# 查看系统是如何建库的
mysql> SHOW CREATE DATABASE db1;CREATE TABLE建表
1
2
3
4
5
6
7
8
9
10
11
12# 建表语句
mysql> CREATE TABLE IF NOT EXISTS emp(id int) ENGINE=InnoDB DEFAULT CHARSET=utf8;
mysql> CREATE TABLE IF NOT EXISTS emp1(ID INT NOT NULL DEFAULT 1, NAME CHAR);
mysql> CREATE TABLE IF NOT EXISTS emp2(ID INT NOT NULL AUTO_INCREMENT, NAME CHAR);
# 其中有一部分可以省略
mysql> CREATE TABLE emp(id int);
# 查看系统是如何建表的
mysql> SHOW CREATE TABLE emp;
# 使用like建表,快速建立相同表结构的表
# CREATE TABLE imp LIKE emp;
# DESC emp;
# DESC imp;CREATE USER建用户
1
2
3
4
5
6
7
8
9
10# 创建一个用户
mysql> CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'new_password' PASSWORD EXPIRE;
# 查看系统是如何创建的
mysql> SHOW CREATE USER 'jeffrey'@'localhost';
# 创建一个用户,指定过期时间
mysql> CREATE USER 'tom'@'localhost' IDENTIFIED BY 'new_password' PASSWORD EXPIRE INTERVAL 180 DAY;
# 查看系统是如何创建的
mysql> SHOW CREATE USER 'tom'@'localhost';
# 查看user.assword_last_changed 列来看对应账号密码的最近一次的修改时间
mysql> select user,host,password_expired,password_last_changed,password_lifetime from mysql.user;
- CREATE VIEW建视图
视图是一个虚拟存在的表,视图的使用方式与表的使用方式一致,不需要实际上的物理存储,数据还是存储在原来的表里。
视图可以只展现数据表的一部分数据,对于我们不希望让用户看到全部数据,只希望用户看到部分数据的时候,可以选择使用视图。1
2
3
4
5
6
7
8
9
10
11# 创建视图
mysql> create view emp_view as SELECT * from emp;
# 查看视图表结构
mysql> desc emp_view;
# 查看视图内容
mysql> select * from emp_view limit 1;
# 修改视图
msyql> alter view emp_view as SELECT * FROM emp;
mysql> UPDATE emp_view set ename='lisi' WHERE ename='zhangsan';
# 删除视图
mysql> drop view emp_view;
3. ALTER语句
1 | # 建一个测试表 |
4.其他DDL语句
- TRUNCATE语句
1
2# 截断表,清空了表内的所有数据,但是表的结构还在
mysql> truncate table emp;
- RENAME语句
1
2# 修改表的名字
mysql> rename table emp to emp1;
- DROP语句
1
2
3
4
5
6# 删库
mysql> DROP DATABASE IF EXISTS db1;
# 删表
mysql> DROP TABLE IF EXISTS emp;
# 删视图
mysql> drop view emp_view;