1.sql 支持以下类别的命令
数据库定义语言(DDL)(create,alter,truncate,drop)
数据库操作语言(DML)(insert,select,delete,update)
事务控制语言 (TCL)(commit,savepoint,rollback)
事务是最小的工作单元,做为一个整体进行工作
保证事务的整体成功或失败,称为事务控制
用于事务控制的语句有(commit,rollback,savepoint)
数据控制语言 (DCL)(grant,revoke)
2.数据类型
字符
数值
日期时间
RAW/LONG RAW
LOB
3.字符数据类型包括(char,varchar2,long)
当需要固定长度的字符串是,使用char,char可以存储字母数字值,char数据类型的列长度是1到2000个字节
varchar2支持可变长的字符串,可以存储字母数字值,大小在1到4000个字节范围内
long数据类型存储可变长度字符数据最多能存储 2GB
4.数值数据类型
可以存储整数,浮点数和实数
最高精度为38
申明语法为number[(p[,s])],p表示精度,上表示小数点的位数
5.日期时间数据类型包括年、月、日、小时、分钟、秒
date-存储日期和时间部分,精确到整个的秒
timestamp 存储日期、时间和时区信息,秒值精确到小数点后6位
6.RAW 和 LONG RAW
RAW数据类型用于存储二进制数据,最多能存储2000字节
LONG RAW 用于存储可变长的二进制数据,最多能存储2GB
7.lob称为大对象数据类型,可以存储多达4gb的非结构化信息,它允许对数据进行高效、随即、分段的访问,他包括(clob,blob,bfile)
clob即character lob,能够存储大量字符数据
blob即binary lob,可以存储较大的二进制对象,如图形,视频
bfile即binary file,它用于将二进制数据存储在数据库外部的操作系统文件中
8.oracle中的伪列就像一个表列,但是他并没有存储在表中,伪列可以从表中查询,但不能插入,更新和删除它们的值
常用的伪列有 rowid和rownum
rowid是表中行的存储地址,该地址可以唯一的标示数据库中的一行,可以使用rowid伪列快速的定位表中的一行
rownum 是查询返回的结果集中行的序号,可以使用它来限制查询返回的行数
9.sql操作符包括(算术操作符,比较操作符,逻辑操作符,集合操作符,连接操作符)
算术操作符(+、-、*、/)
比较操作符(=、!=、<、>、<=、>=、between…and、in、like、is null等)
逻辑操作符(and、or、not)
集合操作符(union、union all、intersect、minus)
集合操作符将两个查询结果组合成一个结果
intersect操作符返回两个查询的公共行即交集
select orderno from order_master
intersect
elect orderno from order_detail
minus操作符返回葱第一个查询中排除第二个查询中出现的行
select orderno from order_master
minus
elect orderno from order_detail
连接操作符(||)
sql操作符的优先级是(算术操作符>连接操作符>比较操作符>not 逻辑操作符>and 逻辑操作符>or 逻辑操作符)
10.sql函数 (单行函数,分组函数,分析函数)
单行函数对于从表中查询的每一行值返回一个值
可是使用在select和where子句中
单行函数大致分为(日期函数,数字函数,字符函数,转换函数,其他函数)
日期函数对日期值进行运算,并生成日期数据类型或数值类型的结果
日期函数包括(add_months,months_between,last_day,round,next_day,trunc,extract)
字符函数接受字符输入并返回字符或数值
函数
|
输入
|
输出
|
Initcap(char)
|
Select initcap(‘hello’) from dual;
|
Hello
|
Lower(char)
|
Select lower(‘FUN’) from dual;
|
fun
|
Upper(char)
|
Select upper(‘sun’) from dual;
|
SUN
|
Ltrim(char,set)
|
Select ltrim( ‘xyzadams’,’xyz’) from
dual;
|
adams
|
Rtrim(char,set)
|
Select rtrim(‘xyzadams’,’ams’) from
dual;
|
xyzad
|
Translate(char, from, to)
|
Select translate(‘jack’,’j’ ,’b’) from dual;
|
back
|
Replace(char,
searchstring,[rep string])
|
Select replace(‘jack and jue’ ,’j’,’bl’)
from dual;
|
black and blue
|
Instr (char, m, n)
|
Select instr (‘worldwide’,’d’) from dual;
|
5
|
Substr (char, m, n)
|
Select substr(‘abcdefg’,3,2) from dual;
|
cd
|
Concat (expr1, expr2)
|
Select concat (‘Hello’,’ world’) from
dual;
|
Hello world
|
函数
|
输入
|
输出
|
Abs
(n)
|
Select abs(-15) from dual;
|
15
|
Ceil(n)
|
Select ceil(44.778) from dual;
|
45
|
Cos(n)
|
Select cos(180) from dual;
|
-.5984601
|
Cosh(n)
|
Select cosh(0) from dual;
|
1
|
Floor(n)
|
Select floor(100.2) from dual;
|
100
|
Power(m,n)
|
Select power(4,2) from dual;
|
16
|
Mod(m,n)
|
Select mod(10,3) from dual;
|
1
|
Round(m,n)
|
Select round(100.256,2) from dual;
|
100.26
|
Trunc(m,n)
|
Select trunc(100.256,2) from dual;
|
100.25
|
Sqrt(n)
|
Select sqrt(4) from dual;
|
2
|
Sign(n)
|
Select sign(-30) from dual;
|
-1
|
转化函数(to_char,to_date,to_number)
其他函数(nvl,nvl2,nullif 转化控制的函数)
分组函数(avg,min,max,sum,count)
分析函数(row_number,rank,dense_rank),根据一组行来计算聚合值,用于计算完成聚集的累积排名,移动平均数等,为每组记录返回多个行
row_number 返回连续的排位,不论值是否相等
rank 具有相等值的行排位相同,序数随后跳跃
dense_rank 具有相等值的行排位相同,序号是连续的
11.group by 和having 子句
group by 子句用于将信息划分为更小的一组,每一行返回针对该组的当个结果
having子句 用于指定group by子句检索行的条件