当前位置:  数据库>oracle

Oracle基础 各种语句的定义格式

    来源: 互联网  发布时间:2017-06-21

    本文导语: Oracle内建数据类型 一、 字符数据 1、 char(size) 2、 varchar2(size) 最常用,最大长度4000字节 3、 nvhar(size)、nvarchar(size) 4、 varchar(size) 5、 long  建议使用LOB大型数据 6、 raw 存储二进制,建议使用LOB大型数据 二、 数字 1、 number(p,s) 三...

Oracle内建数据类型
一、 字符数据
1、 char(size)
2、 varchar2(size) 最常用,最大长度4000字节
3、 nvhar(size)、nvarchar(size)
4、 varchar(size)
5、 long  建议使用LOB大型数据
6、 raw 存储二进制,建议使用LOB大型数据

二、 数字
1、 number(p,s)

三、 日期
1、 data
2、 timestamp
3、 timestamp with time zone
4、 timestamp with local time zone
5、 interval year to month
6、 interval day to second
四、 大型对象数据类型
BLOB、CLOB、NCLOB、BFILE 最大长度4G
五、 ANSI、DB2、SQL/DS
六、 用户自定义类型
create type
create type body

SQL语句分类
一、 数据查询语句(DQL)
SELECT
二、 数据操纵语句(DML)
INSERT、UPDATE、DELETE
三、 数据定义语句(DDL)
CREATE、ALTER、DROP
四、 数据控制语句(DCL)
GRANT、REVOKE、COMMIT、ROLLBACK、SAVEPOINT

具体SQL语句
一、 create table
创建表
create table
(
col_name,
col_name,
col_name
)
二、 alter table
修改表
alter table
[add]
[modify]
[drop column]
三、 rename
重命名表
rename old_table_name to new_table_name
四、 truncate table
删除表中存在的信息,只保留表结构,删除数据不可恢复
truncate table
五、 drop table
删除表
六、 drop table
七、 select
选择语句
select
from
[where ]
[group by ]
[having ]                ——组函数只能写having之后
[order by]

1. dual表
2. sysdate系统时间
3. where条件中用到的运算
+-*/
||连接
=、!=、^=、、>、>=、0
end if;
end loop;

13、 for-loop语句
for counter in [reverse] lower_bound..higher_bound loop
sequence_of_statement
        end loop;

如:
        for I in 1..v_count loop
list(i) :=i*I;
end loop;

14、 while-loop语句
while condition loop
sequence_of_statements
end loop;

15、 游标定义
a、cursor cursor_name [(parameter[,parameter]…)]
[return return_type] is select_statement
b、open cursor_name
c、fetch cursor_name into variable[,variable,…]
d、close cursor_name

例:
declare
  cursor c_emp_ename is select ename form emp;
v_ename emp.ename%type;
v_count binary_integer;
begin
select count(rowed)
into v_count
from emp;
open c_emp_ename;
for I in i..v_count loop
fetch c_emp_ename into v_ename;
dbms_output.put_line(vname);
end loop;
close c_emp_ename;
end

16、 cursor for循环及其替代语句
a、 先定义游标,之后用in(cursor_name)的方式使用该循环
cursor cursor_dept is select deptno ,dname from dept order by deptno;
for var in cursor_dept loop
在这里可以使用var来得到游标所指数据
end loop
b、 采用in(查询语句)的方式使用该循环
for var  in(select deptno ,dname from dept order by deptno;) loop
在这里可以使用var来得到游标所指数据
end loop


17、 显示游标属性
%found:if c_emp_ename %fount then … end if;
% notfount:exit when c_emp_ename %notfound;
%isopen:if c_emp_ename % isopen then … end if;
%rowcount:提取次数if c_emp_name %rowcount >10 then … end if

18、 隐式游标(SQL游标)
用来处理insert、update、delete和返回一行的select into语句,对这几个语句进行操作时判断处理结果用的。
不可使用open、fetch和close进行操作。
也包含%fount、%notfount、%isopen(总是false)、%rowcount。

19、 异常处理
a、 异常的抛出方式
pl/sql运行时
raise exception_name
调用raise_application_erroe
b、 exception
when exception_name then
    处理代码;
when exception_name then
    处理代码;
when others then
    处理代码;
c、 自定义异常
declare
  exceptin_name exception;
begin
  statements;
raise
exception
  when then
end;

20、 子程序

1、 存储过程
create [or replace] procedure
()
is|as
[local declaration]
begin
executable statements
[exception handler]
edn [procedure_name]

2、 函数
create [or replace] function
(,……)
return is|as
[local declaration]
begin
executable statements
[exception handler]
end [function_name]

函数和过程都可以通过参数列表接收或返回另个或多个值;函数和过程的主要区别在于他们的调用方式,过程是作为一个独立的执行语句调用的,而调用函数后需将函数的返回值赋值给某一变量。
3、 包
包定义:
create [or replace] package package_name {as|is}
public_variable_declarations|
public_type_declarations|
public_exception_declarations|
public_cursor_declarations|
function_declarations声明|
procedure_specifications声明
end [package_name]
包主体:
create [or replace] package body package_name {as|is}
public_variable_declarations|
public_type_declarations|
public_exception_declarations|
public_cursor_declarations|
function_declarations实现|
procedure_specifications实现
end [package_name]

4、 触发器
create [or replace] trigger trigger_name 触发事件 触发事件
on {table_or_view_name|database}
[referencing [old [as] ][new [as] ]]      //更新时用
[for each row [when condition]]      //加上则为行级触发,否则为语句级触发
trigger_body

触发时间:
before:数据库动作之前触发器执行。
after:数据库动作之后触发器执行
instead of:触发器被触发,但相应的操作并不被执行,而运行的仅是触发器SQL语句本身。用在 使不可被修改的视图能够支持修改。

触发事件:
insert on:向表或视图插入一行时
update of:更新表或视图某一行时
delete on:删除表或视图某一行时
create:创建一个数据库对象时
alter:修改一个数据库对象时
drop:删除一个数据库对象时
start:打开数据库时触发触发器,在事件后触发
shutdown:关闭数据库时触发触发器,在事件前触发
logon:当一个会话建立时触发,事件前触发
logoff:关闭会话时触发,事件前触发
server:服务器错误发生时触发,事件后触发。

  条件谓词:
inserting、updationg、deleting


    
 
 

您可能感兴趣的文章:

  • oracle导出sql语句的结果集和保存执行的sql语句(深入分析)
  • oracle用什么SQL语句判断表存不存在
  • 请问怎么用jsp语句删除oracle中的一条记录?
  • Oracle中SQL语句连接字符串的符号使用介绍
  • Oracle用什么语句查询字段?
  • 怎么在java中向一个sql语句传参数,就像oracle的proc一样啊?
  • 请问在 Linux 下如何用代码实现连接oracle数据库 并 执行 SQL 语句?
  • Oracle 9i轻松取得建表和索引的DDL语句
  • Oracle的SQL语句中如何处理‘&’符号
  • 关于Oracle中的sql语句的疑问,向大家请教。
  • Oracle Sql语句长度限制问题及解决
  • Oracle9i取得建表和索引的DDL语句
  • Oracle 中文字段进行排序的sql语句
  • oracle数据库添加或删除一列的sql语句
  • Oracle中查询本月星期5的所有日期列表的语句
  • Oracle中备份表的简单sql命令语句
  • oracle中误删除表后恢复语句(FLASHBACK)
  • Oracle判断指定列是否全部为数字的sql语句
  • jsp中在oracle中查询日期类型时sql语句该怎么写啊?
  • Oracle 常用的SQL语句
  • oracle异常(预定义异常,自定义异常)应用介绍
  • Oracle将查询的结果放入一张自定义表中并再查询数据
  • Oracle判断指定列是否全部为数字的sql语句 iis7站长之家
  • Oracle返回表类型的自定义函数
  • 深入ORACLE变量的定义与使用的详解
  • Oracle中归档模式的定义简述
  • Oracle定义DES加密解密及MD5加密函数示例
  • Oracle10g 预定义主要角色
  • Oracle定义联合数组及使用技巧
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 用JDBC连接Oracle数据库时,如何向数据库中写日期型数据(格式)?谢了!
  • Oracle如何修改系统默认时间格式
  • oracle 时间格式的调整
  • ORACLE 正则解决初使化数据格式不一致
  • 查看及修改Oracle编码格式方法
  • 查看oracle数据库的编码及修改编码格式的方法
  • oracle中to_date详细用法示例(oracle日期格式转换)
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • Oracle 数据库(oracle Database)性能调优技术详解
  • Linux /$ORACLE_HOME $ORACLE_HOME
  • ORACLE日期相关操作
  • Linux系统下Oracle的启动与Oracle监听的启动
  • ORACLE数据库常用字段数据类型介绍
  • 请问在solaris下安装ORACLE,用root用户和用oracle用户安装有什么区别么?
  • Oracle 12c的九大最新技术特性介绍
  • 网间Oracle的连接,远程连接Oracle服务器??


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3