SQL 的六种子语言

DDL(Data Definition Language,数据定义语言)

  • CREATE - 创建
    #创建数据库
    mysql> create database [databasename];
    #创建数据表
    mysql> create table [ 表名] ( [ 字段名 1] [ 类型 1] [is null] [key] [default value] [extra] [comment],
    ...
    )[engine] [charset];
    
  • ALTER - 修改
    #自增长
    mysql> alter table [tablename] auto_increment=[value];
    #新增列
    mysql>alter table [tablename] add column [columnname] [columdefinition];
    #删除列
    mysql>alter table [tablename] drop column [columnname];
    #修改列属性
    mysql>alter table [tablename] change [columnname] [newcolumnname] [type];
    #修改列属性
    mysql> alter table [tablename] modify [columnname] [newdefinition];
    #添加索引
    mysql> alter table [tablename] add index [indexname](字段名 1,字段名 2…);
    #删除索引
    mysql> alter table [tablename] drop index [indexname];删除索引
    
  • DROP - 删除
    #删除数据库
    mysql> drop database [databasename];
    #删除数据表
    mysql> drop table [tablename];
    
  • TRUNCATE - 截断
  • COMMENT - 注释
  • RENAME - 重命名

    DQL(Data Query Language,数据查询语言)

  • SELECT-从数据库表中获取数据
  • FROM - 指定从哪个数据表或者子查询中查询
  • WHERE - 指定查询条件
  • GROUP BY - 结合合计函数,根据一个或多个列对结果集进行分组
  • HAVING - 对分组后的结果集进行筛选
  • ORDER BY - 对结果集进行排序
  • LIMIT - 对结果集进行 top 限制输出
  • UNION - 结果集纵向联合
  • JOIN - 结果集横向拼接
#查询记录
mysql> SELECT [列名称] FROM [表名称] where [condition]
#查询语句执行顺序
<SELECT clause> [<FROM clause>] [<WHERE clause>] [<GROUP BY clause>] [<HAVING clause>] [<ORDER BY clause>] [<LIMIT clause>]

DML(Data Manipulation Language,数据操作语言)

  • UPDATE - 更新数据库表中的数据
    #修改记录
    mysql> UPDATE [ 表名称] SET [ 列名称]=[ 新值] WHERE [ 条件];
    
  • DELETE - 从数据库表中删除数据
    #删除记录
    mysql> delete from [tablename] where [condition];
    
  • INSERT INTO - 向数据库表中插入数据
    #插入记录
    mysql> insert into [tablename](column1,column2,...) values(value1,value2,...);
    
  • LOAD - 载入数据

    DCL(Data Control Language,数据控制语言)

  • CREATE 新建
    #新建用户
    mysql> create user [username]@[host] identified by [password];
    
  • DROP 删除
    #删除用户
    mysql> DROP USER [username]@[host];
    
  • GRANT - 授权
    #命令格式
    mysql> GRANT [privileges] ON [databasename].[tablename] TO [username]@[host];
    
  • REVOKE - 撤销授权
    #命令格式
    mysql> REVOKE [privileges] ON [databasename].[tablename] FROM [username]@[host];
    
  • DENY - 拒绝授权

    TCL(Transaction Control Language,事务控制语言)

  • START TRANSACTION 或 BEGIN - 开始事务
  • SAVEPOINT - 在事务中设置保存点,可以回滚到此处
  • ROLLBACK - 回滚
  • COMMIT - 提交
  • SET TRANSACTION – 改变事务选项

    CCL(Cursor Control Language,游标控制语言)

  • DECLARE CURSOR - 申明游标
  • OPEN CURSOR - 打开游标
  • FETCH INTO - 取值
  • UPDATE WHERE CURRENT - 更新游标所在的值
  • CLOSE CURSOR - 关闭游标