Oracle sql 宝典

  Oracle sql  宝典

 

创建用户:

CREATE USER [USERNAME] IDENTIFIED BY [PASSWORD] 

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

分配权限和角色:

GRANT [权限名] OR ROLE TO [用户名]

撤销权限或角色:

REMOVE [权限名] OR ROLE FROM [用户名]

 

表空间的创建:

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

create tablespace test datafile 'f:\database\oracle\test_data.dbf' size 20M 

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

------------ autoextend on

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

-------autoextend On Next 5m 

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

-------autoextend On Next 5m Maxsize 500M

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

select file_name, tablespace_name from dba_data_files order by file_name

 

修改表空间名称:

alter tablespace [tablespaceName]rename to [UserName]

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

 

删除表空间:

1.删除表空间中的记录

drop tablespace [tablespcename]

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

drop tablespace [tablespcename] including contents and datafiles

 

创建表:

CREATE TABLE [表名]

(

ID NUMBER(4) NOT NULL,

NAME VARCHAR2(10) NOT NULL

)

删除表:

DROP TABLE [表名]

 

 

 

创建序列:

CREATE SEQUENCE [序列名]

INCREMENT BY [增长量]

START WITH [开始数]

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

NOCYCLE --一直累加不循环

 

删除序列:

DROP SEQUENCE [序列名]

 

约束:

主键约束:

1.为表添加主键

alter table 约束名 add primary key (id)

2.为表添加多列主键

alter table 约束名 add primary key (id, name)

3.删除主键

alter table 约束名 drop primary key

4.启用/禁用主键

Alter table 约束名 disable primary key

 

外键约束:

1.建立约束

alter table [外键表] add constraint 约束名 customers foreign key (外键列) references 主键表(被引用的列

2.级联更新与级联删除

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

级联更新

alter table orders add constraint 约束名 foreign key (customer_id) references customers (customer_id) deferrable initially deferred 

级联删除

alter table orders add constraint 约束名 foreign key (customer_id) references customers (customer_id) on delete cascade 

 

唯一性约束:

Create table only_test(id number primary key, name varchar2(20) unique)

添加唯一性约束:

alter table [表名]

add constraint 约束名 unique(列名)

检查约束:

create table only_test (id number primary key, name varchar2(20), check (id<20));

添加检查约束:

Alter table [表名]

Add constraint 约束名 check(约束内容);

 

默认约束:

create table only_test (id number primary key, name varchar2(20) default (约束内容));

添加默认约束:

alter table student

add constraint DF_Address default('地址不详') for Address

 

 

游标:

显示游标:

1.声明游标:必须使用 SELECT … FOR UPDATE语句 才能进行更新

 cursor 游标名is 查询语句

2.打开游标

 Open 游标名

3.提取游标(单行)

 Fetch 游标名 into 行变量

4.关闭游标

Close 游标名

 

隐士游标:

示例:(以Student表为例)

For i in (select * from student) loop

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

End loop;

 

Oracle中流程控制以及循环

控制结构:

条件控制:

If  elsif else

循环控制

Loop while for

 

If语法:

If  Boolean表达式 then

--Sql语句

Elsif 其他Boolean表达式 then

--sql语句

Else 

--sql语句

End if

 

Case表达式:

Case 条件表达式

When 表达式结果1 then

When 表达式结果2 then

......

Else 

 

End case;

 

Loop语法:

Loop 

--sql语句

Exit when <条件语句> --终止循环条件

 

End loop;

 

While语法:

While <布尔表达式> loop

--sql语句

End loop;

 

For循环:

For i in 1..6 loop

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

End loop;

 

异常处理:

Exception 异常类型 then

--异常处理语句

When OTHER then --其他异常

--异常处理

 

自定义异常:

Declare 异常名 exception

触发异常:

Raise 异常名

 

 

存储过程:

1.创建存储过程:

Create or pedlace procedure

存储过程名

(

--定义输入输出参数

)

Is

--此处可申明普通变量

Begin

--sql语句

End

调用存储过程:

Declare 

--接收输出参数变量

Begin

存储过程名(参数)

End

 

删除存储过程:

Drop procedure 存储过程名;

 

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

你可能感兴趣的:(Oracle,sql)