数据库mysql no.3

1.排序查询

 order by  排序列表  【asc/desc】

排序列表:可以是单个字段、多个字段、表达式、函数、别名。

asc 升序        desc  降序       如果没有写那就是默认升序

2.常见函数   

select  函数名();

定义:函数即将功能封装到函数里面,然后使用的时候调用函数名就可以。

1.字符函数:

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被替换后的果 

 2.数学函数

round()    四舍五入

ceil()     向上取整   返回>=该参数的最小整数

floor     向上取整    返回<=该参数的最大整数

truncate    阶段  即truncate('1.223',1);小数点后保留一位小数  1.2      不四舍五入

mod   取余

3.日期函数

now   返回当前系统日期+时间

curdate    只返回日期,不返回时间

curtime    只返回时间,不返回日期

str_to_date    将字符通过指定的格式转化成日期

date_format    将日期转换成字符

4.其他函数

select version();

select user();

select database;

3.sql练习

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;


  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值