oracle rownum union,oracle数据库笔记

获奖学员:王梓祺

所获奖项:三等奖

内容:

/*前言:这份资料是结合老师笔记,课堂案例,TTS6.0课件以及个人的理解整理,时间仓促,如有纰漏敬请原谅。*/

Oracle 数据库

语法顺序

select from on where group by having order by

执行顺序

from on where group by having select order by

一、关键字语法介绍

1、from on from后面接的是需要查询的表格

on后面接的是表的连接条件和过滤条件

单表查询直接跟上源表的名字

多表查询跟上的是源表的名字和两表之间的连接种类

2、where where语句实现的是对查询表的结果集的筛选

where语句后面跟的是条件表达式(可以是列名、常量,比较运算符,文字值)

between ..and.. 语句表示一个范围,是两边的闭区间范围

in 运算符是表示范围是一个由离散值组成的集合

like运算符配合通配符进行相关字符性的信息查找

%表示0或多个字符 _表示任意单个字符

is null表示值是空值null的行信息

3、group by 根据group by子句指定的表达式将要处理的数据分组

4、having 根据统计结果添加条件对分组后的组进行过滤

只有符合having条件的组被保留

{where和having的区别}

where过滤的是行,having过滤的是分组

where可以跟任意列名、单行函数,having只能包含group by的表达式和组函数

where执行在前,having执行在后

where和having都不允许用列别名

5、select select语句把需要显示的列的名称或者是表达式进行设定(查询的核心步骤)

通过select语句得到需要的信息进行显示

distinct(去重)跟在select后面,用于对显示的记录进行去重操作

6、order by 用于对select语句的结果集进行排序的语句

后面跟上需要依赖进行排序的列名以及asc(升序,默认)或者desc(降序)

7、insert into… 用于把记录添加到表格当中

insert into tabname(col1,col2/*不写括号默认添加行的所有列,书写可以写进去相应列的记录,其他保持空值*/) values (val1,val2);

8、drop 用于删除表格

drop table tabname cascade constraints purge;

/*cascade constraints用在删除表格前先中断与其他表格的外键约束关系*/

9、alter table 修改表格中的列的信息

alter table tabname modify (colname null);/*not null列改为null列*/

alter table tabname modify (colname default 1 not null);

/* null列改为not null列*/

alter table tabname add(建表时列定义方法);/*添加列*/

alter table tabname drop(colname);/*删除列*/

10、synonym 同义词

create synonym account for tarena.account;

/*设置account与tarena.account一致*/

二、数据类型

1、number类型 number(int a,int b) 表示该数值有a位有效数字,b位小数位

ex: number(6);第二个参数不写默认为0,表示从-999999~999999的整数

umber(4,3);4位有效数字,3位小数位,表示从-9.999~9.999的三位小数数字

umber(3,-3);3位有效数字,-3位小数位,表示(+-)1~(+-)999*103的数字

2、字符类型

a、char类型 按定义的字符长度存

可以不定义长度,缺省为1字节,最大长度2000字节

b、varchar2类型 按字符串的实际长度存

必须定义长度,最大值为4000字节

/*列的取值是定长,定义为char类型;列的取值长度不固定,定义为varchar2类型*/

3、日期函数

缺省日期格式为DD-MON-RR

alter session set nls_date_format = “yyyy-mm-dd hh24:mi:ss”;

/*调整系统date函数缺省格式函数*/

三、比较和逻辑运算符

比较运算符 : = , > , >= , 

SQL比较运算符 : between and , in , like , is null

逻辑运算符 : and , or , not

否定形式 : 比较运算符 : <> , != , ^=

SQL比较运算符 : not between and , not in , not like , is not null

四、函数

1、字符函数

lower 把字符中的字母降为小写

upper 把字符中的字母升为大写

initcap 把字符中的首字符转为大写

concat 拼接函数的内容

substr 求子串的函数

length 字符串的长度

lpad 右对齐函数,位数不够的,左边补指定字符

lpad('a',5,'b') 在a前方补4个b到5位

rpad 左对齐函数,位数不够的,右边补指定字符

trim 去掉字符串两边的空格和制表符

2、数值函数

round(num,x);对传进的num数值进行四舍五入,保留x位小数

trunc(num,x);对传进的num数值进行去尾操作,保留x位小数

3、日期函数

add months(Date date,number a) 一个日期加a各月

months between 两个日期之间相差几个月

ext day 下一天

last day 前一天

4、转换函数

to date(str);把字符串转为时间函数

to char(Date date,String reg);根据reg传入的格式把date转换为字符串

to number(str);把数字的字符串转为number数据类型

5、一般函数

vl(col1,String str);遍历col1列所有元素,有空值的会置换为str字符串

五、SQL语句中的分支

1、 case ...  then... 对where语句进行优先级筛选,从上到下,有一个满足便马上退出case

select  base_duration,base_cost,

case when  base_duration = 20 then unit_cost + 0.05

when  base_duration = 40 then unit_cost + 0.03

else

unit_cost

end

ew_unit_cost from cost;

当base_duration找到符合的值便马上套用值退出

你可能感兴趣的:(oracle,rownum,union)