ORACLE笔记

发布 2021-05-11 22:27:28 阅读 7004

目录。数据库类型 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...