数据库实验二-表与视图的基本操作

一、实验目的

  1. 掌握数据库表与视图的基础知识。
  2. 掌握创建、修改、使用、删除表与视图的不同方法。
  3. 掌握表与视图的导入或导出方法。
    二、实验内容
  4. 创建数据库及表
    用你掌握的某种方法,创建订报管理子系统的数据库DingBao,在DingBao数据库中用交互式页面操作方法或CREATE TABLE创建如下三表的表结构(表名及字段名使用括号中给出的英文名),并完成三表所示内容输入,根据需要可自行设计输入更多的表记录。
    创建表结构时要求满足:①报纸编码表(PAPER)以报纸编号(pno)为主键,如表3-1所示;②顾客编码表(CUSTOMER)以顾客编号(cno)为主键,如表3-2所示;③报纸订阅表(CP)以报纸编号(pno)与顾客编号(cno)为主键。订阅份数的缺省为1,如表3-3所示。
  5. 创建与使用视图
    ①在DingBao数据库中,创建含有顾客编号、顾客名称、报纸编号、报纸名称、订阅份数等信息的视图,视图名设定为C_P_N。
    ②修改已创建的视图C_P_N,使其含报纸单价信息。
    ③通过视图C_P_N查询 “人民日报”被订阅的情况,能通过视图C_P_N实现对数据的更新操作吗?请尝试各种可行的更新操作,如修改某人订阅某报的份数,修改某报的名称等。
    ④删除视图C_P_N。
    三、实验结果
    1.创建数据库及表
    (1)创建数据库,添加以下代码

create database DingBao
use DingBao
(2)建表一,添加以下代码
create table PAPER
(pno char(9)primary key, /pno 是主码/
pna char(20)unique, /pna 取唯一值/
prr float(5)
);

(3)建表二,添加以下代码
create table CUSTOMER
(cno char(9)primary key, /cno 是主码/
cna char(20),
adr char(20));

(4)建表三,添加以下代码
create table CP
(cno char(9),
pno char(9),
num smallint DEFAULT 1,
primary key (cno,pno),
foreign key (cno) references CUSTOMER (cno),
foreign key (pno) references PAPER (pno)
);

(5)插入数据并查询,添加以下代码
select *
from PAPER
select *
from CUSTOMER
select *
from CP

  1. 创建与使用视图
    (1)创建视图
    CREATE VIEW C_P_N
    AS
    SELECT CUSTOMER.cno,CUSTOMER.cna,PAPER.pno,PAPER.pna,num
    FROM PAPER,CUSTOMER,CP
    WHERE PAPER.pno = CP.pno AND CUSTOMER.cno = CP.cno

(2)修改视图

ALTER VIEW C_P_N
AS
SELECT CUSTOMER.cno,CUSTOMER.cna,PAPER.pno,PAPER.pna,num,PAPER.ppr
FROM PAPER,CUSTOMER,CP;

(3)更新操作
UPDATE C_P_N
SET num = 10
WHERE cna='李涛' AND pna='人民日报';

(4)删除视图
DROP VIEW C_P_N;

四、实验小结
在这次实验中,我学会了如何创建数据库和表,掌握了表与视图的基本操作。通过实际操作,我理解了数据库设计的基本原则,包括主键的确定、表间关系的建立等。同时,我也学会了如何使用SQL语言对数据库进行查询、插入、更新和删除等操作。
在创建视图的过程中,我认识到视图是一个虚拟的表,它可以方便地处理数据,提高查询效率。同时,我也学会了如何修改视图,使其包含更多的信息。但是,需要注意的是,并不是所有的更新操作都可以通过视图实现。例如,修改某人订阅某报的份数是可以实现的,但是修改某报的名称则无法实现,因为这涉及到表结构的改变。
总的来说,这次实验让我对数据库和表与视图的基本操作有了更深入的理解,提高了我的动手能力。在以后的学习和工作中,我会继续努力,掌握更多的数据库知识和技能。

posted @ 2024-06-18 14:54  冰露奇缘  阅读(107)  评论(0)    收藏  举报