oracel 数据库使用plsql(创建表,序列,存储过程,触发器) 查询条件为空

本文详细介绍Oracle数据库中表和序列的创建、使用及管理方法,包括如何删除表和序列、创建新表并绑定序列实现自增,以及通过存储过程进行数据插入等高级操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

--删除表
drop table userinfo;

drop table usermes;

--删除序列
drop sequence seq_uid;

drop sequence seq_mid;


--建表
create table userinfo
(
   userid number(10) primary key,
   
   username nvarchar2(20) not null,
   
   userpwd nvarchar2(20) not null,
   
   usertitle nvarchar2(50),
   
   usermes nvarchar2(100)
    
);

create table userMes
(
    umid integer primary key,
    userid number(10) references userinfo(userid),
    umname nvarchar2(20)
);


--建立序列
create sequence seq_uid;

create sequence seq_mid;


--查询表
select * from userinfo;

select * from userMes;

--查询序列
select seq_uid.nextval from dual;

select seq_mid.nextval from dual;


--创建触发器(将序列绑定ID自增)(如果存在就替换)

create or replace trigger userinfotiger

before insert on usermes

for each row
  
begin 
  select seq_mid.nextval into :new.umid from dual;
end;

--添加数据
insert into userinfo values(seq_uid.nextval,'qq','123','qqtitle','this is a qq ,password is 123');
insert into userinfo values(seq_uid.nextval,'ww','456','wwtitle','this is a ww ,password is 456');
insert into userinfo values(seq_uid.nextval,'ee','789','eetitle','this is a ee ,password is 789');
insert into userinfo values(seq_uid.nextval,'aa','147','aatitle','this is a aa ,password is 147');
insert into userinfo values(seq_uid.nextval,'ss','159','sstitle','this is a ss ,password is 159');

--有选择的插入数据
insert into usermes(userid,umname) values(1,'finalshuju');

insert into usermes values(seq_mid.nextval,2,'bbbbb')
insert into usermes values(seq_mid.nextval,2,'bbbbb');
insert into usermes values(seq_mid.nextval,3,'ccccc');
insert into usermes values(seq_mid.nextval,4,'ddddd');

--提交事务
commit;

--分页查询
select * from (select userinfo.*, rownum rn  from (select * from userinfo) userinfo)  where rn between 1 and 3;


--创建一个添加数据的存储过程(如果存在就替换)
create or replace procedure proc_createuserinfo
(
    username in varchar2 default null,
    userpwd  in varchar2 default null,
    usertitle  in varchar2 default null,
    usermes  in varchar2 default null,
    uusermes in varchar2 default null,
    result   out number
)
is
   uuid number:=seq_uid.nextval;

begin 
  insert into userinfo(userid,username,userpwd,usertitle,usermes) values(uuid,username,userpwd,usertitle,usermes);
  insert into usermes(userid,umname) values(uuid,uusermes);
commit;
result:=sqlcode;
end;  

--sqlcode返回为0即为正常执行,在操作数据库时,可以根据这个判断是否操作成功

--调用存储过程
declare
  v_shuchu number;

begin
  proc_createuserinfo('qq','yy','vv','ww','ee',v_shuchu);
  --输出信息,在sql右边的输出中可以看到输出的信息
  dbms_output.put_line(v_shuchu);
end;


--------------------------------
查询条件为空
select * from  表名 where 字段 is null 

















<think>好的,我现在需要帮助用户了解如何在Oracle数据库创建本地库。根据用户提供的参考引用,我需要整理出详细的步骤。首先,我应该确认“本地库”的定义。在Oracle中,通常提到的“数据库”就是本地数据库,用户可能指的是创建一个本地实例。 接下来,查看用户提供的引用内容。引用[2]提到创建数据库需要使用CREATE DATABASE命令,并指定文件的位置,还需要运行catalog.sql和catproc.sql脚本。引用[4]提到了使用Database Configuration Assistant(DBCA)图形化工具,这可能更适合新手。引用[5]的博文也涉及数据库创建和管理,可能包含步骤说明。 我需要结合命令行和图形界面两种方法。用户可能需要详细的步骤,包括准备步骤,比如确保Oracle服务运行,是否有足够的权限等。此外,引用[3]提到了使用sqlplus连接到数据库,这可能是在命令行创建数据库的前提条件。 需要注意的是,创建数据库需要管理员权限,通常使用SYSDBA角色。引用[2]还提到需要配置初始化参数文件(pfile或spfile),这可能是在手动创建时的必要步骤。 还需要考虑是否需要配置监听器,确保数据库可以被访问。不过用户的问题是关于本地库,可能不需要网络配置,但可能需要基本的监听设置。 总结步骤:1. 使用DBCA图形工具创建;2. 手动通过SQL*Plus创建。两种方法都需要详细说明,同时引用相关的参考资料。例如,图形化步骤引用[4]和[5],手动步骤引用[2]和[3]。 可能的问题:用户可能分不清Database和Instance的区别,需要明确说明创建的是数据库实例。另外,确保步骤中的命令正确,比如CREATE DATABASE的正确语法,以及后续脚本的执行顺序。 最后,生成相关问题,帮助用户进一步学习,比如性能调优、数据字典管理等。</think>在Oracle数据库创建本地库(即本地数据库)可通过图形化工具或命令行实现。以下是两种方法的详细步骤: --- ### **一、使用DBCA图形化工具创建(推荐新手)** 1. **启动DBCA工具** 通过开始菜单找到: `开始 > Oracle - OraDb11g_home1 > 配置和移植工具 > Database Configuration Assistant`[^4] 2. **选择操作类型** 选择“创建数据库” > 下一步,选择“一般用途或事务处理”模板。 3. **配置数据库标识** 输入全局数据库名(如`ORCL`)和SID(通常与全局名相同)。 4. **设置管理选项** 默认跳过,直接下一步。 5. **配置存储选项** 选择文件存储类型(建议默认“文件系统”)。 6. **指定数据库文件位置** 选择数据文件、控制文件、重做日志的存储路径(默认使用Oracle基目录)。 7. **设置快速恢复区(可选)** 配置备份和恢复区域,按需分配间。 8. **配置监听器(关键步骤)** 确保监听器已配置(默认监听器`LISTENER`),否则需先通过Net Manager配置[^5]。 9. **设置初始化参数** - 内存分配:调整SGA和PGA大小(如总内存的60%-70%)。 - 字符集:选择`AL32UTF8`以支持多语言。 - 连接模式:默认“专用服务器模式”。 10. **完成创建** 确认配置后执行,等待约10-30分钟完成。完成后会自动启动数据库。 --- ### **二、使用SQL*Plus命令行创建(需DBA权限)** 1. **准备初始化参数文件(pfile/spfile)** 创建`initORCL.ora`文件,内容示例: ```sql db_name=ORCL memory_target=1G control_files=('/u01/app/oracle/oradata/ORCL/control01.ctl') ``` 2. **启动SQL*Plus并连接到闲实例** ```bash sqlplus / as sysdba STARTUP NOMOUNT PFILE='/path/to/initORCL.ora'; ``` 3. **执行CREATE DATABASE命令** ```sql CREATE DATABASE ORCL USER SYS IDENTIFIED BY sys_password USER SYSTEM IDENTIFIED BY system_password LOGFILE GROUP 1 ('/u01/app/oracle/oradata/ORCL/redo01.log') SIZE 100M, GROUP 2 ('/u01/app/oracle/oradata/ORCL/redo02.log') SIZE 100M DATAFILE '/u01/app/oracle/oradata/ORCL/system01.dbf' SIZE 1G EXTENT MANAGEMENT LOCAL; ``` 4. **构建数据字典视图** 执行系统脚本: ```sql @?/rdbms/admin/catalog.sql -- 创建核心数据字典 @?/rdbms/admin/catproc.sql -- 创建PL/SQL支持 @?/sqlplus/admin/pupbld.sql -- 配置SQL*Plus环境 ```[^2] 5. **验证数据库状态** ```sql SELECT name, open_mode FROM v$database; ``` --- ### **关键注意事项** - **权限要求**:需以`SYSDBA`身份操作[^3]。 - **存储规划**:确保磁盘间足够(至少5GB以上)。 - **监听器配置**:通过`lsnrctl status`检查监听是否生效。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值