Oracle sql 宝典

Oraclesql 宝典

创建用户:

CREATEUSER[USERNAME]IDENTIFIEDBY[PASSWORD]

DEFAULTTABLESPACE--为该用户指定默认表空间

分配权限和角色:

GRANT[权限名]ORROLETO[用户名]

撤销权限或角色:

REMOVE[权限名]ORROLEFROM[用户名]

表空间的创建:

1.创建一个简单的表空间

createtablespacetestdatafile'f:\database\oracle\test_data.dbf'size20M

2.指定数据文件的可扩展性

------------autoextendon

3.指定数据文件的增长幅度

-------autoextendOnNext5m

4.指定数据文件的最大尺寸

-------autoextendOnNext5mMaxsize500M

5.查看表空间是否创建成功:

selectfile_name,tablespace_namefromdba_data_filesorderbyfile_name

修改表空间名称:

altertablespace[tablespaceName]renameto[UserName]

说明:表空间重命名并不对数据文件产生影响,需要注意的是,不能对数据的系统表空间进行重命名,例如SYSTEM,SYSAUX等无法进行重命名。

删除表空间:

1.删除表空间中的记录

droptablespace[tablespcename]

2.删除表空间中的记录及其物理文件

droptablespace[tablespcename]includingcontentsanddatafiles

创建表:

CREATETABLE[表名]

(

IDNUMBER(4)NOTNULL,

NAMEVARCHAR2(10)NOTNULL

)

删除表:

DROPTABLE[表名]

创建序列:

CREATESEQUENCE[序列名]

INCREMENTBY[增长量]

STARTWITH[开始数]

NOMAXVALUE--不设置最大值或者使用MAXVALUE设置最大值

NOCYCLE--一直累加不循环

删除序列:

DROPSEQUENCE[序列名]

约束:

主键约束:

1.为表添加主键

altertable约束名addprimarykey(id)

2.为表添加多列主键

altertable约束名addprimarykey(id,name)

3.删除主键

altertable约束名dropprimarykey

4.启用/禁用主键

Altertable约束名disableprimarykey

外键约束:

1.建立约束

altertable[外键表]addconstraint约束名customersforeignkey(外键列)references主键表(被引用的列)

2.级联更新与级联删除

在具有外键的情形下,尝试修改主表中的数据并不一定能够成功。但是有时又的确有这种需求,即修改主表中的主键列的值。当然,子表中的数据也应该同时更新。对于主表中的记录删除亦是如此。但是因为外键约束,造成了两种操作都不能成功进行。这就是级联更新与级联删除问题的提出背景。

级联更新

altertableordersaddconstraint约束名foreignkey(customer_id)referencescustomers(customer_id)deferrableinitiallydeferred

级联删除

altertableordersaddconstraint约束名foreignkey(customer_id)referencescustomers(customer_id)ondeletecascade

唯一性约束:

Createtableonly_test(idnumberprimarykey,namevarchar2(20)unique)

添加唯一性约束:

altertable[表名]

addconstraint约束名unique(列名)

检查约束:

createtableonly_test(idnumberprimarykey,namevarchar2(20),check(id<20));

添加检查约束:

Altertable[表名]

Addconstraint约束名check(约束内容);

默认约束:

createtableonly_test(idnumberprimarykey,namevarchar2(20)default(约束内容));

添加默认约束:

altertablestudent

addconstraintDF_Addressdefault('地址不详')forAddress

游标:

显示游标:

1.声明游标:必须使用SELECTFORUPDATE语句才能进行更新

cursor游标名is查询语句

2.打开游标

Open游标名

3.提取游标(单行)

Fetch游标名into行变量

4.关闭游标

Close游标名

隐士游标:

示例:(以Student表为例)

Foriin(select*fromstudent)loop

--i代码Student表中的一行数据

Endloop;

Oracle中流程控制以及循环

控制结构:

条件控制:

Ifelsifelse

循环控制

Loopwhilefor

If语法:

IfBoolean表达式then

--Sql语句

Elsif其他Boolean表达式then

--sql语句

Else

--sql语句

Endif

Case表达式:

Case条件表达式

When表达式结果1then

When表达式结果2then

......

Else

Endcase;

Loop语法:

Loop

--sql语句

Exitwhen<条件语句>--终止循环条件

Endloop;

While语法:

While<布尔表达式>loop

--sql语句

Endloop;

For循环:

Foriin1..6loop

--同样可以使用exitwhen语句结束循环;

Endloop;

异常处理:

Exception异常类型then

--异常处理语句

WhenOTHERthen--其他异常

--异常处理

自定义异常:

Declare异常名exception

触发异常:

Raise异常名

存储过程:

1.创建存储过程:

Createorpedlaceprocedure

存储过程名

(

--定义输入输出参数

)

Is

--此处可申明普通变量

Begin

--sql语句

End

调用存储过程:

Declare

--接收输出参数变量

Begin

存储过程名(参数)

End

删除存储过程:

Dropprocedure存储过程名;

ps:小编整理这些资料也很辛苦,希望大家保存下来以便查看

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值