实验一创建CAP数据库(1)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一创建CAP数据库(1)
一、实验目的和要求
1.巩固数据库的基础知识;
2.熟悉SQL*Plus的使用;
3.掌握创建CAP数据库的方法;
4.掌握使用SQL*Loader将数据导入表中的方法;
二、实验内容和步骤
1、启动SQL*Plus
SQL*Plus对于ORACLE RDBMS环境来说是一个交互的字符模式工具,是一个关于ORACLE RDBMS的即时、交互终端接口程序。
1) 选择“开始”→“程序”→“Oracle<Oracle_Home_Name>”→“Application
Development”→“SQL*Plus”,启动SQL*Plus。
在用户名文本框中输入system,口令文本框中输入manager,单击确定按钮。
2) 成功连接数据库后出现如图1.2所示画面,在菜单栏里有一些常见的菜单命令可以
帮助执行并保存SQL查询语句。
3) 输入查询语句“SELECT * FROM scott.emp;”,查询结果如图1.3所示。
4) 执行完毕后,输入quit或exit命令,返回Windows状态。
2、创建CAP数据库
1) 启动SQL*Plus并进入到SQL*Plus的交互环境下。
在“SQL>”提示符后输入SQL命令,按回车键系统自动提交执行,执行结果显示在命令行下。
2) 创建CAP数据库中的CUSTOMERS表。
SQL>create table customers(cid char(4) not null, cname varchar(13),
2 city varchar(20), discnt real, primary key(cid));
Create Table语句的结果是创建了一张带属性cid, cname, city和discnt的空customers表。
3) 在SQL提示符下键入exit退出SQL*Plus,然后运行SQL*Loader。
3、使用SQL*Loader
SQL*Loader是从操作系统文本文件读数据并把内容转化为表中的字段的工具程序。
1) 建立控制文件
custs.ctl文件的内容如下:
load data
replace
into table customers
fields terminated by ","
(cid,cname,city,discnt)
(cid,cname,city,discnt)
2) 建立数据文件
custs.dat文件的内容如下:
c001,Tiptop,Duluth,10.00,
c002,Basics,Dallas,12.00,
c003,Allied,Dallas,8.00,
c004,ACME,Duluth,8.00,
c006,ACME,Kyoto,0.00,
3) 运行SQL*Loader,命令:
Sqlldr userid=username/password@servicename control=custs.ctl
三、附录(CAP数据库)
实验二创建CAP数据库(2)
一、实验目的和要求
1.巩固数据库的基础知识;
2.熟悉SQL*Plus的使用;
3.掌握创建CAP数据库的方法;
4.掌握使用SQL*Loader将数据导入表中的方法;
二、实验内容和步骤
4、启动SQL*Plus
SQL*Plus对于ORACLE RDBMS环境来说是一个交互的字符模式工具,是一个关于ORACLE RDBMS的即时、交互终端接口程序。
1) 选择“开始”→“程序”→“Oracle<Oracle_Home_Name>”→“Application
Development”→“SQL*Plus”,启动SQL*Plus。
在用户名文本框中输入system,口令文本框中输入manager,单击确定按钮。
2) 成功连接数据库后出现如图1.2所示画面,在菜单栏里有一些常见的菜单命令可以
帮助执行并保存SQL查询语句。
3) 输入查询语句“SELECT * FROM scott.emp;”,查询结果如图1.3所示。
4) 执行完毕后,输入quit或exit命令,返回Windows状态。
5、创建CAP数据库
1) 启动SQL*Plus并进入到SQL*Plus的交互环境下。
在“SQL>”提示符后输入SQL命令,按回车键系统自动提交执行,执行结果显示在命令行下。
2) 创建CAP数据库中的AGENTS表、PRODUCTS表和ORDERS表。
SQL>create table agents(aid char(3) not null, aname varchar(13),
2 city varchar(20), percent smallint, primary key(aid));
SQL>create table products(pid char(3) not null, pname varchar(13),
2 city varchar(20), quantity integer, price double precision, primary key(pid));
SQL>create table orders(ordno integer not null, month char(3),
2 cid char(4) , aid char(3), pid char(3),
3 qty integer, dollars double precision, primary key(ordno));
3) 在SQL提示符下键入exit退出SQL*Plus,然后运行SQL*Loader。
6、使用SQL*Loader
SQL*Loader是从操作系统文本文件读数据并把内容转化为表中的字段的工具程序。
1) 建立控制文件
custs.ctl文件的内容如下:
load data
replace
into table customers
fields terminated by ","
(cid,cname,city,discnt)
(cid,cname,city,discnt)
2) 建立数据文件
custs.dat文件的内容如下:
c001,Tiptop,Duluth,10.00,
c002,Basics,Dallas,12.00,
c003,Allied,Dallas,8.00,
c004,ACME,Duluth,8.00,
c006,ACME,Kyoto,0.00,
3) 运行SQL*Loader,命令:
Sqlldr userid=system/manager control=custs.ctl
4) 同理将数据导入agents表、products表和orders表。
7、使用SQL*Plus
1) SQL>select * from customers
2 Where cname=”Tiptop”;
2) SQL>list
3) SQL>1
4) SQL>c/customers/agents
三、附录(CAP数据库)
实验三数据查询(1)
一、实验目的及要求
1、了解脚本文件的使用;
2、掌握SELECT语句在单表查询中的应用;
3、掌握复杂查询的使用方法;
4、掌握多表连接的方法;
二、实验内容
1、使用脚本文件(create.sql)创建CAP数据库。
命令行:
sqlplus system/******************
2、使用sql*loader装载数据
命令行:
sqlldr userid=system/manager control=custs.ctl
sqlldr userid= system/manager control=agents.ctl
sqlldr userid= system/manager control=prods.ctl
sqlldr userid= system/manager control=orders.ctl
3、用SELECT语句完成以下查询
a) 找出住在纽约的代理商的aid值和名字。
b) 检索订货记录中所有的零件的pid值。
c) 检索有关住在Duluth或Dallas的代理商的所有信息。
d) 检索居住地名以“D”开始的客户的信息。
e) 检索所有客户的最高折扣率。
f) 求出所有的订货交易的总金额。
g) 求出产品p01的订购总量。
h) 求出有顾客居住的城市的数目。
i) 找出所有客户、代理商和商品都在同一城市的三元组(cid, aid, pid)。
j) 找出所有在同一城市的代理商的aid对。
三、附录
1、脚本文件(create.sql)的内容
-- create.sql
-- SQL statements for table creation for CAP database
-- written in Entry SQL-92, should work for all full-feature databases
drop table customers;
create table customers
(cid char(4) not null,
cname varchar(13),
city varchar(20),
discnt real,
primary key(cid));
drop table agents;
create table agents
(aid char(3) not null,
aname varchar(13),
city varchar(20),
percent smallint,
primary key (aid));
drop table products;
create table products
(pid char(3) not null,
pname varchar(13),
city varchar(20),
quantity integer,
price double precision,
primary key(pid));
drop table orders;
create table orders
(ordno integer not null,
month char(3),
cid char(4),
aid char(3),
pid char(3),
qty integer,
dollars double precision,
primary key(ordno)); 2、装载数据所需的文件
实验四数据查询(2)
一、实验目的及要求
1、解脚本文件的使用;
2、掌握SELECT语句在单表查询中的应用;
3、掌握复杂查询的使用方法;
4、掌握多表连接的方法;
二、实验内容
1、使用脚本文件(create.sql)创建CAP数据库。
命令行:
sqlplus system/******************
2、用sql*loader装载数据
命令行:
sqlldr userid=system/manager control=custs.ctl
sqlldr userid= system/manager control=agents.ctl
sqlldr userid= system/manager control=prods.ctl
sqlldr userid= system/manager control=orders.ctl
3、用SELECT语句完成以下查询
a) 统计一月份的订单编号。
b) 统计二月份的所有订单交易的总金额。
c) 查询所在地在Dallas的产品的所有信息。
d) 找出同时订购了商品p01和p07的客户的cid值。
e) 找出同时订购了商品p01和p07的客户的姓名。
自选:
f) 统计各个产品的销售总量。
g) 当某个代理商所订购的某样产品的总量超过1000时,打印出所有满足条件的
产品和代理商的ID以及这个总量。
h) 找出订购了产品p05的顾客的名字。
i) 检索满足以下条件的顾客-代理商的姓名对(cname,aname),其中的顾客cname
通过代理商aname订了货。
j) 求出住在同一城市的顾客对。
k) 找出所有的(cname, aname)对,要求对应的客户通过对应的代理商订购过产品。
三、附录
1、脚本文件(create.sql)的内容
-- create.sql
-- SQL statements for table creation for CAP database
-- written in Entry SQL-92, should work for all full-feature databases
drop table customers;
create table customers
(cid char(4) not null,
cname varchar(13),
city varchar(20),
discnt real,
primary key(cid));
drop table agents;
create table agents
(aid char(3) not null,
aname varchar(13),
city varchar(20),
percent smallint,
primary key (aid));
drop table products;
create table products
(pid char(3) not null,
pname varchar(13),
city varchar(20),
quantity integer,
price double precision,
primary key(pid));
drop table orders;
create table orders
(ordno integer not null,
month char(3),
cid char(4),
aid char(3),
pid char(3),
qty integer,
dollars double precision,
primary key(ordno)); 2、装载数据所需的文件
实验五数据更新及视图机制
一、实验目的及要求
1、了解脚本文件的使用;
2、掌握基本表中插入、修改、删除语句的使用;
3、掌握视图的创建方法;
4、掌握视图的更新机制。
二、实验内容
1、使用脚本文件(create.sql)创建CAP数据库。
命令行:
sqlplus system/******************
2、使用sql*loader装载数据
命令行:
sqlldr userid=system/manager control=custs.ctl
sqlldr userid= system/manager control=agents.ctl
sqlldr userid= system/manager control=prods.ctl
sqlldr userid= system/manager control=orders.ctl
3、SQL语言实现以下要求:
a) 将customers表中的字段cname的长度改为20。
b) 在customers表中插入一个新行(‘c007’,’WinDix’,’Dallas’)。
c) 在agent表中插入新行(‘a07’,‘jack’,‘beijing’,3)。
d) 在agent表中将代理商姓名中含有o字母的代理商的代理份额改为8。
e) 在订单表中将四月份的交易记录删除。
f) 创建一个视图order-a,要求有以下属性:订单编号、月份、代理商编号、代
理商姓名和代理商所在城市。
g) 创建一月份所有订单交易的视图order-jan。
h) 查询客户c003在一月份的订单总金额。
i) 查询一月份订单交易中产品p01的交易数量和金额。
j) 将客户c006在一月份的订单数量改为2000,金额改为1000。
k) 将视图order-a删除。
l) 将视图order-jan删除。
m) 在上面两个视图删除后查询orders、agents表的所有信息,并与建立视图之前比较,查看数据是否发生变化。
三、附录
1、脚本文件(create.sql)的内容
-- create.sql
-- SQL statements for table creation for CAP database
-- written in Entry SQL-92, should work for all full-feature databases
drop table customers;
create table customers
(cid char(4) not null,
cname varchar(13),
city varchar(20),
discnt real,
primary key(cid));
drop table agents;
create table agents
(aid char(3) not null,
aname varchar(13),
city varchar(20),
percent smallint,
primary key (aid));
drop table products;
create table products
(pid char(3) not null,
pname varchar(13),
city varchar(20),
quantity integer,
price double precision,
primary key(pid));
drop table orders;
create table orders
(ordno integer not null,
month char(3),
cid char(4),
aid char(3),
pid char(3),
qty integer,
dollars double precision,
primary key(ordno)); 2、装载数据所需的文件。