3.1基本查询

一个完整的DQL(数据查询语言)语句的总结:
select 
    ...
from
    ...
where
    ...
group by 
    ...
having
    ...
order by
    ...

    第一:以上的关键字顺序不能变化,严格遵守
    第二:执行顺序:
        1.from    从某张表中检索数据
        2.where   经过某条件进行过滤
        3.group by 然后分组
        4.having  分组之后不满意再过滤
        5.select  查询出来
        6.order by 排序输出

1. 基本查询
从表中查询某些列的值,这是最基本的查询语句。

查询所有字段
SELECT * from 表名;
查询指定字段
SELECT 字段1, 字段2, 字段3 ...from 表名;

2. Where条件查询
作用:按照一定的条件查询数据

SELECT 字段1, 字段2, 字段3 ...from 表名 WHERE 条件表达式;

运算符:
运算符         描述
=               等于
<>              不等于
>               大于
<               小于
>=              大于等于
<=              小于等于
BETWEEN         在某个范围内
LIKE            搜索某种模式

3. 带BETWEEN AND的范围查询

SELECT 字段1, 字段2, 字段3 ...from 表名 WHERE 字段 [NOT] BETWEEN 
取值1 AND 取值2;

4. 带IN关键字查询
作用:IN 操作符允许我们在 WHERE 子句中规定多个值。表示:在哪些值当中。

SELECT 字段1, 字段2, 字段3 ...from 表名 WHERE 字段 [NOT] IN 
(元素1, 元素2, 元素3);

6. 带LIKE的模糊查询
作用:模糊查询。LIKE关键字与通配符一起使用

SELECT 字段1, 字段2, 字段3 ...from 表名 WHERE 字段 [NOT] LIKE
 '字符串';   

通配符                        描述
%                            替代一个或多个字符
_                           仅替代一个字符
[charlist]                  字符列中的任何单一字符
[^charlist]或者[!charlist]   不在字符列中的任何单一字符

7. 空值查询

SELECT 字段1, 字段2, 字段3... FROM 表名 WHERE 字段 IS [NOT] NULL;

8. 带AND的多条件查询
作用:AND 在 WHERE 子语句中把两个或多个条件结合起来。表示和的意思,多个条件都成立。

SELECT 字段1, 字段2, 字段3... FROM 表名 WHERE 条件表达式 AND 
条件表达式 AND 条件表达式;

9. 带OR的多条件查询
作用:OR可在 WHERE 子语句中把两个或多个条件结合起来。或关系,表示多个条件,只有一个符合即可。

SELECT 字段1, 字段2, 字段3... FROM 表名 WHERE 条件表达式 
OR 条件表达式;

10、AS(Alias)
作用:可以为列名称和表名称指定别名(Alias)

作用:我们可以将查询的列,或者表指定需要的名字,如表名太长,用其简称,
在连表查询中经常用到。
SELECT  字段1 AS 别名, 字段2 AS 别名 FROM 表名;

11. DISTINCT 去重查询
作用: 查询时忽略重复值。

 SLECT DISTINCT 字段名 FROM 表名;

12、ORDER BY(排序)
功能:对需要查询后的结果集进行排序

标识     含义      说明
ASC    升序      默认
DESC   倒序   

13. GROUP BY分组查询
GROUP BY 属性名[HAVING 条件表达式][WITH ROLLUP]
1.单独使用;
2.与GROUP_CONCAT()函数一起使用;
3.与聚合函数一起使用;

 1. COUNT()函数

 COUNT()函数用来统计记录的条数,与GROUP BY关键字一起使用;` 
 SELECT COUNT(*) FROM 表名;
 SELECT COUNT(*) AS total FROM 表名;
 SELECT 字段1,COUNT(*) FROM 表名 GROUP BY(字段1);

 2. SUM()函数

 SUM()函数是求和函数,与GROUP BY关键字一起使用;` 
 SELECT 字段1,SUM(字段2FROM 表名 WhERE 字段1='...';
 SELECT 字段1,SUM(字段2FROM 表名 GROUP BY 字段1;

 3. AVG()函数

 AVG()函数用来求平均值的函数,与GROUP BY关键字一起使用; 
 SELECT 字段1, AVG(字段2FROM 表名 WHERE 字段1='...';
 SELECT 字段1, AVG(字段2FROM 表名 GROUP BY 字段1;

 4. MAX()函数

 MAX()函数用来求最大值的函数,与GROUP BY关键字一起使用; 
 SELECT 字段1, 字段2, MAX(字段3FROM 表名 WHERE 字段1='...';
 SELECT 字段1, 字段2, MAX(字段3FROM 表名 GROUP BY 字段1;

 5.  MIN()函数

 MIN()函数用来求最小值的函数,与GROUP BY关键字一起使用;
 SELECT 字段1, 字段2, MIN(字段3FROM 表名 WHERE 字段1='...';
 SELECT 字段1, 字段2, MIN(字段3FROM 表名 GROUP BY 字段1;

4.与HAVING一起使用(限制蜀西湖的结果);
在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。

语法:

SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
HAVING aggregate_function(column_name) operator value


1)查询平均成绩大等于于60的学生ID及平均成绩

SELECT StudentID,AVG(Score) FROM SC GROUP BY StudentID 
HAVING AVG(Score)>=60;

2)还是用HAVING的SQL语句中,可以有普通的WHERE条件
查询平均成绩大于等于60,且学生ID等于1的学生的ID及平均成绩。

SELECT StudentID,AVG(Score) FROM SC WHERE StudentID='1' 
    GROUP BY StudentID  HAVING AVG(Score)>=60;

3)查询总成绩在600分以上(包括600)的学生ID

SELECT StudentID FROM SC GROUP BY StudentID HAVING 
                                        SUM(Score)>=600;

5.与WITH ROLLUP一起使用(最后加入一个总和行);

13. LIMIT分页查询

SELECT 字段1, 字段2.....FROM 表名 LIMIT 初始位置,记录数;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值