获奖学员:王梓祺
所获奖项:三等奖
内容:
/*前言:这份资料是结合老师笔记,课堂案例,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找到符合的值便马上套用值退出