SQL语句大致可以分为四类,DDL
(例如: CREATE、DROP、ALTER), DML
(例如: INSERT、DELETE、UPDATE), DCL
(例如: GRANT、REVOKE), DQL
(例如: SELECT)
DDL数据定义语言
CREATE
CREATE常用搭配:CREATE DATABASE、CREATE TABLE、CREATE INDEX、CREATE USER,分别是创建数据库、创建表、创建索引、创建用户。
创建数据库
:
1 | CREATE DATABASE [IF NOT EXISTS] database_name [CHARACTER SET charset_name] [COLLATE collation_name]; |
创建表
:
1 | CREATE TABLE table_name ( |
创建索引
1 | -- 普通索引 |
创建用户
1 | CREATE USER [IF NOT EXISTS] account_name IDENTIFIED BY 'password'; |
DROP
DROP常用搭配:DROP DATABASE、DROP TABLE、DROP INDEX、DROP USER,分别是删除数据库、删除表、删除索引、删除用户。
删除数据库
1 | DROP DATABASE [IF EXISTS] db_name; |
删除表
1 | DROP TABLE [IF EXISTS] table_name; |
删除索引
1 | DROP INDEX index_name ON table_name; |
删除用户
1 | DROP USER [IF EXISTS] user [, user] … |
ALTER
ALTER常用搭配:ALTER DATABASE、ALTER TABLE、ALTER USER,分别是更改数据库、更改表、更改用户。
更改数据库
1 | ALTER DATABASE [database_name] alter_option … |
更改表
1 | ALTER TABLE table_name [alter_option [, alter_option] ...] [partition_options] |
更改用户
1 | ALTER USER [IF EXISTS] user_identity [IDENTIFIED BY 'password'] [password_option | lock_option] [comment] |
DML数据操作语言
INSERT
数据插入
1 | -- 插入一条或多条记录 |
DELETE
数据删除
1 | DELETE FROM table_name [WHERE Clause] |
UPDATE
数据更新
1 | UPDATE table_name SET column1=value1, column2=value2, … WHERE condition; |
DCL数据控制语句
GRANT
- 授权用户数据库权限或角色
1 | GRANT privilege1, privilege2, privilege3...ON object_type TO user_or_role1, user_or_role2, user_or_role3...[WITH GRANT OPTION] |
REVOKE
- 回收用户数据库权限或角色
1 | REVOKE privilege1, privilege2, privilege3...ON object_type FROM user_or_role1, user_or_role2, user_or_role3...[WITH GRANT OPTION] |
DQL数据查询语言
SELECT
- 查询数据
1 | -- 单个表数据查询 |
其它
数据删除
DELETE、TRUNCATE、DROP删除表数据的区别
- DELETE是DML可以回滚,TRUNCATE、DROP是DDL不能回滚
- DELETE、TRUNCATE只是删除数据,DROP删除数据和表结构
- 执行速度DROP>TRUNCATE>DELETE
SHOW
1 | -- 列出实例数据库 |