MySQL SQL语句集

简介:SQL语言分4大类,分别是数据定义语言(DDL),数据操纵语言(DML),数据查询语言(DQL),数据控制语言(DCL)。

一、DDL(Data Definition Language)

  1. 数据库

    A. 创建数据库:CREATE DATABASE [IF NOT EXISTS] 数据库名,例如:create database `my-user` default charset utf8;;

    B. 删除数据库:DROP DATABASE [IF EXISTS] 数据库名;

    C. 查看所有数据库:SHOW DATABASES;

    C. 切换数据库:USE 数据库名。

  2. 数据表

    A. 创建表(包括索引):

CREATE TABLE [IF NOT EXISTS] 表名
(
    字段名1 列类型 [属性] [索引],
    ...
    字段名n 列类型 [属性] [索引]
)[表类型] [表字符集];

    B. 删除表:DROP TABLE [IF EXISTS] 表名;

    C. 修改表结构(包括索引);    

    D. 查看指定数据所有表:SHOW TABLES;

    E. 查看表结构:DESC 表名。

  3. 修改表结构(包括索引)

    A. 表新增字段

      添加在指定字段后面:ALTER TABLE <表名> ADD COLUMN <新字段名> <数据类型> NOT NULL DEFAULT 1 COMMNET <注释> AFTER <已经存在的字段名>;

 

二、DML(Data Manipulation Language)

  1. 新增记录

    A. 插入所有的字段:

    B. 插入指定的字段:

    C. 从一张表或多个表中组合字段插入到另外一张新表中:insert into select from;

      如:INSERT INTO rhxy_tenant_relate (id, receive_admins, is_email, is_message, created_by, created_time, updated_by, updated_time) select 1, receive_admins, is_email, is_message, created_by, created_time, updated_by, updated_time from rhxy_tenant;

  2. 修改记录:

  3. 删除记录:delete <alias> from <table> <alias> where <alias>.<field> ...;

  4. 多表更新

    A. 语法形式:update tabel t1, table t2 set ... where t2.id = t1.id;

        update table t1 inner join table t2 on t2.id = t1.id set ...;

       也可以使用left join 或者 right join来做多表关联更新一表记录或多表记录。

  5. 多表删除:

 

三、DQL(Data Query Language)

  1. 查询记录:select ... from <表名> where 条件 group by 分组字段 having 条件 order by 排序字段;

 

四、DCL(Data Control Language)

  1. 用户

  2. 权限

  3. 事务

 

五、MySQL的7种JOIN

  1. 左连接:

SELECT <select_list> FROM tableA AS A LEFT JOIN tableB AS B ON B.Key = A.Key

  2. 右连接

SELECT <select_list> FROM tableA AS A RIGHT JOIN tableB AS B ON B.Key = A.Key

  3. 内连接

SELECT <select_list> FROM tableA AS A INNER JOIN tableB AS B ON B.Key = A.Key

  4. 查询左表独有的数据

SELECT <select_list> FROM tableA AS A LEFT JOIN tableB AS B ON B.Key = A.Key WHERE B.key IS NULL

  5. 查询右表独有的数据

SELECT <select_list> FROM tableA AS A RIGHT JOIN tableB AS B ON B.Key = A.Key WHERE A.key IS NULL

  6. 查询左右表独有的数据

SELECT <select_list> FROM tableA AS A FULL JOIN tableB AS B ON B.Key = A.Key WHERE A.key IS NULL OR B.key IS NULL

  7. 全连接(左连接和右连接数据组合)

    A. 两张表需要保证对应的列数据类型一致,第一个sql的列名会作为结果集的列名;

    B. union和union all关键字的区别:都是合并结果集,但是union会去重,union all不会;

SELECT a FROM tableA AS A UNION SELECT a FROM tableB AS B

 

 

可参考:http://www.cnblogs.com/to-creat/p/6520075.html

    https://blog.csdn.net/zdw19861127/article/details/80540124

posted @ 2019-03-31 10:44  如幻行云  阅读(162)  评论(0编辑  收藏  举报