数据库教程:DQL

13-DQL-查询数据准备和查询语法介绍14-DQL-查询全部15-DQL-条件查询16-DQL-聚合函数查询17-DQL-排序查询18-DQL-分组查询19-DQL-分页查询8.DQL-单表查询数据准备(直接复制执行即可)– 创建db1数据库CREATE DATABASE db1;– 使用db1数据库USE db1;– 创建数据表CREATE TABLE product(id INT,– 商品编号NAME VARCHAR(20),– 商品名称


13-DQL-查询数据准备和查询语法介绍

8.DQL-单表查询

  • 数据准备(直接复制执行即可)
-- 创建db1数据库 CREATE DATABASE db1;  -- 使用db1数据库 USE db1;  -- 创建数据表 CREATE TABLE product( 	id INT,				-- 商品编号 	NAME VARCHAR(20),	-- 商品名称 	price DOUBLE,		-- 商品价格 	brand VARCHAR(10),	-- 商品品牌 	stock INT,			-- 商品库存 	insert_time DATE    -- 添加时间 );  -- 添加数据 INSERT INTO product VALUES (1,'华为手机',3999,'华为',23,'2088-03-10'), (2,'小米手机',2999,'小米',30,'2088-05-15'), (3,'苹果手机',5999,'苹果',18,'2088-08-20'), (4,'华为电脑',6999,'华为',14,'2088-06-16'), (5,'小米电脑',4999,'小米',26,'2088-07-08'), (6,'苹果电脑',8999,'苹果',15,'2088-10-25'), (7,'联想电脑',7999,'联想',NULL,'2088-11-11'); 
  • 查询语法
select 	字段列表 from 	表名列表 where 	条件列表 group by 	分组字段 having 	分组之后的条件 order by 	排序 limit 	分页限定 

14-DQL-查询全部

  • 查询全部
-- 标准语法 SELECT * FROM 表名;  -- 查询product表所有数据 SELECT * FROM product; 
  • 查询部分

    • 多个字段查询
    -- 标准语法 SELECT 列名1,列名2,... FROM 表名;  -- 查询名称、价格、品牌 SELECT NAME,price,brand FROM product; 
    • 去除重复查询
      • 注意:只有全部重复的才可以去除
    -- 标准语法 SELECT DISTINCT 列名1,列名2,... FROM 表名;  -- 查询品牌 SELECT brand FROM product; -- 查询品牌,去除重复 SELECT DISTINCT brand FROM product; 
    • 计算列的值(四则运算)
    -- 标准语法 SELECT 列名1 运算符(+ - * /) 列名2 FROM 表名;  /* 	计算列的值 	标准语法: 		SELECT 列名1 运算符(+ - * /) 列名2 FROM 表名; 		 	如果某一列为null,可以进行替换 	ifnull(表达式1,表达式2) 	表达式1:想替换的列 	表达式2:想替换的值 */ -- 查询商品名称和库存,库存数量在原有基础上加10 SELECT NAME,stock+10 FROM product;  -- 查询商品名称和库存,库存数量在原有基础上加10。进行null值判断 SELECT NAME,IFNULL(stock,0)+10 FROM product; 
    • 起别名
    -- 标准语法 SELECT 列名1,列名2,... AS 别名 FROM 表名;  -- 查询商品名称和库存,库存数量在原有基础上加10。进行null值判断。起别名为getSum SELECT NAME,IFNULL(stock,0)+10 AS getsum FROM product; SELECT NAME,IFNULL(stock,0)+10 getsum FROM product; 

15-DQL-条件查询

  • 条件查询

    • 条件分类
    符号 功能
    > 大于
    < 小于
    >= 大于等于
    <= 小于等于
    = 等于
    <> 或 != 不等于
    BETWEEN … AND … 在某个范围之内(都包含)
    IN(…) 多选一
    LIKE 占位符 模糊查询 _单个任意字符 %多个任意字符
    IS NULL 是NULL
    IS NOT NULL 不是NULL
    AND 或 && 并且
    OR 或 || 或者
    NOT 或 ! 非,不是
    • 条件查询语法
    -- 标准语法 SELECT 列名 FROM 表名 WHERE 条件;  -- 查询库存大于20的商品信息 SELECT * FROM product WHERE stock > 20;  -- 查询品牌为华为的商品信息 SELECT * FROM product WHERE brand='华为';  -- 查询金额在4000 ~ 6000之间的商品信息 SELECT * FROM product WHERE price >= 4000 AND price <= 6000; SELECT * FROM product WHERE price BETWEEN 4000 AND 6000;  -- 查询库存为14、30、23的商品信息 SELECT * FROM product WHERE stock=14 OR stock=30 OR stock=23; SELECT * FROM product WHERE stock IN(14,30,23);  -- 查询库存为null的商品信息 SELECT * FROM product WHERE stock IS NULL; -- 查询库存不为null的商品信息 SELECT * FROM product WHERE stock IS NOT NULL;  -- 查询名称以小米为开头的商品信息 SELECT * FROM product WHERE NAME LIKE '小米%';  -- 查询名称第二个字是为的商品信息 SELECT * FROM product WHERE NAME LIKE '_为%';  -- 查询名称为四个字符的商品信息 SELECT * FROM product WHERE NAME LIKE '____';  -- 查询名称中包含电脑的商品信息 SELECT * FROM product WHERE NAME LIKE '%电脑%'; 

16-DQL-聚合函数查询

  • 聚合函数

    • 将一列数据作为一个整体,进行纵向的计算
    • 聚合函数分类
    函数名 功能
    count(列名) 统计数量(一般选用不为null的列)
    max(列名) 最大值
    min(列名) 最小值
    sum(列名) 求和
    avg(列名) 平均值
    • 聚合函数语法
    -- 标准语法 SELECT 函数名(列名) FROM 表名 [WHERE 条件];  -- 计算product表中总记录条数 SELECT COUNT(*) FROM product;  -- 获取最高价格 SELECT MAX(price) FROM product; -- 获取最高价格的商品名称 SELECT NAME,price FROM product WHERE price = (SELECT MAX(price) FROM product);  -- 获取最低库存 SELECT MIN(stock) FROM product; -- 获取最低库存的商品名称 SELECT NAME,stock FROM product WHERE stock = (SELECT MIN(stock) FROM product);  -- 获取总库存数量 SELECT SUM(stock) FROM product; -- 获取品牌为苹果的总库存数量 SELECT SUM(stock) FROM product WHERE brand='苹果';  -- 获取品牌为小米的平均商品价格 SELECT AVG(price) FROM product WHERE brand='小米'; 

17-DQL-排序查询

  • 排序查询

    • 排序分类
      • 注意:多个排序条件,当前边的条件值一样时,才会判断第二条件
    关键词 功能
    ORDER BY 列名1 排序方式1,列名2 排序方式2 对指定列排序,ASC升序(默认的) DESC降序
    • 排序语法
    -- 标准语法 SELECT 列名 FROM 表名 [WHERE 条件] ORDER BY 列名1 排序方式1,列名2 排序方式2;  -- 按照库存升序排序 SELECT * FROM product ORDER BY stock ASC;  -- 查询名称中包含手机的商品信息。按照金额降序排序 SELECT * FROM product WHERE NAME LIKE '%手机%' ORDER BY price DESC;  -- 按照金额升序排序,如果金额相同,按照库存降序排列 SELECT * FROM product ORDER BY price ASC,stock DESC; 

18-DQL-分组查询

  • 分组查询
-- 标准语法 SELECT 列名 FROM 表名 [WHERE 条件] GROUP BY 分组列名 [HAVING 分组后条件过滤] [ORDER BY 排序列名 排序方式];  -- 按照品牌分组,获取每组商品的总金额 SELECT brand,SUM(price) FROM product GROUP BY brand;  -- 对金额大于4000元的商品,按照品牌分组,获取每组商品的总金额 SELECT brand,SUM(price) FROM product WHERE price > 4000 GROUP BY brand;  -- 对金额大于4000元的商品,按照品牌分组,获取每组商品的总金额,只显示总金额大于7000元的 SELECT brand,SUM(price) AS getSum FROM product WHERE price > 4000 GROUP BY brand HAVING getSum > 7000;  -- 对金额大于4000元的商品,按照品牌分组,获取每组商品的总金额,只显示总金额大于7000元的、并按照总金额的降序排列 SELECT brand,SUM(price) AS getSum FROM product WHERE price > 4000 GROUP BY brand HAVING getSum > 7000 ORDER BY getSum DESC; 

19-DQL-分页查询

  • 分页查询
-- 标准语法 SELECT 列名 FROM 表名 [WHERE 条件] GROUP BY 分组列名 [HAVING 分组后条件过滤] [ORDER BY 排序列名 排序方式] LIMIT 开始索引,查询条数; -- 公式:开始索引 = (当前页码-1) * 每页显示的条数  -- 每页显示2条数据 SELECT * FROM product LIMIT 0,2;  -- 第一页 开始索引=(1-1) * 2 SELECT * FROM product LIMIT 2,2;  -- 第二页 开始索引=(2-1) * 2 SELECT * FROM product LIMIT 4,2;  -- 第三页 开始索引=(3-1) * 2 SELECT * FROM product LIMIT 6,2;  -- 第四页 开始索引=(4-1) * 2 
  • 分页查询图解

数据库技术:DQL地址:https://blog.csdn.net/qq_41375318/article/details/108976674

需要了解更多数据库技术:DQL,都可以关注数据库技术分享栏目—计算机技术网(www.ctvol.com)!

www.ctvol.com true Article 数据库教程:DQL

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/dtteaching/631033.html

(0)
上一篇 2021年5月31日 上午12:08
下一篇 2021年5月31日 上午12:10

精彩推荐