第四章 Oracle 的 SQL和PL/SQL

Download Report

Transcript 第四章 Oracle 的 SQL和PL/SQL

第四章 Oracle 的 SQL和
PL/SQL
这一章的重点是介绍Oracle的
SQL、PL/SQL及视图,为实
现数据库的设计、维护和查询
做准备。
本次课程内容
4.1 Oracle 的 SQL介绍
主要介绍SQL概念,相关语句及应用
 4.2 定义、修改、删除表
主要介绍常用表操作

4.1 Oracle的SQL介绍

1.
SQL简介
早期的数据库管理系统常常为不同
范畴的任务使用一个独立的语言,而SQL
将这些任务全部统一在单个语言下了。
SQL成了关系数据库事实上工业标
准。
SQL包括了查询、定义、操纵和控
制数据库四个部分。
SQL的应用极为广泛。(甚至扩展到
数据库以外,如人工智能等)
2.SQL的使用方法及常用的一种
支持工具
交互式联机使用
 嵌入式
 SQL Plus是Oracle系统的支持工具之一,
利用它可以完成数据的建立、存取、数
据的操纵、查询等。具体应用方法可以
通过学习《计算机系多媒体Oracle教学
软件》来掌握。网址为:
http://computer.cec.edu.cn/lcl/showall3.as
p

4. SQL命令集
(1)查询命令SELECT
这是用得最普遍的命令,它是SQL的最
主要、最核心的功能。查询的意思是用
它来从数据库检索数据——查询数据库
SELECT子句
一个SELECT命令通常可以分解为三个部分:
查找什么数据?
从哪里查找?
查找条件是什么?
故常用以下子句来表达
from p1,p2……pn
where <条件表达式>
group by <分组内容>
having <组内条件>
order by <排序内容>
条件表达可以用关系运算、逻辑运算和SQL
运算符。
SELECT命令的常用形式如下:
select 列1,列2……列N
from 表1,……表N
【where 条件】
【order by 列1[asc|desc][列2[asc|desc]…]】;
Where子句的比较运算符:=,<>, <, <=,> ,
>=
Where子句的比较运算符:AND, OR, NOT, IN,
NOT IN, EXISTS
说明:列有多种数据类型,可以参见教材.

实例: 显示EMP表中的部门号、雇员
名和员工号,可用如下语句:
SELECT 部门号,雇员名,员工号
FROM EMP;
• (2) INSERT ,UPDATE , DELETE
这三个命令分别用来在数据库表中插入、
改变已存在的行和去掉不需要的行。它们有
时被统称为DML(Data Manage Language),
即数据操纵语言命令。 ——操纵数据库
实例: 向基表“学生”中插入一条只有
部分列值的记录.
Insert into 学生(学号,姓名)
Values(‘0353110’,’张三‘);

实例:在选课表中将张三选修的A1改为B1
Update 选课
Set 课号=‘B1’
Where 学号= ‘0353110’ and 课号=‘A1’;
(3) CREATE, ALTER, DROP
这三个命令用来动态地创建、改变和去掉任
. 何数据结构,例如表、视图和索引等。它
们有时被统称为DDL,即数据定义语言命
令。 ——定义数据库
实例:用CREATE建立计算机系的学生视图,
视图名为:V_selection
Create view V_selection AS
Selection 学号,姓名,性别,班级
From 学生
Where 系别=“计算机系”
(4) GRANT, REVOKE
这两个命令用来对ORACLE数据库,和其中的
结构授权或去掉访问权限。——控制数据库
例
4.2 定义、修改、删除表
1. 创建表
:格式:
create table 表名
(列名1 数据类型 【约束】,
列名2 数据类型 【约束】,
列名3 数据类型 【约束】
);
例:创建一个电话号码薄。
Create table calling-card
(company-name varchar2(25),
card-number varchar2(20),
starting-value number(5,2),
value-left
number(5,2),
pin-number char(12)
);
如果要使用约束,可以参见教程实例。
2. 修改表结构
使用ALTER TABLE 命令可改变表的定义。
语法:
(1) ALTER TABLE <表名>
MODIFY(<列名><数据类型>[列约束][,<列名><数据类型>,...])
(2) ALTER TABLE <表名>
ADD(<列名><数据类型>[列约束]
[,<列名><数据类型>,...])
(3) ALTER TABLE <表名>
DROP[<选项>](<列名><数据类型>[列约束])
[,<列名><数据类型>,...])
MODIFY子句
使用MODIFY 关键字来对表中原有属性做
修改。
例: 改动Sprice的定义,使之定义为8位数字
长度,其中有两位小数:
ALTER TABLE,Stock
MODIFY (Sprice Number (8,2));
ADD子句
使用ADD关键字来增加列和(或)约束到一个已经存在
的表。
例: 增加雇员配偶名列SPOUSES_NAME到EMP表:
ALTER TABLE EMP
ADD (SPOUES_NAME CHAR(10));
Table altered.
为了看被修改后的表结构描述(如表5.1),可进键入如下
命令:
DESCRIBE EMP
DROP 子句
使用DROP子句从表中去掉约束。语法:
ALTER TABLE<表名字>
DROP [CONSTRAINT 约束名
PRIMARY KEY
UNIQUE (<列名1>,<列名2>,...)
例:
ALTER TABLE EMP
DROP CONSTRAINT EMP_MGR;
ALTER TABLE EMP
DROP PRIMARY KEY;
小结

本次课程主要介绍了结构化查询语言的
概念,主要功能和基本应用方法,相应的
开发工具SQL Plus及表的操作
练习:P117 1,2,3。
补充题:
1. CREATE 命令的功能有
A:创建表结构 ()
B:创建视图 ()
C:创建索引 ()
D:ABC都对 ()
2. 下列对 ORDER BY 子句的说法正确的是
A:可以用来排序行()
B:数据的默认排序是升序()
C:使用时 ORDER BY 子句必须放在 SELECT 语句的最后 ()
D:使用时 ORDER BY 子句必须放在 SELECT 语句的前面