Oracle的PL/SQL编程前奏之基础技能实战二

前言:本文主要讲述使用DDL定义表结构,定义主键,添加外键;以及oracle最小运行代码块实现需求;

一>

使用DDL数据定义语言创建员工表,部门表。

员工表中要有工号,中文姓名,英文姓名,别名,年龄,入职日期,部门编号。

部门表中要有部门编号,部门名称,部门经理,部门描述,工号。

张三是理财部的经理,他不属于任何部门;李四是财务部职员;

答案:

-----创建员工表create table 员工表(---定义员工表列工号 INT NOT NULL,中文姓名 VARCHAR2(20) NOT NULL,英文姓名 VARCHAR2(20) NULL,别名 VARCHAR2(20) NULL,年龄 INT DEFAULT 18,入职日期 DATE NULL,部门编号 INT NULL,----定义员工表主键CONSTRAINT PK_员工表 PRIMARY KEY(工号));-----创建部门表SQL> create table 部门表(  2  ----定义部门表列  3  部门编号 INT NOT NULL,  4  部门名称 VARCHAR(50) NULL,  5  部门经理 INT NOT NULL,  6  部门描述 VARCHAR(200) NULL,  7  工号 INT NOT NULL,  8  ----定义部门表主键  9  CONSTRAINT PK_部门表 PRIMARY KEY(部门编号) 10  ) 11  /Table created------为员工表添加外键引用ALTER TABLE 员工表 ADD(CONSTRAINT FK_部门编号 FOREIGN KEY (部门编号) REFERENCES 部门表(部门编号));------为部门表添加外键引用ALTER TABLE 部门表 ADD(CONSTRAINT FK_部门经理 FOREIGN KEY (部门经理) REFERENCES 员工表(工号));INSERT INTO 员工表 VALUES(100,'张三','San Zhang','老三',20,date'2011-01-01',null);INSERT INTO 员工表 VALUES(101,'张四','Li si','老四',20,date'2011-01-01',100);INSERT INTO 部门表 VALUES(100,'财务部',100,'理财部',0);----让张三属于财务部UPDATE 员工表 SET 部门编号=100 WHERE 工号=100;

总结: 

1>java定义数据:int i=5;   shell中定义数据: CMD="ping -W 2 -c 2"     PL/SQL中定义数据: v_EmpNo int:=102;

2>PL/SQL中使用单引号。

3>定义主键:CONSTRAINT PK_员工表 PRIMARY KEY(工号)

4>添加外键引用:ALTER TABLE 员工表 ADD(CONSTRAINT FK_部门编号 FOREIGN KEY (部门编号) REFERENCES 部门表(部门编号));

二>编写一个PL/SQL程序块将上面创建的员工表中添加一个新的员工。

思路: 首先判断要添加的员工工号是否存在,如果存在,则更新该工号对应的员工的信息,否则添加一个新的员工

答案:

DECLARE-----在PL/SQL匿名块中定义变量v_EmpNo INT:=102;v_ChsName VARCHAR2(20):='王五';v_EngName VARCHAR2(20):='Wang wu';v_AlsName Varchar2(20):='老五';v_Age INT:=28;v_EnrDate DATE:=date'2011-04-01';v_DeptNo INT:=100;BEGIN-----先更新已存在的记录update 员工表 set 中文姓名=v_ChsName,英文姓名=v_EngName,别名=v_AlsName,年龄=v_Age,入职日期=v_EnrDate,部门编号=v_DeptNo where 工号=v_EmpNo;dbms_output.put_line('员工更新成功');---判断,如果未更新数据,IF sql%NOTFOUND then -----则向员工表中插入记录insert into 员工表 values(v_EmpNo,v_ChsName,v_EngName,v_AlsName,v_Age,v_EnrDate,v_DeptNo);dbms_output.put_line('员工插入成功');end if;exceptionwhen others thendbms_output.put_line("插入员工表错误");END;

总结:

1>包含两条sql语句,即update和insert,同时还包含了变量的声明和if条件语句,最后使用exception来进行异常的处理。