学习sql的小结之一

首先总结一下sql 的编译顺序:

from :从from 开始生成虚拟表(后面的数据都是从这里的表中的数据筛选的所以编译自此始);

where:从where开始就开始对数据进行第一步的筛选;

group by :对筛选出来的数据进行分组;

having:对分好的组进行筛选;

select:对筛选好的数据进行调用;

order by:对调用的数据排序输出。

1、基本select语句可实现四则运算、列的别名的修改、数据的连接输出。

SQL> select sal*2,deptno bumen,empno||'''s name is '||ename xinxi
  2  from emp;
     SAL*2      BUMEN XINXI
---------- ---------- -------------------------------------------------------------
      1600         20 7369's name is SMITH
      3200         30 7499's name is ALLEN
      2500         30 7521's name is WARD
      5950         20 7566's name is JONES
      2500         30 7654's name is MARTIN
      5700         30 7698's name is BLAKE
      4900         10 7782's name is CLARK
      6000         20 7788's name is SCOTT
     10000         10 7839's name is KING
      3000         30 7844's name is TURNER
      2200         20 7876's name is ADAMS
      1900         30 7900's name is JAMES
      6000         20 7902's name is FORD
      2600         10 7934's name is MILLER

14 rows selected.

注意:1、列的别名可以(原名 as 别名)

           2、数据的连接输出,如果要用到字符串要要用添加单引号,要是用's还需在前面加上一个单引号表示转义。

 

2、约束排序数据常用的语句:

where(紧随from其后,将不满足的行过滤掉),where='字符或者日期';

几个常用的比较语句:

between...and...相当于(...<...and...>...)

in(...)相当于(...=...or...=...)

like模糊查询(通配符%表示0或者多个字符,_表示一个字符。'A%‘表示以A开头的数据,’_A%'第二个字符是A的数据,'%A%'含有A的数据,查询含%数据则要加转移字符\)

is null(数据是空值的)

几个逻辑运算:and(都为真)、or(只要有一项为真)、not(反义)

排序:order by...asc(升序)desc(降序)

3、单行函数:

1)、大小写处理函数:

lower(列名||字符串):将字符串转换成小写。

upper(列名||字符串):将字符串转换成大写。

initcap(列名||字符串):将字符串转换成首字母大写。

几个字符处理函数:

concat(s1,s2)   连接函数  

substr(s,m,[n]) 截取函数

length(s) 计算字符数函数

instr(s)查询字符位置函数

lpad(字符,长度,’所用补充字符') 左补充

rpad 右补充

trim( leading’字符‘||trailing’字符‘||’字符‘ from '字符')删除左、右、两头的字符

replace(s,'字符1’,‘字符2’)用字符2将s中的字符1替换掉

数字函数:

round(小数,n)  将小数保留到n位

trunc(小数,n) 将小数截取到n 位

mod(被除数,除数) 的余数

转换函数:to_char、to_number

日期格式元素:

yyyy---数字表示的完整年份

year---用字母拼写的年份

MM---代表月份的两位数值

MONTH---月份的全名

MON---代表月份的三个字母缩写

DY---代表星期几的三个字母缩写

DAY---星期几的全名

DD---用数字表示的月份中的某日

数字格式元素;

9--代表一个数字

0--强制显示零

$--放置一个浮动的美元记号

L--使用浮动的当地货币符号

.---小数点

,---千位指示符

nvl(e1,e2):如果第一个参数e1的值为null,则返回e2的值

nvl2(e1,e2,e3)如果e1为空值为null,则返回e3的值;如果e1不为null,返回e3的值

case和decade实现的(if-then-else)的分支效果

case ...end:一个完整的case语句,必须有end

select 列 case  when条件then 结果 end from table

decade只是将case简化:

select 列decade (列,条件,结果)

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值