创建用户:
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.声明游标:必须使用SELECT…FORUPDATE语句才能进行更新
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:小编整理这些资料也很辛苦,希望大家保存下来以便查看