牛客网Mysql刷题笔记

mysql:
	
	1、判断一个字段是否为奇数/偶数
		mod(id,2)=1  奇数 
		mod(id,2)=0  偶数
		
		select * from employees where mod(emp_no,2)=1 and last_name!='Mary' order by hire_date desc;

	2、mysql 中 group_concat()用法--**实现行转列功能**
		基本语法:group_concat([DISTINCT] 要连接的字段 [Order BY  排序字段 ASC/DESC] [Separator '分隔符'])
		select name , GROUP_CONCAT(money) money from aa GROUP BY name;
		表示以name相同的放在一组里面,然后将money放在一行上。

在这里插入图片描述
结果:
在这里插入图片描述

	3limit
		limit 2  # 只有一个参数,表示查询前面2条数据
		limit offset,length # 有两个参数,length表示每页显示条数,offset=(页码-1)*每页显示量,offset=(页码-1)*length
Mysql中的函数:
	1、字符函数
		1)length(‘字符串’) # 获取参数值的字节个数
		2)concat(last_name,'_',first_name) # 拼接字符串
		3)upper('字符串') # 转为大写
		4)lower('字符串') # 转为小写
		5)substr('字符串',6) # 从小标为6开始截取字符串(mysql中下标是从1开始的)
		substr('字符串',1,3) # 从小标1开始,截取长度为3的字符串
		substr('hello',-2,1) # 从倒数第二个开始,截取长度为1
		6)substring # 与上述的substr用法一样
		7)instr('字符串1','字符串2') # 返回字符串2在字符串1中第一次出现的索引,如果找不到,返回0
		8)trim('  字符串  ')  # 去除前后空格
		9)lpad('字符串',10,'*')  # 用指定的*字符去左填充,以达到长度为10
		10)rpad('字符串',10,'*') # 用指定的*字符去右填充,以达到长度为10
		11replace('字符串','str1','str2')  # 将字符串中的str1替换为str2
		12)substring_index('字符串','分隔符',count) # count>0表示从前往后取,count<0表示从后往前取		
		# count=1>0,表示从前往后去,取到第一个分隔符为值,结果为:a
		select substring_index('a-b-c', '-', 1);
		# count=2>0,表示从前往后去,取到第二个分隔符为值,结果为:a-b
		select substring_index('a-b-c', '-', 2);
		# count=-1<0,表示从后往前去,取到第一个分隔符为值,结果为:c
		select substring_index('a-b-c', '-', -1);
		# count=-2<0,表示从后往前去,取到第二个分隔符为值,结果为:b-c
		select substring_index('a-b-c', '-', -1);
		13)locate(subStr,string)函数判断字符串(string)中是否包含另一个字符串(subStr)
			// 如果字符串 string 包含 subStr  locate(subStr,string) > 0
			// 如果字符串 string 不包含 subStr  locate(subStr,string) = 0

locate(subStr,string) > 0
		
	2、数学函数
		1round(1.45) # 四舍五入
			round(1.456,2) # 保留2位小数
		2、ceil(4.5) # 向上取整
		3、floor(4.5) # 向下取整
		4truncate(1.699999,1) # 截断(也即保留小数点后几位)
		5mod(10,3) # 取余
		
	3、日期函数
		1now() # 返回当前系统日期和时间
		2、curdate() # 返回当前系统日期,不返回时间
		3、curtime() # 返回当前系统时间,不返回日期
		4year()month()day()
		5、str_to_date('1998-02-01','%Y-%c-%d') # 将字符串通过指定格式转换成日期
		6、date_to_str('1989-09-02','%y年%m月%d日') # 将日期通过指定格式转换成字符串
		7、timestampdiff
		select timestampdiff(year, '1990-02-01 00:00:00', '2020-01-01 00:00:00');
select timestampdiff(year, '1990-02-01 00:00:00', '2020-04-01 00:00:00');
select timestampdiff(day, '1990-02-01 00:00:00', '1990-03-01 00:00:00');
select timestampdiff(hour, '1990-02-01 00:00:00', '1990-02-02 00:00:00');
	
	4、其它函数
		select version();
		select database();
		select user();
	
	5、流程控制函数
		1if(10>5,'大','小')
		2case函数
			第一种用法:
				case 要判断的字段或表达式
				when ... then...
				when ... then...
				else
				end
			
			第二种用法:
				case 
				when ... then...
				when ... then...
				else
				end
			
			
			
		
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值