目录。数据库类型 1
oracle支持的操作符 2
操作符的优先级 2
sql函数 2
pl/sql 5
游标 10过程 13
函数 15程序包 16
触发器 18
视图 22序列 22
内置程序包 22
数据库 23
dba-database
scott-数据库所虚构的用户。
oracle服务器由数据库和实例组成。
交互工具:sql*plus、isql*plus、pl/sql
数据定义语言ddl (create/alter/drop)
数据操纵语言dml (select/insert/update/delete)
事务控制语言tcl (commit/s**epoint/rollback)
数据控制语言dcl (grant/revoke)
字符、数值、日期时间、raw/raw long、lob
1. 字符型:char(1~节)、vachar2(1~节)、long(不超过2g)
2. 数值型:整数、浮点数、实数;最高精确到38位;声明方法:number[(p[,s])]p表示精度,s表示小数点位数。
3. 日期:年、月、日、小时、分钟、秒。
时间类型:date-存储日期和时间部分,精确到秒;timestamp-存储日期时间时区,秒值精确到小数点后六位。
4. raw用于存储二进制数据。
5. lob存储多达4g的分结构化信息,如声音及**文件;允许对数据高效、随机、分段的访问;clob(文本)存储字符串,blob(二进制)存储二进制, bfile操作心痛文件中,真正内容并非存在数据库中,只是相关信息存在数据库中。
常用类型为clob,blob,最常用clob
伪列就像一个表列,但并没有存储在数据库中,常用rowid(实际存在表中),rownum(查询时生成的)。它可以从表中查询,但不能插入、更新、删除。
事务控制语言:
commit提交并结束事务处理。
rollback撤销事务中已完成的工作。
s**epoint标记事务中可以回滚的点。
数据控制语言:
grant授予权限。
revoke撤销已授予的权限。
grant select,update on master to martin
授予martin权限。
grant update(hand,leverl) on ite to mae
1. 算数操作符。
2. 比较操作符: =between..and,in,like,is null
3. 逻辑操作符: and or not
4. 集合操作符: union(结果合起来) ,union all(所有包括重复并起来),intersect(交集,取公共部分),minus(差集,一个集合剪掉另一个集合中有的)
5. 连接操作符:将多个字符串合并成一个字符串。
select(venname||’的地址是’||address)
select ‘hello’||world!’|123456 from dual(伪表,语法上需要一个表)
确实有select语句,但实际不存在此表。
1. 算数操作符(最高)
2. 连接操作符。
3. 比较操作符。
4. not逻辑操作符。
5. and逻辑操作符。
6. or逻辑操作符(最低)
带有一个或多个参数并返回一个值。
1. 单行函数:对于表中查询的每一行只返回一个值,可以出现在select和where语句中。
1) 日期函数:add_months;next_day;tranc; months_between; last_day; extract;months_between (sysdate,hire_date) ;round;char ascii;decode;length;lpad ;rpad
last_day(hire_date)-某个日期所在的最后一天;
select trunc(months_between(sysdate,to_date('2014-4-1',yyyy-mm-dd'))from dual
注:4月到七月相差3月,trunc为取整。
extract-从中获取部分值:
select extract(year from sysdate) |extract(month from sysdate) |extract(day from sysdate) from dual
2) 字符函数:intcap(char)首字母大写;lower(char)小写;upper(char)大写;ltrim(char,set)把左边字符去掉 ;rtrim(char,set)右边字符去掉; translate(char,from,to)替换; replace()替换 ;instr();substr(char,m,n) 获取从m字符开始的n个字符;contact(exrp1,expr2)
select lower('hello') from dual
select upper('hello') from dual
select substr('hello',2,3) from dual
获得某个字符的asc码:
select ascii('c') from dual
将x补在左边:
select lpad('asdfa',12,'x') from dual
3) 数字函数:abs(n)绝对值;cell(n)比他大的最小的整数;cos(n) 余弦函数;cosh(n) 余弦函数;floor(n)有小数去掉小数取整数;power(m,n)幂函数;mod(m,n)求余数;round(m,n)四舍五入,n表示精确到n位;trunk(m,n)直接去掉取整;sqrt(n)开根号;sign(n)负数取-1,正数取1
4) 转换函数:从一种数据类型到另一种数据类型。
常用:to-char,to-date,to_number
获取当前时间:
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual
转换成某个形式字符串:
select to_char(12332.089,'99999.999999') from dual
5) 其他函数:nvl,nvl2,nullif
2. 分组函数。
1) **g、min、max、sum
2) count
select count(user_name) from t_user
select count(distinct user_name) from t_user
3) group by,用于将信息划分为更小的组,每一组行返回针对改组的单个结果。
select user_group,count(*)from t_user group by user_group
4) h**ing,用于指定group by子句检索行的条件。
select user_group,count(*)from t_user group by user_group h**ing user_group='group1'
3. 分析函数。
1) row-number返回连续的排位,不论值是否相等 1,2,3,4
select user_name,user_score,row_number() over (order by user_score desc) as user_score from t_user
2) rank具有相等值的行排位相同,序数随后跳跃 1,2,2,4
select user_name,user_score,rank() over (order by user_score desc) as user_score from t_user
3) dense_rank具有相等值的行排位相同,序号是连续的 1,2,2,3
1. pl/sql的优点。
1) 与sql紧密集成,简化数据处理。
支持所有sql类型。
2) 安全性,可以通过存储过程限制用户对数据的访问。
3) pl/sql引擎驻留在oracle服务器中,并对其进行编译执行。
2. pl/sql块简介。
1) pl/sql构成pl/sql程序的基本单元。
2) 将逻辑上相关的生命和语句结合在一起。
3) pl/sql分为三个部分,声明部分、可执行部分(不能省略)、异常处理部分。
在test windows中:
declare i number :=1;
begin i :=i+1;
dbms_end;
declare
v_book_title varchar2(200);
或v_book_title
beginselect into v_book_title from books b where
dbms_end;
declare (声明部分)
v_book_title
begin(可执行部分)
select into v_book_title from books b where
dbms_exception(异常处理部分)
when others then
dbms_'出错了!')
oracle笔记
1 查看表的结构 desc tabledescription 2 set timing on 打开操作表的时间记录。3 消除重复行 distinct 4 大小写不区分的是列名,而不是里面的数据。1 可以对某一列直接进行加减乘除。两列相加。2 如果有一列为null,所得结果也为空。使用nvl函数处理n...
Oracle笔记
第1页1.oracle 的使用 1.1.sqlplus 的命令 初始化表的位置 set nls lang american 设置编码才可以使用下面脚本 cd oracle home rdbms cd demo 我们目前使用的是oralce 9i 9201 版本 select from v versi...
oracle笔记
clear 清屏。col title for a20 设置title的字符最多有20个。oracle介绍。rdbsrdb 基本的存储结构是,二维表。表头。行。列。字段。sql的分类 dsl 关键字 select dml 操作 insert delete update ddl 定义 create dr...