JDBC连接Oracle代码案列操作之--Oracle简单数据准备

来源:互联网 发布:易语言手机轰炸机源码 编辑:程序博客网 时间:2024/05/20 22:26

一、登录 sqlplus /nolog


 快捷键:Win+R


二、以系统sysdba身份进行oracle session连接登录


 conn / as sysdba;


三、创建用户:appleyk,指定密码:sa123,暂未给其指定表空间,默认所属表空间DEFAULT_TABLESPACE:USERS


create user appleyk identified by sa123;



查看添加的用户APPLEYK所在的表空间

select username,default_tablespace from dba_users where username = 'APPLEYK';



查看默认表空间USERS的datafile文件完整路径

select tablespace_name,file_name from dba_data_files where tablespace_name = 'USERS';



四、创建表空间,指定datafile路径和数据文件xx.DBF的size




我们切换到系统对应目录下面,看一下,appleyk.dbf数据文件是否被创建




五、为用户appleyk指定表空间(修改默认表空间名指向),别忘了表空间名叫:ts_appleyk


alter user appleykl default tablespace ts_appleyk;



查看上述操作是否奏效

select username,default_tablespace from dba_users where username = 'APPLEYK';



六、假装不知道用户appleyk有哪些privilege(特权),尝试连接oracel session

说明:另外在开一个sqlplus /nolog,区别sysdba,省得一会给appleyk赋权限的时候,一个窗口来回切换用户。


conn appleyk/sa123;



七、查看用户appleyk的privilege(权限)有哪些(在sysdba下查)


select grantee,privilege from dba_sys_privs where grantee  = 'APPLEYK';(grantee:被赋予权限的用户)



八、查看和SESSION相关的权限有哪些(仍然在系统表 dba_sys_privs里查)


select distinct privilege from dba_sys_privis where privilege like '%SESSION%';



九、给用户appleyk授予CREATE SESSION 权限,并再次以appleyk用户身份连接Oracle session


grant CREATE SESSION to appleyk;



conn appleyk/sa123;



十、一次性,将本篇剩余要用到的privilege(权限)给用户appleyk


创建表table权限           :CREATE TABLE

表空间tablespace权限  :UNLIMITED TABLESPACE(无限制 表空间)

创建序号sequence权限:CREATE SEQUENCE --->按照指定的增量递增的一个序号,每次取都会自动增加

创建触发器trigger权限  :CREAET TRIGGER    --->结合sequence,实现table插入数据的时候,主键ID自增长


(以上这些,均可以在系统权限表dba_sys_privis里面查到相关内容信息)


grant CREATE TABLE,UNLIMITED TABLESPACE,GREATE SEQUENCE,CREATE TRIGGER to appleyk;



十一、为appleyk用户创建两个表A和B,并插入基本数据


创建:create

create table A(id integer,name nvarchar2(10));

create table B(id integer,a_id integer,name nvarchar2(20));   --->字段a_id 和表A的id关联



插入:insert

insert into A values(1,'appleyk');

insert into A values(2,'张三');

insert into A values(3,'李四');

insert into A values(4,'王五');


按照上述方法,插入余下数据

insert into B values(1,1,'Java'); 

insert into B values(2,2,'C++');

insert into B values(3,4,'Delphi');



打开 pl/sql developer客户端工具


(1)登录



(2)实现表A和表B的左连接  left join


(3)实现表A和表B的右连接 right join


(4)实现表A和表B的内连接inner join


(5)实现表A和表B的全连接 full join



表A和表B就是为了配合基本数据的演示的,本篇不作重点!



十二、为用户appleyk创建一个序列sequence

create sequence seq_appleyk 

increment by 1       --每一次的增量(步长)

start with 1             -- 开始序号

maxvalue 999999  -- 最大值

cycle nocache        -- 循环 和 是否启用缓存

order                      --保证序号按照请求的顺序生成




验证序列,取出三个序号试一试

select seq_appleyk.nextval from dual;



十三、创建表C,并插入一条数据


create table C(
id number(6) not null primary key,
name nvarchar2(10) not null,
sex char(1) not null,
age integer not null,
email varchar2(20)
);




插入数据:

insert into C values(1,'appleyk','M',26,'appleyk.com@mail');





十四、为表C创建触发器,基于insert操作,结合sequence实现表C数据插入时主键id的自动增长

注意:相比MSSQL(identity(1,1)) 和 MYSQL(auto_increment),Oracle没有自动增长列一说


 create or replace trigger tri_appleyk_C
 before insert on C
 for each row
 begin
 select seq_appleyk.nextval into:new.id from dual;
 end;
 /




再次向表C插入一条数据,这次不带id,走一次

(注意:序号我们当前已经取到了3,再取就是4,因此再插入一条数据,id应该是4,往后依次自增长


insert into C(name,sex,age,email) values('科比','M',38,'kobe.com@mail');



查询一下表C的数据



再插入一条数据

insert into C(name,sex,age,email) values('志玲','F',45,'zhilng.com@mail');







转下一篇,实战操作  ---->Oracle存储过程数据集返回的定义和调用以及Java客户端的JDBC存储过程的调用






原创粉丝点击