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

一、登录 sqlplus /nolog


 快捷键:Win+R

JDBC连接Oracle代码案列操作之--Oracle简单数据准备_第1张图片


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


 conn / as sysdba;


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


create user appleyk identified by sa123;

JDBC连接Oracle代码案列操作之--Oracle简单数据准备_第2张图片


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

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

JDBC连接Oracle代码案列操作之--Oracle简单数据准备_第3张图片


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

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

JDBC连接Oracle代码案列操作之--Oracle简单数据准备_第4张图片


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


JDBC连接Oracle代码案列操作之--Oracle简单数据准备_第5张图片


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


JDBC连接Oracle代码案列操作之--Oracle简单数据准备_第6张图片


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


alter user appleykl default tablespace ts_appleyk;



查看上述操作是否奏效

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

JDBC连接Oracle代码案列操作之--Oracle简单数据准备_第7张图片


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

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


conn appleyk/sa123;

JDBC连接Oracle代码案列操作之--Oracle简单数据准备_第8张图片


七、查看用户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%';

JDBC连接Oracle代码案列操作之--Oracle简单数据准备_第9张图片


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


grant CREATE SESSION to appleyk;



conn appleyk/sa123;

JDBC连接Oracle代码案列操作之--Oracle简单数据准备_第10张图片


十、一次性,将本篇剩余要用到的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;

JDBC连接Oracle代码案列操作之--Oracle简单数据准备_第11张图片


十一、为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关联

JDBC连接Oracle代码案列操作之--Oracle简单数据准备_第12张图片


插入:insert

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

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

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

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

JDBC连接Oracle代码案列操作之--Oracle简单数据准备_第13张图片

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

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

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

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

JDBC连接Oracle代码案列操作之--Oracle简单数据准备_第14张图片


打开 pl/sql developer客户端工具


(1)登录

JDBC连接Oracle代码案列操作之--Oracle简单数据准备_第15张图片


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

JDBC连接Oracle代码案列操作之--Oracle简单数据准备_第16张图片

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

JDBC连接Oracle代码案列操作之--Oracle简单数据准备_第17张图片

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

JDBC连接Oracle代码案列操作之--Oracle简单数据准备_第18张图片

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

JDBC连接Oracle代码案列操作之--Oracle简单数据准备_第19张图片


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



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

create sequence seq_appleyk 

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

start with 1             -- 开始序号

maxvalue 999999  -- 最大值

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

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


JDBC连接Oracle代码案列操作之--Oracle简单数据准备_第20张图片


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

select seq_appleyk.nextval from dual;

JDBC连接Oracle代码案列操作之--Oracle简单数据准备_第21张图片


十三、创建表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)
);


JDBC连接Oracle代码案列操作之--Oracle简单数据准备_第22张图片


插入数据:

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

JDBC连接Oracle代码案列操作之--Oracle简单数据准备_第23张图片


JDBC连接Oracle代码案列操作之--Oracle简单数据准备_第24张图片


十四、为表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;
 /


JDBC连接Oracle代码案列操作之--Oracle简单数据准备_第25张图片


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

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


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

JDBC连接Oracle代码案列操作之--Oracle简单数据准备_第26张图片


查询一下表C的数据

JDBC连接Oracle代码案列操作之--Oracle简单数据准备_第27张图片


再插入一条数据

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

JDBC连接Oracle代码案列操作之--Oracle简单数据准备_第28张图片






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






你可能感兴趣的:(Java)