首页 > 数据库 >第一次数据库实验代码整理-表与视图的基础操作

第一次数据库实验代码整理-表与视图的基础操作

时间:2022-10-28 17:13:05浏览次数:96  
标签:insert 数据库 视图 表与 pno cno values CP into

一、 实验环境

1. Windows2000或以上版本;

2. SQLServer 2005或以上版本。

二、 实验目的

1. 掌握数据库表与视图的基础知识;

2. 掌握创建、修改、使用、删除表与视图的不同方法。

三、 实验内容

完成实验指导书中p60-61页 “实验内容与要求”。

四、 实验步骤、源代码及实验结果

  1. 创建数据库及表
  2. 用你掌握的某种方法,创建订报管理子系统的数据库DingBao,在DingBao数据库中用交互式界面操作方法或CREATE TABLE创建如下三表的表结构(表名及字段名使用括号中华出的英文名),并完成三表所示内容的输人,根据需要可自行设计输人更多的表记录。
  3. 创建表结构时要求满足:①报纸编码表(PAPER)以报纸编号(pno)为主键,如表3-1所示;②顾客编码表(CUSTOMER)以顾客编号(cno)为主键,如表3-2 所示;③报纸订阅表(CP以报纸编号(pno)与顾客编号(cno)为主键,订阅份数(num)的缺省值为1,如表3-3所示。

 

①、报纸编码表

CREATE TABLE PAPER

(

pno char(9) PRIMARY KEY,

pna char(9),

ppr float

);

 

②、顾客编码表

CREATE TABLE CUSTOMER

(

cno char(9) PRIMARY KEY,

cna char(9) UNIQUE NOT NULL,

adr char(20)

);

 

③、报纸订阅表

CREATE TABLE CP

(cno CHAR(9),

 pno CHAR(9), 

 num int DEFAULT 1,

 PRIMARY KEY(cno,pno),

 FOREIGN KEY(cno) REFERENCES CUSTOMER(cno),

 FOREIGN KEY(pno) REFERENCES PAPER(pno)

 );

 

  1. 插入数据

①、

insert into PAPER values('000001','人物日报','12.5');

insert into PAPER values('000002','解放日报','14.5');

insert into PAPER values('000003','光明日报','10.5');

insert into PAPER values('000004','青年报','11.5');

insert into PAPER values('000005','扬子网报','18.5');

 

②、

insert into CUSTOMER values('10000001','李涛','无锡市解放东路123号');

insert into CUSTOMER values('10000002','钱金浩','无锡市人民西路234号');

insert into CUSTOMER values('10000003','邓杰','无锡市惠河路270号');

insert into CUSTOMER values('10000004','朱海红','无锡市中山东路432号');

insert into CUSTOMER values('10000005','欧阳阳文','无锡市中山东路532号');

 

③、

insert into CP values('10000001','000001','2');

insert into CP values('10000001','000002','4');

insert into CP values('10000001','000005','6');

insert into CP values('10000002','000001','2');

insert into CP values('10000002','000003','2');

insert into CP values('10000002','000005','2');

insert into CP values('10000003','000003','2');

insert into CP values('10000003','000004','4');

insert into CP values('10000004','000001','1');

insert into CP values('10000004','000003','3');

insert into CP values('10000004','000005','2');

insert into CP values('10000005','000003','4');

insert into CP values('10000005','000002','1');

insert into CP values('10000005','000004','3');

insert into CP values('10000005','000005','5');

insert into CP values('10000005','000001','4');

 

2、创建与使用视图

①、

CREATE VIEW C_P_N

AS

SELECT CP.cno,cna,CP.pno,pna,num

FROM PAPER,CP,CUSTOMER

WHERE CP.cno=CUSTOMER.cno AND CP.pno=PAPER.pno;

 

②、ALTER VIEW C_P_N

AS

SELECT PAPER.pno,pna,CUSTOMER.cno,cna,num,ppr

FROM PAPER,CUSTOMER,CP;

 

③、

查询“人物日报”的订阅数量

SELECT *

FROM C_P_N

WHERE pna='人物日报';

 

将李涛顾客改为罗猪猪

UPDATE C_P_N

SET cna='罗猪猪'

WHERE cna='李涛';

 

发现表中数据也改变了

 

将‘人物日报’修改为‘人民日报’

UPDATE C_P_N

SET pna='人民日报'

WHERE pna='人物日报';

 

 

有重复的经过和老师的探讨修改了代码如下

①、

CREATE VIEW C_P_N

AS

SELECT CP.cno,cna,CP.pno,pna,num

FROM PAPER,CP,CUSTOMER

WHERE CP.cno=CUSTOMER.cno AND CP.pno=PAPER.pno;

 

②、ALTER VIEW C_P_N

AS

SELECT CP.cno,cna,CP.pno,pna,num,ppr

FROM PAPER,CUSTOMER,CP

WHERE CP.cno=CUSTOMER.cno AND CP.pno=PAPER.pno;

 

 

查询“人民日报”的订阅数量

SELECT *

FROM C_P_N

WHERE pna='人民日报';

 

 

④、DROP VIEW C_P_N;

 

 

更新多个数据表格:

ALTER VIEW C_P_N

AS

SELECT CP.cno,cna,CP.pno,pna

FROM PAPER,CUSTOMER,CP

WHERE CP.cno=CUSTOMER.cno AND CP.pno=PAPER.pno;

 

五、 实验体会

通过这次实验学会了主要建表时需要将几个表中重复的数据进行合并,并且对更新视图的语言记忆更加深刻了,中间因为表格中是人物日报,但是要我们查找的是人民日报而出现错误,将UPDATE语句中的‘人民日报’改为‘人物日报’之后就能查询到对应的数据

附:实验准备代码

CREATE TABLE PAPER

(

pno char(9) PRIMARY KEY,

pna char(9),

ppr float

);

CREATE TABLE CUSTOMER

(

cno char(9) PRIMARY KEY,

cna char(9) UNIQUE NOT NULL,

adr char(20)

);

CREATE TABLE CP

(cno CHAR(9),

 pno CHAR(9), 

 num int DEFAULT 1,

 PRIMARY KEY(cno,pno),

 FOREIGN KEY(cno) REFERENCES CUSTOMER(cno),

 FOREIGN KEY(pno) REFERENCES PAPER(pno)

 );

insert into PAPER values('000001','人物日报','12.5');

insert into PAPER values('000002','解放日报','14.5');

insert into PAPER values('000003','光明日报','10.5');

insert into PAPER values('000004','青年报','11.5');

insert into PAPER values('000005','扬子网报','18.5');

insert into CUSTOMER values('10000001','李涛','无锡市解放东路123号');

insert into CUSTOMER values('10000002','钱金浩','无锡市人民西路234号');

insert into CUSTOMER values('10000003','邓杰','无锡市惠河路270号');

insert into CUSTOMER values('10000004','朱海红','无锡市中山东路432号');

insert into CUSTOMER values('10000005','欧阳阳文','无锡市中山东路532号');

insert into CP values('10000001','000001','2');

insert into CP values('10000001','000002','4');

insert into CP values('10000001','000005','6');

insert into CP values('10000002','000001','2');

insert into CP values('10000002','000003','2');

insert into CP values('10000002','000005','2');

insert into CP values('10000003','000003','2');

insert into CP values('10000003','000004','4');

insert into CP values('10000004','000001','1');

insert into CP values('10000004','000003','3');

insert into CP values('10000004','000005','2');

insert into CP values('10000005','000003','4');

insert into CP values('10000005','000002','1');

insert into CP values('10000005','000004','3');

insert into CP values('10000005','000005','5');

insert into CP values('10000005','000001','4');

CREATE VIEW C_P_N

AS

SELECT CP.cno,cna,CP.pno,pna,num

FROM PAPER,CP,CUSTOMER

WHERE CP.cno=CUSTOMER.cno AND CP.pno=PAPER.pno;

 

ALTER VIEW C_P_N

AS

SELECT CP.cno,cna,CP.pno,pna,num,ppr

FROM PAPER,CUSTOMER,CP

WHERE CP.cno=CUSTOMER.cno AND CP.pno=PAPER.pno;

SELECT *

FROM C_P_N

WHERE pna='人民日报';

UPDATE C_P_N

SET cna='罗猪猪'

WHERE cna='李涛';

UPDATE C_P_N

SET pna='人民日报'

WHERE pna='人物日报';

DROP VIEW C_P_N;

 

标签:insert,数据库,视图,表与,pno,cno,values,CP,into
From: https://www.cnblogs.com/lyyds666jyqdm/p/16836698.html

相关文章

  • 数据库课堂练习4
    数据库中有 3 个关系,物资表 WZ(WZno, WZNAME, WZTYPE),其属性分别表示物资号,物资名,物资类型。供应公司表 GYGS(Gno,GNAME,CITY,TEL,LXR),其属性分别表示公司编号,公......
  • 本地MSSQL2008数据库连接服务器上的MSSQL2008数据库
    一、基础环境这里对于MSSQL2008的安装步骤不再做介绍,只描述【本地MSSQL2008数据库如何连接服务器上的MSSQL2008数据库】服务器端数据库操作步骤开始:开始菜单->所有程序-......
  • 视频融合平台EasyCVR如何操作MySQL数据库来批量关闭通道?
    EasyCVR具备强大的视频接入、汇聚与管理、视频分发等视频能力,可实现的视频功能包括:视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、服务器集群、智......
  • day21 单列索引与组合索引 & 索引的优点和使用原则 & 视图与函数
    索引1.索引有几种四种,单列索引,组合索引,全文索引,空间索引2.索引的优点所有的MySQL数据库列类型都可以被索引,也就是可以给任意字段加索引提高数据查询速度索引的缺点1......
  • redhat7.6安装达梦DM8数据库详细部署讲解
      本文讲解如何在redhat7.6操作系统环境安装达梦DM8数据库,检查本机系统环境,注意事项如下:1、查看/tmp空间,/tmp建议至少1.5G以上2、安装DMglibc版本不能低于2.3,li......
  • Oracle数据库主从复制
    主从复制​主从复制简介:​主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库;主数据库一般是实时的业务数据库,从数据库的作用和使用场合一般有几个:​一、作......
  • Oracle数据库主从切换
    Oracle主从切换​主从查看打开状态:[root@odb1~]#su-oracleexportNLS_LANG="AMERICAN_AMERICA.ZHS16GBK"[oracle@odb1~]$source.bash_profile[oracle@odb1~]$sql......
  • Oracle数据库备份恢复
    ORACLE数据库备份恢复​一.​1.备份生产数据库​在线备份:​采用ARCHIVELOGmode方式备份,可以脱机或联机备份。需要备份数据库和归档日志​$.oraenvORACLE_SID=[prim]?......
  • Oracle安装示例数据库(Linux)
    前言数据库示例(OracleDatabaseExamples)包含了一系列的示例脚本和产品功能演示的Schema信息,在学习Oracle数据库的过程中可以通过这些示例更好的掌握数据库相关的选项和......
  • 10月28日Mybatis结果与数据库结果不一致
    Mybatis结果与数据库结果不一致1数据库有结果,而mybatis无结果2数据库1条结果,而mtbatis三条结果报错情况:点击查看代码CreatinganewSqlSessionSqlSession[org.apa......