oracle学习

简介: oracle学习
#将oracle数据 固定到本地
docker cp  lmkoracle123:/u01/app/oracle/oradata C:\Users\Administrator\Desktop\temporacle
# 拖镜像 部署oracle服务 空白服务器
docker run -d --name lmkoracle123 -p 8080:8080 -p 1521:1521  registry.cn-hangzhou.aliyuncs.com/mkmk/ora:12cv2
#还原数据到容器中
docker cp  C:\Users\Administrator\Desktop\temporacle  lmkoracle123:/u01/app/oracle/oradata 

恢复日志

docker logs -f    lmkoracle123

实验1

3oracle 常用工具的操作。

(1)EM/OEM 的基本操作和认识。

网址

http://localhost:8080/em 系统管理界面

帐号 system

密码 oracle


http://localhost:8080/apex/ 数据库操作界面

workspace: INTERNAL

user: ADMIN

password: 0Racle$


(2)Net Manager 工具的使用。

Navicat

连接 loacalhost

端口 1521

sid XE

帐号 system

密码 oracle

(3)SQL

#进入容器

docker exec -it lmkoracle123 /bin/bash

#输入oracle账号密码,进去 sqlplus编程

sqlplus

20191206140612623.png
#创建个人表空间
create tablespace student20153442 datafile '/u01/app/oracle/oradata/xe/student20153442.dbf' size 300m;

删除个人表空间

2.利用 SQL*PLUS 创建一个用户 user_<本人学号>,使用第 1 步创建的表空间,授予该用户 RESOURCE 角色、connect 权限

3在表空间中创建 表
CREATE TABLE EMP
(
Empno  VARCHAR2(30) PRIMARY KEY ,
 Ename   VARCHAR2(30), 
Job   VARCHAR2(30),
 HireDate  VARCHAR2(30),
 Sal   VARCHAR2(30),
Comm  VARCHAR2(30),
 DeptNo VARCHAR2(30)
);
CREATE TABLE Dept
(
DeptNo VARCHAR2(30) PRIMARY KEY , 
 Dname  VARCHAR2(30),
 Loc  VARCHAR2(30)
);
#插入一条数据
INSERT into dept VALUES ('sjztddx','石家庄铁道大学','河北省石家庄北二环')
#创建视图
create  view  view20153442 as select  EMPNO , ENAME , DNAME ,(SAL+COMM) sumsal from EMP JOIN DEPT ON  EMP.DEPTNO=DEPT.DEPTNO 

使用视图

创建序列

create sequence sequence20153442 increment by 2 start with 20153442 MAXVALUE 20160000 cycle nocache;

使用序列
select sequence20153442.nextval from dual;
insert into dept VALUES (sequence20153442.currval,sequence20153442.currval,sequence20153442.currval);
select sequence20153442.nextval from dual;
insert into dept VALUES (sequence20153442.currval,sequence20153442.currval,sequence20153442.currval);
查看序列的使用结果
select * from dept;

(三)存储过程的使用
Proc1 内容
create or replace procedure proc1(t_deptno in emp.deptno%type)
as
  jingli1 emp.ename%type  :='无';
  renshu  int;
  error_nopeople EXCEPTION;
  t_ename emp.ename%type;
  t_job emp.job%type;
  CURSOR  c1 is select ename,job from emp where deptno=t_deptno;
begin
  DBMS_OUTPUT.put_line('输入的部门编号= '||t_deptno) ;
  select ename into jingli1 from emp where job='经理' and deptno=t_deptno;
  DBMS_OUTPUT.put_line('部门的经理是= '||jingli1) ;
  select COUNT(*) into renshu from emp where deptno=t_deptno;
  if renshu=0 then
    --DBMS_OUTPUT.put_line('该部门没有员工');--
    raise error_nopeople;
  end if;
  for each_one in c1 loop
    DBMS_OUTPUT.PUT_LINE('员工名称'||each_one.ename||',员工职位'||each_one.job);
    end loop;
  EXCEPTION
    when error_nopeople then
      DBMS_OUTPUT.put_line('该部门没有员工');
    when NO_DATA_FOUND then
      DBMS_OUTPUT.put_line('该部门没有员工');
end;

Proc2 内容
CREATE OR REPLACE
procedure proc2(t_empno in emp.empno%type)
as
  CURSOR  c1 is select * from emp where empno=t_empno;
begin
  for each_one in c1 loop
    DBMS_OUTPUT.PUT_LINE('员工名称'||each_one.ename||',员工职位'||each_one.job||',员工工资'||each_one.sal||',员工奖金'||each_one.comm);
    end loop;
  EXCEPTION
    when NO_DATA_FOUND then
      DBMS_OUTPUT.put_line('没有这个员工');
end;

(四)PL/SQL 操作的实现
1.求素数
CREATE OR REPLACE procedure zaosushu
as
  flag1 number :=0;
begin
    for i1 in 2..200 loop
      flag1:=0;
        for i2 in 2..15 loop
          if i1>i2 then
            if mod(i1,i2)=0 then
              flag1:=1;
              end if;
            end if;
        end loop;
      if flag1=0 then
        DBMS_OUTPUT.PUT_LINE(i1||'是素数');
      end if;
    end loop;
end;

2.求和
CREATE OR REPLACE procedure qiuhe
as
  sum1 number :=0;
begin
   for i1 in 1..100 loop
      sum1:=sum1+i1;
      end loop;
        DBMS_OUTPUT.PUT_LINE('1到100的和是'||sum1);
end;

实验1 实验2结束。

相关文章
|
2月前
|
Oracle 关系型数据库 网络安全
Oracle 19c 安装教程学习
Oracle 19c 安装教程学习
76 2
|
7月前
|
Oracle 关系型数据库 数据库
Oracle 11gR2学习之三(创建用户及表空间、修改字符集和Oracle开机启动)
Oracle 11gR2学习之三(创建用户及表空间、修改字符集和Oracle开机启动)
|
7月前
|
存储 Oracle 网络协议
Oracle 11gR2学习之二(创建数据库及OEM管理篇)
Oracle 11gR2学习之二(创建数据库及OEM管理篇)
|
7月前
|
Oracle 关系型数据库 数据库
Oracle 11gR2学习之一(安装篇)
Oracle 11gR2学习之一(安装篇)
|
7月前
|
Oracle 关系型数据库 数据库连接
【Oracle学习】—新建数据库连接,超详细
【Oracle学习】—新建数据库连接,超详细
|
7月前
|
Oracle 关系型数据库 数据库
【Oracle学习】—Oracle11g修改用户名与密码(一)
【Oracle学习】—Oracle11g修改用户名与密码(一)
|
Oracle 关系型数据库 数据库
查询listener的日志排除不能登录的错误使用Oracle官方提供的ova文件建立Oracle 19c学习环境
Oracle官方提供了安装好的Oracle 19c虚拟机,打包成ova文件。可以使用这个文件建立一个oracle 19c的学习环境。
175 0
|
Oracle 关系型数据库 数据库
【无标题】使用Oracle官方提供的ova文件建立Oracle 19c学习环境
Oracle官方提供了安装好的Oracle 19c虚拟机,打包成ova文件。可以使用这个文件建立一个oracle 19c的学习环境。
288 0
|
SQL Oracle 关系型数据库
【Oracle学习】—新建数据库连接,超详细
按键盘上的windows键,搜索Database Configuration Assistant,单击运行即可
【Oracle学习】—新建数据库连接,超详细