AI智能
改变未来

MySQL查询与函数

一、子查询
/*
概念:
嵌套在另一个查询中的查询语句称为子查询,外部的查询称为主查询,类似于java中的内部类
语法
select 字段1,字段2
from 表1
where Id in(
select 字段1 from 表2
)
特点或者说注意事项:
1、子查询放在小括号内
2、放在条件右侧
3、子查询优先于主查询执行

分类:
单行子查询:子查询的结果只有一个值,使用单行操作符(> < >= <= = <>)
多行子查询:使用多行操作符(any、all、in、not in)

二、多行子查询
#案例1:返回location_id是1400或1700的部门中的所有员工姓名

#①查询location_id是1400或1700的部门编号SELECT department_id FROM departmentsWHERE location_id IN(1400,1700)#②查询department_id满足①结果的员工姓名SELECT last_name FROM employeesWHERE department_id IN(SELECT department_id FROM departmentsWHERE location_id IN(1400,1700))

#案例2:返回其它部门中比job_id为‘IT_PROG’部门任意工资低的员工的员

工号、姓名、job_id 以及salary

#①查询job_id为‘IT_PROG’部门工资SELECT salaryFROM employeesWHERE job_id = \'IT_PROG\'#②返回其它部门中,工资<any ①的结果SELECT  last_name,employee_id,job_id,salaryFROM employeesWHERE salary<(SELECT MAX(salary)FROM employeesWHERE job_id = \'IT_PROG\')AND job_id<>\'IT_PROG\';

三、
1)字符函数
分页查询
#语法
#SELECT 查询的东西
#FROM 表
#【WHERE 条件】
#【GROUP BY 字段】
#【HAVING 条件】
#【ORDER BY 排序的字段】
LIMIT 条目起始索引【,条目数】

#特点
#1.写法
#写法一:
#LIMIT 条目数
#意思:从第一条开始,显示指定条目数的数据
#写法二:
#LIMIT 起始条目索引,条目数
#意思:从指定的起始索引的条目开始,显示指定条目数的数据

#2.起始索引从0开始

2)、数学函数

#向上取整,返回>=该参数的最小整数
SELECT CEIL(-1.0);

#向下取整,返回<=该参数的最大整数
SELECT FLOOR(-1.0);

#四舍五入,先按绝对值四舍五入,然后加正负号
SELECT ROUND(-1.56);
SELECT ROUND(1.537,1);

#随机数,返回0-1之间的小数,不包含1
SELECT RAND();

#返回50-100 a——b floor(rand()*(b-a+1)+a)
SELECT CEIL(RAND()*50+50);
SELECT FLOOR(RAND()*51+50);

#截断
SELECT TRUNCATE(1.99,1);

3)、日期函数

#三、日期函数
#获取当前日期
SELECT NOW();

#获取日期,没有时间
SELECT CURDATE();

#获取时间,没有日期
SELECT CURTIME();

#获取日期的指定部分
SELECT YEAR(NOW());
SELECT MONTH(NOW());
SELECT MONTHNAME(NOW());
SELECT DAY(NOW());

SELECT CONCAT(YEAR(NOW()),‘年’,MONTH(NOW()),‘月’,DAY(NOW()),‘日’) 日期;

#判断两个日期的差别天数,前者比后者大,返回正数,小返回负数,相等返回0.
SELECT DATEDIFF(NOW(),‘2022-8-8’);
SELECT DATEDIFF(‘2017-9-25’,NOW());

4)、流程控制函数

#1.if函数
SELECT IF(100>9,‘不错呦’,‘不够大’) 备注;

#2.case语句

#语法:
#CASE
#WHEN 条件1 THEN 显示的值1
#WHEN 条件2 THEN 显示的值2
#…
#ELSE 显示的值n
#END

#类似于:

#IF(条件1){
语句1;
#}ELSE IF(条件2){
#}ELSE{

#}
#3.case语句
#语法:

#CASE 字段或表达式
#WHEN 值1 THEN 显示的值1
#WHEN 值2 THEN 显示的值2
#…
#ELSE 显示的值n
#END

#类似于:
#switch(变量或表达式){

#CASE 值1 :语句1;break;

DEFAULT:语句n;break;

#}

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » MySQL查询与函数