initcap mysql_SQL语句一

order by关键字:

作用:用于对查询结果进行排序

用法:

1.利用asc 、desc对排序列进行升序或降序。

2.order by后可以添加多个列(逗号分隔),当一个列的值相同时,在按第二列进行排序,依次类推。

例:

1.求:部门是20的薪水

select * from emp where deptno = 20 order by sal;

2.求:部门是20的升序排列

select * from emp where deptno = 20 order by sal asc;

3.求:部门是20的薪水降序排列

select * from emp where deptno = 20 order by sal desc;

4.如果排序的列值相同时如何处理?(按照字典顺序)

select * from emp where deptno = 20 order by sal desc,ename;

为什么需要计算字段?

我们经常需要直接从数据库中检索出转换、计算或格式化过的数据;而不是检索出数据,然后再客户机应用程序中重新格式化。

计算字段并不实际存在于数据库表

Sql允许select子句中出现+,-,*,/,以及列名和常数的表达式

拼接字段(||,+)

首选||(mysql中||表示or,一般用concat())

例:

1.获取员工年薪

select (ename||'的年薪为:'||sal*12) info from emp;

集合

集合操作:

1.union 并集

例:

select * from emp where deptno = 20

union

select *from emp where sal > 2000;

2.union all 全集

例:

select * from emp where deptno = 20

union all

select *from emp where sal > 2000;

3.intersect 交集

例:

select * from emp where deptno = 20

intersect

select *from emp where sal > 2000;

4.minus 差集

例:

select * from emp where deptno = 20

minus

select *from emp where sal > 2000;

注意:

1.保证两个sql查询的列数是个数一致的。

2.保证两个sql查询的列的数据类型是一致的。

3.保证两个sql查询的列是相同的,否则查询的结果是无意义的。

函数

单行函数:对单个数值进行操作,并返回一个值。

分类:

1.字符函数

1.concat(a,b) 拼接a,b两个字符串数据

例:

select concat(concat(ename,'的职位是'),job)from emp;

2.initcap(x) 将每个单词x首字母大写

例:

select initcap('ename' )from dual;

3.lower() / upper() 将字符串小写/将字符串大写

例:

select lower ('LAowang') from dual;

select lower(ename) from emp;

select upper('das')from dual;

4.length() 获取字符串的长度

例:

select ename,length(ename) from emp;

5.lpad(a,b,c) /rpad() 将a字符串左边填充至b长度,用c字符填充

例:

select lpad(ename,10) from emp;

select rpad(ename,10,'*') from emp;

6.ltrim(a,b) / rtrim() 去除a字符串左边的b字符,如果b不传参,默认去除空格

例:

select ltrim(' abccba ') from dual;

select rtrim(' absd ') from dual;

7.replace(a,b,c) 将a中的b字符串替换为c

例:

select replace('he love you','i') test from dual;

8.substr(a,b,c) 将a的字符串,从b位置开始截取,截c个长度

例:

select substr('130888888881234',3,8)test from dual;

9.trim( a from b) 将b左右两边的a字符去除掉

例:

select trim('a' from 'a ba aa') from dual;

2.数字函数

1.abs() 求取绝对值

例:

select abs(-5) from dual;

2.ceil() 向上取整

例:

select ceil(3.1) from dual

3.floor() 向下取整

例:

select floor(3.9) from dual;

4.round() 四舍五入

例:

select round(4.5),round(4.4) from dual;

5.power(x,y) x的y次幂

例:

select power(2,10) from dual;

3.日期函数

1.sysdate 返回系统当前日期,注意没有括号

例:

select sysdate from dual;

2.add_months(d1,d2) 在d1日期上,增加d2个月份

例:

select add_months(sysdate,6) from dual;

3.months_between(d1,d2) 返回d1和d2之间的相隔月份

例:

select months_between(sysdate,hiredate)/12 from emp;

4.last_day(d) 返回d日期所在月份最后一天的日期

例:

select last_day(hiredate) from emp;

5.next_day(d,X) 返回下一个星期X的日期

例:

select hiredate,next_day(hiredate,'星期一') from emp;

4.转换函数

1.to_char() 将数字、或日期转化为字符串

例:

select to_char(sal,'$9,999.99') from emp;

2.to_date()将字符串转化为日期

例:

select to_date('1999-12-12 12:12:12','YYYY-MM-DD HH24:MI:SS') from dual;

3.to_number() 将字符串转化为数字

例:

select to_number('888') from dual;

5.其他函数

1.nvl(x,y) 如果x为null,则显示为y,x和y的类型保持一致

例:

select ename,nvl(comm,0) from emp;

2.sys_guid() 生成一个的32位随机字符串

例:

select sys_guid() from dual;

3.decode() 条件取值,类同java的switch

例:

select ename,sal, decode(sal,800,'屌丝', 2000,'小资',3000,'白领','一般人') from emp;

4.case when then else end 条件取值,类同java的if-else if-else

例:

select ename,sal, case when sal<1000 then '屌丝'

when sal<2000 then '白领'

when sal<3000 then '小资'

when sal<4000 then '高富帅'

else '一般人' end from emp;

组函数

组函数又被称作聚合函数,用于对多行数据进行操作,并返回一个单一的结果

1.avg()求平均值,只能对数字类型进行处理,不处理空字段

例:求20部门的平均薪水为多少

select avg(sal) from emp where deptno = 20;

2.sum()求和,只能对数字类型进行处理

例:总共薪水

select sum(sal) from emp where deptno = 20;

3.count()计数,对任何类型生效,不处理空字段

例:求20部门有多少人

select count(sal) from emp where deptno = 20;

select count(1) from emp where deptno = 20;

4.max() 求最大值,对任何类型生效

例:求最高薪水

select max(sal) from emp where deptno = 20;

5.min() 求最小值,对任何类型生效

例:最低薪水

select min(sal) from emp where deptno = 20;

创建分组

group by关键字

作用:对查询结果进行分组处理

用法:

1.分组之后,不能将除分组字段之外的字段放在select后面

2.group by 后面可以跟多个字段,则这多个字段值都相同时,才分为一组

3.分组之后,可以使用组函数对每个组进行数据处理

例:用于对查询的数据进行分组并处理

select deptno from emp group by deptno;

having 关键字

作用:用于对分组数据进行过滤

用法:

类似于where的用法

例:

select deptno from emp group by deptno having avg(sal)>2000;

Sql顺序分为两类

1.sql的书写顺序

例:

select from where group by having order by [asc/desc]

2.sql的执行顺序

例:

from where group by having select order by [asc/desc]

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值