SQL基础语句四

SQL基础语句
来源于尚硅谷的SQL基础语句笔记 原创
四.常见函数
功能:类似于java方法,将一组逻辑语句封装在方法体中,对外暴露方法名
好处: 1.隐藏了实现细节 2.提高代码的重用性
调用:select 函数名() from 表;
特点: 叫什么(函数名) 干什么(功能)
分类: 1.单行函数
Contant length ifnull 等
2.分组函数
做统计用
一. 字符函数
Length
SELECT LENGTH(‘John’);
SELECT LENGTH(‘张三丰hahaha’); 一个汉字占了三个字节 字母占一个字节
2 Contant 拼接字符
SELECT CONTANT (last_name,’_’,first_name) 姓名FROM employees;

Upper/lower
案例:将姓变大写,名字变小写,然后拼接
SELECT CONTANT(UPPER(last_name),LOWER(first_name))姓名 FROM employees;

Substr、substring
SELECT SUBSTR(‘李莫愁爱上了一个人陆展元’,6) out_put; 输出:了
截取从指定索引处后面的所有字符
截取从指定索引处指定的字符长度的字符
案例:姓名中首字母大写,其他字符小写然后用_拼接,显示出来
SELECT CONTAT(SUBSTR(last_name,1,1)),’_’,LOWER(SUBSTR(last_name,2))) out_put
FROM employees;

5.instr
SELECT INTER(‘杨不悔爱上了殷六侠’,‘殷六侠’)AS out_put;
Instr返货子串第一次出现的索引,如果找不到返回0
Trim
SELECT TRIM(‘张翠山’) AS out_put; 去首去尾
7.lpad
SELECT LPAD(‘殷素素’,10,‘*’)AS out_put;
用指定的字符实现左填充指定长度;
8.rpad
用指定的字符实现右填充指定长度;
9.replace
SELECT REPLACE(‘111112233’,’22’,’33’) AS out_put;
二 数学函数
Round 四舍五入
SELECT ROUND(1.65);
SELECT ROUND(1.567,2); 1.57 2表示保留两位小数

Ceil 向上取证 返回>=该参数的最小整数
SELECT CELL(1.00);

Flloor 向下取证,返回<=该参数的最大整数

Truncate 截断
SELECT TRUNCATE(1.65,1);

Mod取余
SELECT MOD(10,3);
三 日期函数
Now 返回当前系统日期+时间;
SELECT NOW();
Curdate 返回当前系统日期,不包含时间
SELECT CURDATE();
Curtime 一样

可以获取指定的部分,年月日时分秒
SELECT YEAR(NOW()) 年;
Str_to_date:将日期格式的字符转换成指定格式的日期

案例:查询有奖学金的员工名和入职日期(xx月、xx日 xx年)
SELECT last_name ,DATE_FORMAT(hiredate,’%m月、%d日 %y年’) 入职日期
FROM employees
WHERE commission IS NOT NULL;
其他函数
SELECT VERSION();
SELECT DATABASE();
流程控制函数

  1. If函数 if else 的效果
    SELECT IF(10>5,’大’,‘小’);
  2. case函数的使用一: switch case的效果
    案例:查询员工的工资,要求
    部门号=30,显示的工资为1.1倍
    部门号=40,显示的工资为1.2倍
    部门号=50,显示的工资为1.3倍
    其他部门 显示的工资为原工资

SELECT salary 原始工资,department_id,
CASE department_id
WHEN 30 THEN salary1.1
WHEN 40 THEN salary
1.2
WHEN 50 THEN salary*1.3
ELSE salary
END AS 原工资
FROM employees;

案例2.查询员工的工资的情况
如果工资>20000. 显示A级别
如果工资>15000,显示B级别,
如果工资>10000,显示C级别
否则,显示D级别

SELECT salary
CASE
WHEN salary>20000 THEN ‘A’
WHEN salary>15000 THEN’B’
WHEN salary>10000 THEN ‘C’
ELSE ‘D’
END AS 工资级别
FROM employees;

练习

  1. 显示系统时间
    SELECT NOW();
  2. 查询员工号,姓名,工资,以及工资提高百分之20后的结果
    SELECT employee_id,last_name,salary ,salary*1.2 “new salary”
    FROM employees;
  3. 将员工的姓名按首字母排序,并写出姓名的长度
    SELECT LENGTH(last_name)长度,SUBSTR(last_name,1,1) 首字符,
    Last_name
    FROM employees ORDER BY 首字符;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值