MySQL--DQL(1)

目录

DQL(1)

准备数据:

相关知识点:

题目:

1.查询所有的商品

2.查询商品名和商品价格

3.别名查询,使用的关键字是as(as可以省略的)

4.去掉重复值

5.查询结果是表达式(运算查询):将所有商品的价格+10元进行显示

6.查询商品名称为"海尔洗衣机"的商品所有信息

7.查询价格为800商品

8.查询价格不是800的所有商品

9.查询商品价格大于60元的所有商品信息

10.查询商品价格在200到1000之间所有商品

11.查询商品价格是200或800的所有商品

12.查询含有'裤'字的所有商品

13.查询以'海'开头的所有商品

14.查询第二个字为'蔻'的所有商品

15.查询category_id为null的商品

16.查询category_id不为null分类的商品


DQL(1)

准备示例数据:

sql 复制代码
create database  mydbx_temp3;

use mydbx_temp3;

create table product(pid int primary key auto_increment, pname varchar(20) not null, price double, category_id varchar(20) );

insert into product values(null,'海尔洗衣机',5000,'c001');
insert into product values(null,'美的冰箱',3000,'c001');
insert into product values (null,'格力空调',5000,'c001');
insert into product values(null,'九阳电饭煲',200,'c001');
insert into product values(null,'啄木鸟衬衣',300,'c002');
insert into product values(null,'恒源祥西裤',800,'c002');
insert into product values(null,'花花公子夹克',440,'c002');
insert into product values(null,'劲霸休闲裤',266,'c002');
insert into product values(null,'海澜之家卫衣',180,'c002');
insert into product values(null,'杰克琼斯运动裤',430,'c002');
insert into product values(null,'兰蔻面霜',300,'c003');
insert into product values(null,'雅诗兰黛精华水',200,'c003');
insert into product values(null,'香奈儿香水',350,'c003');
insert into product values(null,'SK-II神仙水',350,'c003');
insert into product values(null,'资生堂粉底液',180,'c003');
insert into product values(null,'老北京方便面',56,'c004');
insert into product values(null,'良品铺子海带丝',17,'c004');
insert into product values(null,'三只松鼠坚果',88,null);

准备数据:

相关知识点:

DQL语法

  • 语法组成

select 字段列表 from 表名列表 where 条件列表 group by 分组字段列表 having 分组后条件列表 order by 排序字段列表 limit 分页参数

  • 子句的执行顺序如下图:
  • 字句执行顺序

    • from:SQL查询起点,指定表或视图

    • where:过滤数据,返回满足条件的记录

    • group by:数据分组,进行聚合操作

    • having:过滤分组后的数据,限制返回的分组

    • select:指定查询返回的列字段

    • distinct:去重

    • order by:查询结果排序

    • limit:限制返回的记录数量

  • 分拆以下及几个部分

    • 基本查询(不带任何条件)

    • 条件查询(where)

    • 聚合函数(count、max、min、avg、sum)

    • 分组查询(group by)

    • 排序查询(order by)

    • 分页查询(limit)

基本查询

  • 查询所有内容

select * from 表名; # sql优化不推荐使用

  • 查询指定字段

select 字段1,字段2,字段3.....from 表名; # 字段即列名

  • 查询时给字段起别名

select 字段1 as '别名1' , 字段2 as '别名2' ... from 表名;

as关键字可以对表或列进行重命名,使得SQL语句更加简洁易,as可以省略

别名中使用特殊字符,或者是强制大小写敏感,或有空格时,都可以通过为别名添加加双引号实现

  • 去重查询

select distinct 字段列表 from 表名; # 使重复的数据只显示一条

在对字段进行去重的时候,要保证distinct在所有字段的最前面

如果distinct关键字后面有多个字段时,则会对多个字段进行组合去重,只有多个字段组合起来的值是相等的才会被去重

条件查询

  • 语法

select 字段列表 from 表名 where 条件列表 ;

  • 算术运算符

加(+)、减(-)、乘(*)、除(/)和取模(%)

MySQL的+默认只有一个功能:加运算符,没有连接运算

聚合函数

  • 作用:将一列数据作为一个整体,进行纵向计算,本质也是分组函数

  • 组成:

  • 语法:

select 聚合函数(字段列表) from 表名

注意 : NULL值是不参与所有聚合函数运算

分组查询

  • 作用:该列具有相同值的多条记录当成一组记录处理,最后只输出一条记录

  • 语法

select 字段,聚合函数 from 表名 [ where 条件 ] group by 字段 [ having 分组后过滤条件 ];

排序查询

  • 语法

order by 字段1 asc/desc, 字段2 asc/desc.....

  • 分析

    • 升序:asc(ascend),默认

    • 降序:desc (descend)

    • 排序依据为字符编码顺序排序,也可以自定义顺序排序

    • 多次排序为分组排序,会在组内部进行再次排序

分页查询

  • 作用:当数据表中有上万条数据时,一次性查询出表中的全部数据会降低数据返回的速度,同时给数据库服务器造成很大的压力,这时就可以用 limit 关键字来限制查询结果返回的条数,可以指定查询结果从哪条记录开始显示,一共显示多少条记录。

  • 3种语法

limit 初始位置,记录数 # 从第几条记录开始显示,显示几条,注意:第一条记录的位置是0
limit 记录数 # 从第一条记录开始显示几条记录
limit 记录数 offset 初始位置 # 从第几条记录开始显示之后的几条记录 (偏移量方式)

题目:

-- 1.查询所有的商品.

-- 2.查询商品名和商品价格.

-- 3.别名查询.使用的关键字是as(as可以省略的).

-- 4.去掉重复值.

-- 5.查询结果是表达式(运算查询):将所有商品的价格+10元进行显示.

-- 6,查询商品名称为"海尔洗衣机"的商品所有信息:

-- 7.查询价格为800商品

-- 8.查询价格不是800的所有商品

-- 9.查询商品价格大于60元的所有商品信息

-- 10.查询商品价格在200到1000之间所有商品

-- 11.查询商品价格是200或800的所有商品

-- 12.查询含有'裤'字的所有商品

-- 13.查询以'海'开头的所有商品

-- 14.查询第二个字为'蔻'的所有商品

-- 15.查询category_id为null的商品

-- 16.查询category_id不为null分类的商品

1.查询所有的商品

2.查询商品名和商品价格

3.别名查询,使用的关键字是as(as可以省略的)

4.去掉重复值

5.查询结果是表达式(运算查询):将所有商品的价格+10元进行显示

6.查询商品名称为"海尔洗衣机"的商品所有信息

7.查询价格为800商品

8.查询价格不是800的所有商品

9.查询商品价格大于60元的所有商品信息

10.查询商品价格在200到1000之间所有商品

11.查询商品价格是200或800的所有商品

12.查询含有'裤'字的所有商品

13.查询以'海'开头的所有商品

14.查询第二个字为'蔻'的所有商品

15.查询category_id为null的商品

16.查询category_id不为null分类的商品

相关推荐
叫我龙翔3 小时前
【MySQL】从零开始了解数据库开发 --- 基本查询
android·mysql·数据库开发
盖世英雄酱581363 小时前
分库分表正在被淘汰
数据库·后端
ClouGence4 小时前
轻量安全、开箱即用:0 成本开启数据实时同步
数据库·saas
junnhwan4 小时前
【苍穹外卖笔记】Day05--Redis入门与店铺营业状态设置
java·数据库·redis·笔记·后端·苍穹外卖
hzk的学习笔记4 小时前
Redis除了做缓存还能用来干什么
数据库·redis·缓存
krielwus5 小时前
Oracle OMF 配置文档
数据库·oracle
江湖人称小鱼哥6 小时前
Prisma 命令安全指南
数据库·安全·prisma
Gauss松鼠会6 小时前
【openGauss】1分钟掌握:openGauss活动会话CPU占用率获取
数据库·database·opengauss
豆沙沙包?6 小时前
2025年--Lc182--sql(排序和分组)--Java版
java·数据库·sql