• MySQL DQL(查询语言)


    DQL:数据查询语言,基本结构是由 SELECT 子句,FROM 子句,WHERE

    单表查询

    -- 格式
    SELECT selection_list /*要查询的列名称*/
      FROM table_list /*要查询的表名称*/
      WHERE condition /*行条件*/
      GROUP BY grouping_columns /*对结果分组*/
      HAVING condition /*分组后的行条件*/
      ORDER BY sorting_columns /*对结果分组*/
      LIMIT offset_start, row_count /*结果限定*/

    例子

    -- 查询所有
    SELECT * FROM t_man
    
    Mid     Mname   Mphone         Mage    Msex
    8001    周杰伦  18812345543     308002    王力宏  18854321123     318003    吴尊    18898765123     328004    韩庚    18875315895     338005    张韶涵  15598726793     29-- 查询指定列
    SELECT t_man.Mname,t_man.Mage FROM t_man
    
    Mage    Msex
    周杰伦   30
    王力宏   31
    吴尊     32
    韩庚     33
    张韶涵   29
    
    -- 按条件查询指定列
    SELECT t_man.Mname,t_man.Mage FROM t_man WHERE t_man.Mage > 30
    
    Mage    Msex
    王力宏   31
    吴尊     32
    韩庚     33
    
    --------------查询条件----------------------------
    
    1.逻辑运算符
    NOT : 取反
    WHERE NOT t_man.Mage > 30
    
    AND : 逻辑与
    WHERE t_man.Mage > 30 AND t_man.Mname LIKE '__'
    
    OR : 逻辑或
    WHERE t_man.Mage > 30 OR t_man.Mname LIKE '__'
    
    2.比较运算符
    =<>!=>>=!><<=!<
    
    3.LIKE,用于模糊查询
    % : 后面可以跟零个或多个字符
    
    _ : 匹配任意单个字符
    
    [ ] : 查询一定范围内的单个字符,包括两端数据
    WHERE t_man.Mname LIKE '[周李]%'
    
    [^] [!]: 表示不在一定范围内的单个字符,包括两端数据
    
    4.BETWEEN
    between xx and xx
    WHERE t_man.Mage BETWEEN 30 AND 31 (等同于 t_man.Mage>=30 AND t_man.Mage<=31)
    not between xx and xx
    
    5.is (not) null
    在where子句中,需要用is (not) null 判断空值,不能使用=判断空值
    WHERE t_man.Mage is not null
    
    6.in 多条件
    WHERE t_man.Mage IN (30,31)
    
    7.ALL SOME ANY
    Some和any等效,all是大于最大者,any是小于最小者
    WHERE t_man.Mage > ALL(SELECT t_man.Mage FROM t_man WHERE t_man.Mname LIKE '张%')
    
    8.exists 和 no exists
     where exists (select * from t_man where t_man.Mid = 8001)
    
    9.Group by 分组
    SELECT AVG(t_man.Mage) FROM t_man GROUP BY t_man.Msex
    
    10.Having 分组后条件
    SELECT AVG(t_man.Mage) AS mk,t_man.Msex FROM t_man GROUP BY t_man.Msex HAVING mk > 30
    
    11.ORDER BY 排序 ASC,DESC
    SELECT * FROM t_man ORDER BY t_man.Mid ASC
    
    12.DISTINCT 去重
    SELECT DISTINCT(t_man.Msex) FROM t_man
    
    23.LIMIT 分页
    SELECT * FROM t_man LIMIT 0,1 (显示第一行数据)

    多表查询

    -- 格式
    SELECT selection_list /*要查询的列名称*/
      FROM table_list /*要查询的表名称*/
      JOIN table_list /*要查询的表名称*/
      ON condition /*连接条件*/
      WHERE condition /*行条件*/
      GROUP BY grouping_columns /*对结果分组*/
      HAVING condition /*分组后的行条件*/
      ORDER BY sorting_columns /*对结果分组*/
      LIMIT offset_start, row_count /*结果限定*/

    例子

    -- 交叉连接(Cross Join),没有链接条件的表查询会出现笛卡儿积
    SELECT * FROM t_man,t_dept
    SELECT * FROM t_man JOIN t_dept
    
    -- 内连接(inner Join 或 Join),两表中都有才显示,即两表的交集
    SELECT * FROM t_man JOIN t_dept ON t_man.Mid = t_dept.Mid
    
    -- 左外连接(Left outer Join),以左边表为主,左表全部显示,没有对应的就显示空,即左并集
    SELECT * FROM t_man LEFT JOIN t_dept ON t_man.Mid = t_dept.Mid
    
    -- 右外连接(Right outer Join),与左外连接相反
    SELECT * FROM t_man RIGHT JOIN t_dept ON t_man.Mid = t_dept.Mid
    
    -- 全连接(Full outer Join),默认不支持,但也其他方式可以实现。
    SELECT * FROM t_man LEFT JOIN t_dept ON t_man.Mid = t_dept.Mid
    UNION
    SELECT * FROM t_man RIGHT JOIN t_dept ON t_man.Mid = t_dept.Mid
    
    -- UNION ALL 与 UNION 区别是允许重复

    其它语言

    DML:数据操作语言,主要有三种形式:

    • 插入:INSERT
    • 更新:UPDATE
    • 删除:DELETE

    DDL:数据定义语言,用来创建数据库中的各种对象(表、视图、索引、同义词、聚簇等)如:

    • 创建:CREATE TABLE / VIEW / INDEX / SYN / CLUSTER
    • 修改:ALTER TABLE
    • 删除:DROP TABLE
    • 清空:TRUNCATE TABLE

    DDL 操作是隐性提交的,不能 rollback

    DCL:数据控制语言,用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等。

    • GRANT:授权。
    • ROLLBACK [WORK] TO [SAVEPOINT]:回退到某一点。回滚 —ROLLBACK 回滚命令使数据库状态回到上次最后提交的状态。其格式为:SQL > ROLLBACK

    TCL:事务控制语言

  • 相关阅读:
    git 多人协作
    git 版本管理
    git 安装配置
    git 忽略文件
    git 分支管理
    linux文件管理 文件操作
    linux文件管理 文件搜索
    linux文件管理 文件权限
    linux系统管理 基本指令
    003.html
  • 原文地址:https://www.cnblogs.com/jhxxb/p/13299373.html
Copyright © 2020-2023  润新知