Oracle常用对象创建语句

一、创建临时表空间

create temporary tablespace tempspace_name
tempfile 'D:/oracle/product/11.2.0/oradata/test_temp01.dbf'    ##设置表空间文件位置
size 32m                                  ##表空间初始大小
autoextend on                        ##表空间自增长
next 32m maxsize unlimited      ##表空间每次自增大小,上限不限制 

二、创建数据表空间

create tablespace tablespace_name
datafile 'E:/oracle/product/10.2.0/oradata/testserver/test_data01.dbf'  ##设置表空间文件位置
size 32m                                        ##表空间初始大小
autoextend on                                ##表空间自增长
next 32m maxsize  unlimited ;##表空间每次自增大小,上限不限制 

三、创建用户

create user  username  identified by password 

default tablespace tablespacename   

temporary tablespace  temptablespacename;

四、创建表

create table table_name

(

id  varchar2(30) primary key ,       

name char(200)  not null ,

tel     number(11) unique,

birth  date(date),

foreign  key  (name) 

)

tablespace tablespace_name    ##指定表数据存放表空间
pctfree 10 ----保留10%空间给更新该块数据使用
initrans 1 -----初始化事物槽的个数
maxtrans 255 ----最大事务槽的个数
storage ----存储参数
(
initial 64K ---区段一次扩展64k
next 1M
minextents 1 ---最小区段数
maxextents unlimited --最大区段无限制
);

五、创建约束(constraints)

alter table table_name
  add constraint   constraint_name  primary key (ID)     ##id为指定主键约束列
  using index                                                                   ##同时创建索引
  tablespace tablespace_name                                      ##指定表空间名称
   

六、创建索引(index)

create index  index_name  on  table_name(column_name );##指定列创建索引,同时多列,逗号隔开

七、创建视图(view)

create or replace view   view_name    as   select  *  from table_name  ; 

八、创建序列(sequence)

 create sequence sequence_name  
 minvalue 1               ##最小值
maxvalue 9999         ##最大值
start with   10              ##从10开始
increment by 1          ##每次自增1 

cache  10                  ##缓存10个值  数据库不正常down掉会丢失,但高并发的情况下尽量用cache  ,也可nocache 不缓存

九、创建角色(role)


create role role_name;   ##创建角色
grant create session to role_name;##赋予基本创建连接的权限,以及赋予其他权限

十、创建同义词(synonym)

在同一数据库不同用户的情况,B用户需要访问A用户的 表tableC;

grant select on tableC to B;  ##在A用户赋权给B查询tableC的权限

create or replace synonym  tableC for A.tableC ;##创建好同义词,在B用户就可以直接用A.tableC 做表名 查询 A用户的tableC数据了;/2

十一、创建数据库链接(link)

 在不同数据库之间,可创建Link即数据库连接;

在A库用户中执行
create database link link_name
  connect to B identified by "password"
  using 'test=
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = B_ip)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = B_severname)
    )
  )'; 

select * from table_name @linke_name    ##在A库中使用数据库连接查询B库中表数据;

十二、创建存储过程(procedures)

/*****
** 创建加、减、乘、除计算的存储过程
**输入参数: 数字1,数字2,计算类型
**输出参数: 数字3
*****/
create or replace procedure Proc_Test
(
--定义输入、输出参数--
num_A in integer,
num_B in integer,
numType in integer,
num_C out integer
)
as
--定义变量--
 -- numCount integer;
 -- numStr varchar(20);  
begin   
     --判断计算类型--
     if numType=1 then
        num_C := num_A + num_B;
     elsif numType=2 then
        num_C := num_A - num_B;
     elsif numType=3 then
        num_C := num_A * num_B; 
     elsif numType=4 then
        num_C := num_A / num_B; 
     else
     --其它处理
       dbms_output.put_line('其它处理');
     end if;
end;

调用方式:

declare num_C integer;
beginf
   --调用存储过程---
   Proc_Test(3,4,3,num_C);
   dbms_output.put_line('输出结果:'|| num_C );
end;

十三、创建函数(Function)

   create or replace function  function_name (参数名1 参数类型,参数名2 参数类型)  return number  is

   Result number ;

 begin 

          return (Result);

  end;

调用方式:

select  function_name(参数名1,参数名2) from dual;

十四、创建包(package)

用于组合逻辑相关的函数和存储过程

第一步、创建包规范

create package emp_pkg is

procedure emp_update_ename(v_empno varchar2,v_ename varchar2);

function emp_get_sal(v_empno varchar2) return number;

end;

第二步、创建包体

create or replace package body emp_pkg

is

      procedure emp_update_ename (   v_empno varchar2, v_ename varchar2  )  is

                         vename varchar2(32);

                         begin

                          update emp set ename=v_ename where empno=v_empno; commit;

                          select ename into vename from emp where empno=v_empno;

                          dbms_output.put_line('雇员名称:'||vename);

                      end;

    function emp_get_sal ( v_empno varchar2 )

                    return number is

                    vsal number(7,2);

                   begin

                        select sal into vsal from emp where empno=v_empno; return vsal;

                   end;

end;

 

---------------------------------------待补充完善----如有问题请不吝指正------------------------------------

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Symoons

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值