Fork me on GitHub

浅析Oracle PL/SQL 学习--未完待续

这是一篇关于Oracle Pl/SQL数据库编程的课程学习分享...

首先说明几点:

  • 学习这门课程之前,已经学过并且掌握一些基础的SQL语句、数据库结构分析、ER图设计等知识;
  • 这里也只是较为大概地将我自己的在学习过程中遇到的一些问题以及我可以提供的一些学习资源和大家分享。
  • 如有错误,欢迎指正!


安利给大家两本参考书

《Oracle PL/SQL攻略》人民邮电出版社出版作者:美 Josh Juneau

《Oracle PL/SQL DBA 编程入门》清华大学出版社作者:林树泽


因为上个学期接触过SQL语句这些较为基础的知识,虚拟机上也安装了所需要的程序软件(Oracle 11g、Toad for oracle),安装软件这一部分就不再多说了!具体在网上也可以看到很多教程步骤(建议大家不要直接安装在主机上)。

[后来补充]

我在学习的时候,需要做的第一个实验就是关于在Linux环境下搭建Oracle 11g服务端以及在主机端安装Oracle客户端远程控制访问服务端。这与我之前在虚拟机上(基于Windows下)部署Oracle(包括客户端与服务端)还是有一定的区别的。Linux环境下进行这些搭建配置相对要繁琐一些(需要一篇正确的教程指导)。但掌握这样的安装操作也有很好的益处,Linux环境下虚拟机上安装,便于之后的管理(不需要时卸载方便);同时,对于以后我们的工作学习,倘若接触到这类时,这也是不可避免的操作。

具体安装教程也可以参照我的这篇文章[TODO:Oracle实验之基于Oracle Linux环境下(虚拟机)部署Oracle 11g并在主机远程访问]


课件/PPT

         [百度云]链接:http://pan.baidu.com/s/1hsL4Epu 密码:icdb


Q1 : HR 样例用户的建立

           ------HR模型(human resources人力资源)

Table Human Resources (HR) Schema Scripts

HR Table Descriptions

	Table COUNTRIES 
 	Name                                      Null?    Type
 	----------------------------------------- -------- ----------------------------
 	COUNTRY_ID                                NOT NULL CHAR(2)
 	COUNTRY_NAME                                       VARCHAR2(40)
 	REGION_ID                                          NUMBER

	Table DEPARTMENTS
 	Name                                      Null?    Type
 	----------------------------------------- -------- ----------------------------
	 DEPARTMENT_ID                             NOT NULL NUMBER(4)
	 DEPARTMENT_NAME                           NOT NULL VARCHAR2(30)
 	MANAGER_ID                                         NUMBER(6)
 	LOCATION_ID                                        NUMBER(4)

	Table EMPLOYEES
 	Name                                      Null?    Type
 	----------------------------------------- -------- ----------------------------
	 EMPLOYEE_ID                               NOT NULL NUMBER(6)
 	FIRST_NAME                                         VARCHAR2(20)
	 LAST_NAME                                 NOT NULL VARCHAR2(25)
 	EMAIL                                     NOT NULL VARCHAR2(25)
	PHONE_NUMBER                                       VARCHAR2(20)
 	HIRE_DATE                                          NOT NULL DATE
 	JOB_ID                                             NOT NULL VARCHAR2(10)
 	SALARY                                             NUMBER(8,2)
 	COMMISSION_PCT                                     NUMBER(2,2)
 	MANAGER_ID                                         NUMBER(6)
 	DEPARTMENT_ID                                      NUMBER(4)

	Table JOBS
	 Name                                      Null?    Type
 	----------------------------------------- -------- ----------------------------
 	JOB_ID                                    NOT NULL VARCHAR2(10)
 	JOB_TITLE                                 NOT NULL VARCHAR2(35)
 	MIN_SALARY                                         NUMBER(6)
 	MAX_SALARY                                         NUMBER(6)

	Table JOB_HISTORY
 	Name                                      Null?    Type
 	----------------------------------------- -------- ----------------------------
 	EMPLOYEE_ID                               NOT NULL NUMBER(6)
 	START_DATE                                NOT NULL DATE
 	END_DATE                                  NOT NULL DATE
 	JOB_ID                                    NOT NULL VARCHAR2(10)
 	DEPARTMENT_ID                                      NUMBER(4)

	Table LOCATIONS
 	Name                                      Null?    Type
 	----------------------------------------- -------- ----------------------------
 	LOCATION_ID                               NOT NULL NUMBER(4)
 	STREET_ADDRESS                                     VARCHAR2(40)
 	POSTAL_CODE                                        VARCHAR2(12)
 	CITY                                      NOT NULL VARCHAR2(30)
 	STATE_PROVINCE                                     VARCHAR2(25)
 	COUNTRY_ID                                         CHAR(2)

	Table REGIONS
 	Name                                      Null?    Type
 	----------------------------------------- -------- ----------------------------
 	REGION_ID                                 NOT NULL NUMBER
 	REGION_NAME                                        VARCHAR2(25)

方法步骤:

  • 然后在 SQL*PLUS 上执行 hr_main.sq 这个文件。

a)  SQL>@?/demo/schema/human_resources/hr_main.sql

b)  Specify password for HR as parameter 1:

c)  Enter value for 1:hr

d)  Specify default tablespeace for HR as parameter 2:

e)  Enter value for 2:users

f)  Specify temporary tablespace for HR as parameter 3:

g)  Enter value for 3:temp

h)  Specify password for SYS as parameter 4:

i)  Enter value for 4:runner 

j)  Specify log path as parameter 5:

k)  Enter value for 5:D:\app\Jave\product\11.2.0\dbhome_1\RDBMS\log(不同用户log文件夹在不同位置

最终,脚本运行后的结果界面如下图

  • 然后可以通过此命令来查看 HR 用户是否已经建立成功。
select table_name from user_tables;

  • 至此,HR数据库架构都建立完毕(且数据表中都有一些原始数据),接下来就可以进行一系列基于此数据库模式的操作!
 

再论SQL    +  真正进入PL/SQL


注意:这两个地方的内容,因为本人学习这门课程时间跨度较大,没能整理在一起,很遗憾。


详见我的另一篇文章:Oracle PL/SQL DBA 编程实践基础






【附:一文一图】


posted @ 2017-09-10 12:51  zhouie  阅读(188)  评论(0编辑  收藏  举报