当前位置: 首页 > news >正文

博客论坛网站开发百度移动版

博客论坛网站开发,百度移动版,大连建设工程信息网下载中心,可以做线路板网站的背景图目录 一. 排序数据 1.1 排序规则 1.2 单列排序 1.我们也可以使用列的别名,给别名进行排序 2.列的别名只能在 ODER BY 中使用, 不能在WHERE中使用。 3.强调格式:WHERE 需要在 FROM 后, ORDER BY 之前 1.3 二级排序&…

目录

一. 排序数据

1.1 排序规则 

1.2 单列排序 

1.我们也可以使用列的别名,给别名进行排序 

2.列的别名只能在 ODER BY 中使用, 不能在WHERE中使用。 

3.强调格式:WHERE 需要在 FROM 后, ORDER BY 之前 

1.3 二级排序(多列排序)

二、分页

2.1 背景 

2.2 实现规则 

2.3 WHERE ... ORDER BY ... LIMIT 声明顺序如下 

2.5 OFFSET,8.0新特性 

2.4 扩展

三、练习

1. 查询员工的姓名和部门号和年薪, 按年薪降序, 按姓名升序显示

2、选择工资不在 8000 到 17000 的员工的姓名和工资, 按工资降序,显示第 21 到 40 位置的数据

3. 查询名字中包含 e 的员工信息, 并按名字的字节数降序,再按部门号升序


一. 排序数据

1.1 排序规则 

  • 使用 ORDER BY 子句排序
    • ASC(ascend): 升序
    • DESC(descend):降序
  • ORDER BY 子句在SELECT语句的结尾。

1.2 单列排序 

#1.排序# 如果有没有使用排序操作,默认情况下查询返回的数据是按照添加数据的顺序显示的
#SELECT * FROM employees;# 练习:按照salary从高到低的顺序显示员工信息# 使用 ORDER BY 对查询到的数据进行排序操作
# 升序:AEC(ascend)
# 降序:DESC(descend)SELECT employee_id, name, salary 
FROM employees
ORDER BY salary;#如果没有在ODER BY 后指明排序方式,则默认按照升序排序SELECT employee_id, name, salary 
FROM employees
ORDER BY salary DESC;

1.我们也可以使用列的别名,给别名进行排序 

# 我们可以使用列的别名,进行排序
SELECT employee_id, name, salary, salary * 12 annual_sal
FROM employees
ORDER BY annual_sal;

2.列的别名只能在 ODER BY 中使用, 不能在WHERE中使用。 

SELECT employee_id, salary, salary * 12 annual_sal
FROM employees
WHERE annual_sal > 10000;

3.强调格式:WHERE 需要在 FROM 后, ORDER BY 之前 

SELECT employee_id, salary,depart_id
FROM employees
WHERE depart_id IN (1,2)
ORDER BY depart_id DESC;

1.3 二级排序(多列排序)

练习:显示员工信息,按照depart_id的降序排序,salary的升序排序

# 4.二级排序
# 练习:显示员工信息,按照depart_id的降序排序,salary的升序排序
SELECT Name, salary, depart_id
FROM employees
ORDER BY depart_id DESC ,salary DESC;

  • 可以使用不在SELECT列表中的列排序。
  • 在对多列进行排序的时候,首先排序的第一列必须有相同的列值,才会对第二列进行排序。如果第一列数据中所有值都是唯一的,将不再对第二列进行排序。

二、分页

2.1 背景 

背景1:查询返回的记录太多了,查看起来很不方便,怎么样能够实现分页查询呢?
背景2:表里有 4 条数据,我们只想要显示第 2、3 条数据怎么办呢?

2.2 实现规则 

  • 分页原理
  • 所谓分页显示,就是将数据库中的结果集,一段一段显示出来需要的条件。
  • MySQL中使用 LIMIT 实现分页
  • 格式:
LIMIT [位置偏移量,] 行数

第一个“位置偏移量”参数指示MySQL从哪一行开始显示,是一个可选参数,如果不指定“位置偏移量”,将会从表中的第一条记录开始(第一条记录的位置偏移量是0,第二条记录的位置偏移量是1,以此类推);第二个参数“行数”指示返回的记录条数。

示例:

--前10条记录:
SELECT * FROM 表名 LIMIT 0,10;
或者
SELECT * FROM 表名 LIMIT 10;
--第11至20条记录:
SELECT * FROM 表名 LIMIT 10,10;
--第21至30条记录: 
SELECT * FROM 表名 LIMIT 20,10;
# 2. 分页
# 2.1 mysql使用limit实现数据的分页显示# 需求: 每页显示20条记录, 此时显示第一页SELECT employee_id, Name
FROM employees
LIMIT 0, 20;

# 2.2 mysql使用limit实现数据的分页显示# 需求: 每页显示20条记录, 此时显示第二页SELECT employee_id, Name
FROM employees
LIMIT 20, 20;

MySQL 8.0中可以使用“LIMIT 3 OFFSET 4”,意思是获取从第5条记录开始后面的3条记录,和“LIMIT 4,3;”返回的结果相同。

# 需求: 每页显示pageSize条记录, 此时显示第pageNo页

  • 分页显式公式:(当前页数-1)*每页条数,每页条数
  • SELECT * FROM table 
    LIMIT(PageNo - 1)*PageSize,PageSize;
  • 注意:LIMIT 子句必须放在整个SELECT语句的最后!

使用 LIMIT 的好处

  • 约束返回结果的数量可以 减少数据表的网络传输量 ,也可以 提升查询效率 。如果我们知道返回结果只有1 条,就可以使用 LIMIT 1 ,告诉 SELECT 语句只需要返回一条记录即可。这样的好处就是 SELECT 不需要扫描完整的表,只需要检索到一条符合条件的记录即可返回。

2.3 WHERE ... ORDER BY ... LIMIT 声明顺序如下 

# 2.3 WHERE ... ORDER BY ... LIMIT 声明顺序如下:SELECT employee_id, Name, salary
FROM employees
WHERE salary > 6000
ORDER BY salary DESC
LIMIT 10;

2.5 OFFSET,8.0新特性 

# 联系:表里有107条数据,我们只想要显示 32, 33条数据怎么办?SELECT employee_id, Name
FROM employees
LIMIT 31 OFFSET 2;

2.4 扩展

# LIMIT 可以使用在 MySQL、PGSQL、MariaDB、 SQLite 等数据库中使用, 表示分页。
# 不能使用在 SQL Server、DB2、 Oracle

在不同的 DBMS 中使用的关键字可能不同。在 MySQL、PostgreSQL、MariaDB 和 SQLite 中使用 LIMIT 关键字,而且需要放到 SELECT 语句的最后面。

  • 如果是 SQL Server 和 Access,需要使用 TOP 关键字,比如:
SELECT TOP 5 name, hp_max FROM heros ORDER BY hp_max DESC
  • 如果是 DB2,使用 FETCH FIRST 5 ROWS ONLY 这样的关键字:
SELECT name, hp_max FROM heros ORDER BY hp_max DESC FETCH FIRST 5 ROWS ONLY
  • 如果是 Oracle,你需要基于 ROWNUM 来统计行数
SELECT rownum,last_name,salary FROM employees WHERE rownum < 5 ORDER BY salary DESC;

需要说明的是,这条语句是先取出来前 5 条数据行,然后再按照 hp_max 从高到低的顺序进行排序。但这样产生的结果和上述方法的并不一样。我会在后面讲到子查询,你可以使用如下方式得到与上述方法一直的结果.

三、练习

1. 查询员工的姓名和部门号和年薪, 按年薪降序, 按姓名升序显示

SELECT name, department_id, salary * 12 annual_sal
FROM employees
ORDER BY annual_sal DESC, Name ASC;

2、选择工资不在 8000 到 17000 的员工的姓名和工资, 按工资降序,
显示第 21 到 40 位置的数据

SELECT name, salary
FROM employees
WHERE salary NOT BETWEEN 8000 AND 17000
ORDER BY salary DESC
LIMIT 20, 20;

3. 查询名字中包含 e 的员工信息, 并按名字的字节数降序,再按部门号升序

SELECT employee_id, Name, department_id
FROM employees
WHERE Name like '%e%'
# WHERE Name REGEXP '{e}'
ORDER BY LENGTH(Name) DESC,department_id ASC;

今天就先到这了!!!

看到这里了还不给博主扣个:
⛳️ 点赞☀️收藏 ⭐️ 关注!

你们的点赞就是博主更新最大的动力!
有问题可以评论或者私信呢秒回哦。

http://www.hkea.cn/news/457143/

相关文章:

  • 用手机怎样制作网站网络seo是什么
  • 企业网站开发信息搜索大全浏览器
  • 做虚拟货币交易网站域名注册平台有哪些
  • 企业网站首页的实现专业的网页制作公司
  • 动态网站建设教程宝鸡seo排名
  • 做外贸b2b免费网站优化推广网站排名
  • 丹徒网站建设价格香港服务器
  • 宿迁哪里有做网站开发的信息流广告案例
  • 电脑网页无法访问如何解决北京seo地址
  • 直销网站系统制作价格java培训机构
  • dw软件个人简历网站怎么做百度导航下载2022最新版官网
  • 成都官方网站建设泉州seo外包
  • 矿山建设网站天津网络推广seo
  • 国内优秀的响应式网站深圳专业seo外包
  • 重庆装修价格c盘优化大师
  • 银行网站 设计方案外包优化网站
  • 做网站是学什么专业软件外包企业排名
  • wordpress商城 中文站百度站长平台网址
  • 建手机网站的软件有哪些南宁百度seo价格
  • 做网站私活长沙网络营销公司
  • 网站建设公司 广告法被处罚沧州网络推广外包公司
  • 电商网站 开发成本惠州seo外包服务
  • 佛山做网站建设价格百度网盘官方下载
  • 网上购物商城网站建设个人免费域名注册网站
  • 成都学网站建设电子营销主要做什么
  • 织梦cms通用蓝白简介大气企业网站环保科技公司源码网络推广员招聘
  • 网站后台怎么添加图片视频app推广
  • 网站秒收录怎么做的经典软文案例和扶贫农产品软文
  • 珠海疫情最新情况厦门搜索引擎优化
  • 中国菲律宾历史战绩网站关键词优化工具