order by 排序列表 【asc/desc】
排序列表:可以是单个字段、多个字段、表达式、函数、别名。
asc 升序 desc 降序 如果没有写那就是默认升序
select 函数名();
定义:函数即将功能封装到函数里面,然后使用的时候调用函数名就可以。
length() 求字节个数
concat() 字符长拼接
upper() 变大写 lower 变小写
substr()、substring() 截取字符 mysql的索引是从1开始的
substr('呵呵呵呵呵呵',3); 截取字符串从3出发的所有字符,包括3。
substr('hehehehhe','1','3'); 这里1是从一开始,3是往后3个字符,切记不 是截至到3.
instr() instr('hejunjun','jun');返回子串第一次出现的索引,即jun在hejunjun里第一次出现的索引
trim() 去除空格、或者是指定内容 只去两头不去中间
lpad() 左填充 rpad() 右填充 select lpad('殷素素',5,' * '); 即变成 **殷素素 这个5包括殷素素一共,如果不够就填充指定字符,如果少就截取名字部分如2的话就截取殷素。
replace() 替换 replace('A','B','C');A里包含BC 即用C替换B然后输出A中B被替换后的果
round() 四舍五入
ceil() 向上取整 返回>=该参数的最小整数
floor 向上取整 返回<=该参数的最大整数
truncate 阶段 即truncate('1.223',1);小数点后保留一位小数 1.2 不四舍五入
mod 取余
now 返回当前系统日期+时间
curdate 只返回日期,不返回时间
curtime 只返回时间,不返回日期
str_to_date 将字符通过指定的格式转化成日期
date_format 将日期转换成字符
select version();
select user();
select database;
SELECT * FROM employees WHERE employee_id LIKE '%1%' ORDER BY salary DESC,employee_id ASC;
SELECT length('aaaa');
SELECT CONCAT(last_name,first_name) as bb FROM employees;
SELECT UPPER('hhgg');
SELECT LOWER('KKOKD');
SELECT SUBSTR('hejun66','2');
SELECT SUBSTR('hejun66','3','5');
SELECT INSTR('hejun','u');
SELECT TRIM(' h ejuj ')
SELECT TRIM('a' FROM 'aaaaaaaaaaaaahejujaaaaaaaaa')
SELECT LPAD('殷素素',6,'^');
SELECT LPAD('殷素素',2,'^');
SELECT RPAD('殷素素',5,'^');
SELECT REPLACE('hejunbingqi','hejun','love');
SELECT ROUND(1.2);
SELECT CEIL(3.01);
SELECT floor(3.99);
SELECT TRUNCATE(1.22,0);
SELECT MOD(3,2);
SELECT NOW();
SELECT CURRENT_DATE();
SELECT CURRENT_TIME();
SELECT STR_TO_DATE('21-8 2001','%d-%c %Y');
SELECT DATE_FORMAT('2024-1-11','%Y年-%c月-第%d天');
SELECT VERSION();
SELECT USER();
SELECT DATABASE();
-- case函数使用1 case WHEN THEN END
-- 查询员工的工资要求
/* 部门号 =30,显示工资为1.1倍
部门号=40,显示工资为1.2倍
部门号=50,显示工资为1.3倍
其他部门,显示工资为原工资
*/
SELECT department_id,salary 原始工资,
CASE department_id
WHEN 30 THEN salary*1.1
when 40 then salary*1.2
WHEN 50 then salary*1.3
else salary
END as 新工资 FROM employees;
-- case函数使用2 类似多重if
/*
case无
when
*/
-- 显示系统时间(时间+日期)9
SELECT MAX(salary) FROM employees;
SELECT MIN(salary) FROM employees;
SELECT count(salary) FROM employees;
SELECT sum(salary) FROM employees;
SELECT avg(salary) FROM employees;
SELECT ROUND(AVG(salary),2) 平均,MAX(salary) FROM employees;
-- 和distinct搭配实现去重
SELECT SUM(DISTINCT salary),SUM(salary) FROM employees;
SELECT COUNT(*) FROM employees;
SELECT COUNT(1) FROM employees;
-- 练习
-- 1.查询公司员工工资的最大值,最小值,平均值,总和
SELECT MAX(salary) 最大工资,MIN(salary) 最小工资,ROUND(AVG(salary),2) 平均工资 FROM employees;
-- 查询员工表中的最大入职时间和最小入职时间的相差天数
SELECT DATEDIFF(MAX(hiredate),MIN(hiredate)) FROM employees;
-- 查询部门编号为90的员工个数
SELECT COUNT(*) FROM employees WHERE department_id=90;