zoukankan      html  css  js  c++  java
  • MySQL入门很简单: 8查询数据

    1. 查询语句语法

    SELECT 属性列表
        FROM 表名和视图列表
        [WHERE 条件表达式1]
        [GROUP BY 属性名1 [HAVING t条件表达式2]]
        [ORDER BY 属性名2 [ASC| DESC] ]

     

    2. 在单表上查询数据

    1)查询所有字段

    第一种方法:列出表的所有字段

    SELECT num, name, age, sex FROM employee;

    第二种方法:使用*查询所有字段

    SELECT * FROM 表名

    2)查询指定字段

    //结果字段与SELECT语句中字段顺序一致
    SELECT
    num, name, age FROM employee;

    3)查询指定记录: 使用WHERE 条件表达式

    SELECT * FROM employee WHERE d_id=100

    4)带IN关键字的查询

    [NOT] IN (元素1,元素2,... ,元素n)

    例子:

    SELECT * FROM employee WHERE name NOT IN ("张三", "李四");

    5) BETWEEN AND 的范围查询

    [NOT] BETWEEN 取值1 AND 取值2

    例子:

    SELECT * FROM employee WHERE age BETWEEN 15 and 25;

    6)带LIKE的字符匹配查询

    [NOT] LIKE ‘字符串’

    例子:

    SELECCT * FROM employee WHERE  homeaddr LIKE ‘北京%’;

    7)查询空值

    IS [NOT] NULL

    8)带AND的多条件查询

    条件表达式1  AND  条件表达式2  [ ... AND 条件表达式n ]

    例子:

    SELECT * FROM employee WHERE
    d_id<1004 AND age<26 AND sex='';

    9)带OR的多条件查询

    条件表达式1 OR  条件表达式2  [... OR 条件表达式n]

    10)查询结果不重复

    SELECT DISTINCT 属性名     //属性名表示要消除重复记录的字段的名词

    11)对查询结果排序

    ORDER BY 属性名 [ASC|DESC]

    12)分组查询

    GROUP BY 可以将查询结果按某个字段或多个字段进行分组,字段中值相等的为一组

    GROUP BY 属性名 [HAVING 条件表达式] [WITH ROLLUP]

    13)用LIMIT限制查询结果的数量

    LIMIT可以指定查询结果从哪条记录开始显示,还可以指定一共显示多少条记录;有两种使用方法

    第一种:不确定初始位置(记录从第一条开始显示)

    LIMIT 记录数

    第二种:指定初始位置

    LIMIT 初始位置, 记录数

    3. 使用聚合函数查询数据

    COUNT():    统计记录的条数
    SUM():    计算字段的值的总和
    AVG():    计算字段的值的平均值
    MAX():    查询字段的最大值
    MIN():    查询字段的最小值

    1)COUNT函数

    统计employee表的记录数:

    SELECT COUNT(*) FROM employee;

    统计employee表中不同d_id值的记录数

    SELECT d_id, COUNT(*) FROM employee GROUP BY d_id;

    2)SUM函数

    使用SUM函数统计grade表中学号为1001的同学的总成绩:

    将grade表按照num字段进行分组,然后使用SUM函数统计各分组的总成绩:

    3)AVG函数

    使用AVG函数计算grade表中不同科目的平均成绩

    4)MAX函数

    查询employee表中的最大年龄:

    查询grade表中不同科目的最高成绩:

    5)MIN函数

    查询grade表中不同科目的最低成绩:

    4. 多表上联合查询

    1)内连接查询:当两个表中存在表示相同意义的字段时,可以通过该字段来连接这两个表;当该字段的值相等时,就查询出该记录。

    2)外连接查询:也需要通过指定字段来连接,当该字段取值相等时,可以查询出该记录; 字段取值不相等的记录,也可以被查询出来。

    左连接查询:可以查询到表名1所指的表中的所有记录,而表名2所指的表中,只能查询出匹配的记录

    右连接查询:可以查询出表名2所指的表中的所有记录,而表名1所指的表中,只能查询出匹配的记录

    3)复合条件连接查询

    5. 子查寻:将一个查询语句嵌套在另一个查询语句中

    1)带IN关键字的子查询

    2)带比较运算符的子查询

     

    3)EXISTS关键字的子查询

     使用EXISTS时,内层查询语句不返回查询的记录,而是返回一个真假值

     

    4)带ANY关键字的子查询

    只要满足内层查询语句返回的结果中的任何一个,就可以通过该条件来执行外层查询语句

     

    5)带ALL关键字的子查询

    只有满足内层查询语句返回的所有结果,才可以执行外层查询语句

     

    6. 合并查询结果

    UNION:将所有查询结果合并一起,再去掉相同记录;
    
    UNION ALL:简单的合并到一起
    
    SELECT 语句1 UNION | UNION ALL SELECT 语句2 UNION | UNION ALL ... SELECT 语句n;

    7.为表和字段取别名

     1)为表取别名

       为department表取别名d,然后查询表中d_id字段取值为1001的记录

    2)为字段取别名

    属性名 [AS] 别名

    8.使用正则表达式查询

    属性名  REGEXP  '匹配方式'

    SELECT * FROM info WHERE name REGEXP '^L';
    SELECT * FROM info WHERE name REGEXP  'c$';
  • 相关阅读:
    js禁用回退键
    css和js引用图片路径
    js 文字横向滚动
    数组转换
    Vbox共享串口
    office2003 打开docx文件
    注销退出客户点击回退怎么办
    vs2010 安装mvc3
    修改头像
    iis发布网站局域网无法访问
  • 原文地址:https://www.cnblogs.com/zxqstrong/p/5396899.html
Copyright © 2011-2022 走看看