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分类的商品

相关推荐
曹牧11 小时前
Oracle数据库中,将JSON字符串转换为多行数据
数据库·oracle·json
被摘下的星星11 小时前
MySQL count()函数的用法
数据库·mysql
末央&12 小时前
【天机论坛】项目环境搭建和数据库设计
java·数据库
徒 花12 小时前
数据库知识复习07
数据库·作业
素玥12 小时前
实训5 python连接mysql数据库
数据库·python·mysql
jnrjian12 小时前
text index 查看index column index定义 index 刷新频率 index视图
数据库·oracle
瀚高PG实验室12 小时前
审计策略修改
网络·数据库·瀚高数据库
言慢行善13 小时前
sqlserver模糊查询问题
java·数据库·sqlserver
韶博雅13 小时前
emcc24ai
开发语言·数据库·python
有想法的py工程师13 小时前
PostgreSQL 分区表排序优化:Append Sort 优化为 Merge Append
大数据·数据库·postgresql