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

MySQL基础关键_003_DQL(二)

目  录

一、排序

1.语法格式

2.单一字段排序

(1)按照薪资升序查询员工编号、姓名、薪资

(2)按照入职日期降序查询员工信息

3.多个字段排序 

(1)按照薪资升序,薪资相同按照姓名升序查询员工信息

 4.where 与 order by 的顺序

(1)按照薪资升序,查询职位是“CLERK”的员工信息

(2)执行顺序

 二、去重

1.查询所有职位

2.语法规则

3.查询所有部门编号所有职位

 三、数据处理函数1

1.字符串相关

(1)利用 upper 或 ucase 转大写

(2)利用 lower 或 lcase 转小写

(3)利用 substr 截取字符串 

(4)利用 length 获取字符串长度

(5)利用 char_length 获取字符个数

(6)利用 concat 拼接字符串

(7)利用 trim 去除字符串前后内容

 2.数字相关

(1)利用 rand 生成 0~1 的随机浮点数

(2)利用 round 四舍五入 

(3)利用 truncate 舍去小数

(4)利用 ceil 和 floor 返回整数


一、排序

1.语法格式

  1. 【select… from… order by 字段 asc/desc;】;
  2. asc:升序;
  3. desc:降序;
  4. 默认按照升序排序;
  5. 其中,字段名可以用列编号代替,例如:1,2,3……。但是不推荐使用。

2.单一字段排序

(1)按照薪资升序查询员工编号、姓名、薪资

select emp_no, emp_name, salary from employees order by salary asc;


(2)按照入职日期降序查询员工信息

select * from employees order by hire_date desc;


3.多个字段排序 

(1)按照薪资升序,薪资相同按照姓名升序查询员工信息

select * from employees order by salary asc, emp_name asc;


 4.where 与 order by 的顺序

(1)按照薪资升序,查询职位是“CLERK”的员工信息

select * from employees where job_title = 'CLERK' order by salary asc;


(2)执行顺序

  1. 首先,执行 from 语句;
  2. 其次,执行 where 语句;
  3. 再次,执行 select 语句;
  4. 最后,执行 order by 语句。

 二、去重

1.查询所有职位

select distinct job_title from employees;


2.语法规则

  1. distinct 只能出现在所有字段最前方
  2. 存在 distinct 后,之后的字段是联合去重的。

3.查询所有部门编号所有职位

select distinct dept_no, job_title from employees;


 三、数据处理函数1

1.字符串相关

(1)利用 upper 或 ucase 转大写

        查询员工姓名,大写输出。

# upper
select upper(emp_name) from employees;# ucase
select ucase(emp_name) from employees;


(2)利用 lower 或 lcase 转小写

        查询员工姓名,小写输出。

# lower
select lower(emp_name) from employees;# lcase
select lcase(emp_name) from employees;


(3)利用 substr 截取字符串 

        查询员工姓名中第二个字母是 A 的员工。

select emp_name from employees where substr(emp_name, 2, 1) = 'A';


(4)利用 length 获取字符串长度

        一个汉字是两个长度。

select length('你好啊,5201314');


(5)利用 char_length 获取字符个数

        只是获取字符个数,区别上方 length。

select char_length('你好啊,5201314');


(6)利用 concat 拼接字符串

  1. 语法:【concat('字符串1', '字符串2', '字符串3',……);】;
  2. 在 MySQL 8 之前,还可以借助【 || 】实现字符串拼接。但 MySQL 8 之后,其只作为逻辑运算符。
select concat('I ', 'Love ', 'You!');


(7)利用 trim 去除字符串前后内容

  1. 可以去除前后空白
  2. 也可以去除指定前缀、后缀
# 去除前后空白
select concat('I', trim('    miss    '), 'you.');# 去除前缀
select trim(leading 'I' from 'IIIIII hate you!!!');# 去除后缀
select trim(trailing '!' from 'IIIIII hate you!!!'); # 去除前后缀
select trim(both 'H' from 'HHHHHHateHHHHHH');


 2.数字相关

(1)利用 rand 生成 0~1 的随机浮点数

        若想要一直获得同一个随机数,只需在 rand() 的括号内指定一个整数。

# 1
select rand();# 2
select rand();# 3
select rand(99);# 4
select rand(99);


(2)利用 round 四舍五入 

  1. round(x):四舍五入,只保留整数位;
  2. round(x, y):四舍五入,保留 y 位小数。 
# round(x)
select round(3.15);# round(x, y)
#select round(3.15, 1);


(3)利用 truncate 舍去小数

        truncate(x, y):对 x 保留 y 位小数,其余全部舍去。

select truncate(3.1415926, 3);


(4)利用 ceil 和 floor 返回整数

  1. ceil(x):返回大于或等于数值 x 的最小整数;

  2. floor(x):返回小于或等于数值 x 的最大整数。

# ceil(x)
select ceil(3.14);# floor(x)
select floor(3.14);

http://www.dtcms.com/a/167679.html

相关文章:

  • WEB UI自动化测试之Selenium框架学习
  • 【HarmonyOS】作业三 UI
  • 【信息系统项目管理师-论文真题】2024上半年(第二批)论文详解(包括解题思路和写作要点)
  • 【云备份】服务端工具类实现
  • Unity动态列表+UniTask异步数据请求
  • 嵌入式AI还是一片蓝海
  • MySQL 服务搭建
  • 范式演进:从ETL到ELT及未来展望
  • 多智能体空域协同中的伦理博弈与系统调停
  • 题解:CF1398D Colored Rectangles
  • 华为eNSP:多区域集成IS-IS
  • Python基本语法(控制语句)
  • Java中修饰类的关键字
  • windows中Python的pip工具换源的方法及其原理
  • RISC-V AIA SPEC学习(四)
  • 位运算切换大小写
  • C 语言 第五章 指针(5)
  • MATLAB 中zerophase函数——零相位响应
  • (B题|矿山数据处理问题)2025年第二十二届五一数学建模竞赛(五一杯/五一赛)解题思路|完整代码论文集合
  • 「面白い」日本 课文详解
  • 2025东三省C题深圳杯C题数学建模挑战赛数模思路代码文章教学: 分布式能源接入配电网的风险分析
  • FreeSWITCH 发送 sip message 的 lua 程序
  • 【C语言常用字符串解析】
  • 解锁 C++26 的未来:从语言标准演进到实战突破
  • 负载均衡深度实践:基于Nginx+Keepalived的高可用方案与Zabbix监控设计
  • archlinux wine 运行windows程序
  • Python学习笔记(第三部分)
  • 人工智能对未来工作的影响
  • 三生原理的离散生成逻辑如何与复分析结合?
  • Python字典(dict)详解:从创建到操作全掌握