山东大学数据库第四次实验实验报告

合集下载

山东大学数据结构第四次实验实验报告

山东大学数据结构第四次实验实验报告

实验4 排序的编程与实现实验目的:掌握常用的排序方法,并掌握C语言实现排序算法的方法;了解各种排序方法过程及依据原则,并掌握各种排序方法的时间复杂度和稳定性的分析方法。

实验原理:参照课本p.220页内容中的 Figure7.2;课本p.223页内容中的Figure7.4;p.228,Figure7.8;p.232-233, Figure7.9-7.10; p240-243, Figure 7.12-7.15.实验内容:统计成绩【问题描述】:给出n个学生的考试成绩表,每条信息由姓名和分数组成,利用排序算法完成以下任务:1)按照分数高低次序,打印出每个学生在考试中获得的名次,分数相同的为同一名次。

2)按照名次列出每个学生的姓名和分数【要求】学生的考试成绩需要从键盘输入数据建立,同时要设计输出格式。

实验要求:1)能够采用常用的排序算法中的一种实现以上两个任务;实验步骤:一、实验源程序#include<stdio.h>#include <string.h>#include<stdlib.h>#include <conio.h>void Input(int n); \\实现从键盘输入学生姓名和分数的功能void Ranking(int n); \\实现根据学生成绩进行排序的功能struct student \\结构体,存放学生姓名及分数{char name[8];int score;} R[101];int main ( ) \\主程序{int x;printf("请输入需要录入信息的学生个数(不超过100): ");scanf ("%d",&x);Input(x);printf("学生成绩排名如下:\n ");printf(" 排名学生姓名成绩\n ");Ranking(x);getch();return 0;}void Input(int n) \\从键盘输入学生姓名和分数{int i;printf("请输入学生的姓名和成绩: \n");for (i=0; i<n; i++){printf ("学生姓名:");scanf ("%s", R[i].name);printf ("此学生的成绩:");scanf ("%d", &R[i].score);}}void Ranking(int n) \\根据学生成绩进行排序{int num=1,number=0, i, j, max=0;for (i=0; i<n; i++) \\外循环,将学生成绩从高到低进行排序{max=i;for (j=i+1; j<n; j++){if (R[j].score>R[i].score) \\内循环,如果排在后面的分数高于前面的,则进行结构体内容互换{max=j;R[100]=R[max];R[max]=R[i];R[i]=R[100];}}number=number+1; \\记录学生排名名次if ((i>0)&&(R[i].score<R[i-1].score)){num=number;}if(num==1)printf(" %3d %s%6d\n", num, R[i].name, R[i].score);elseprintf(" %4d %s%6d\n", num, R[i].name, R[i].score);}}二、实验结果①从键盘上输入学生姓名和分数信息,这里选择输入5个学生信息(上限人数程序中已经设置为100)。

山大数据库实验四:复制表、修改表结构、修改数据

山大数据库实验四:复制表、修改表结构、修改数据
update test4_03 set sum_credit = (select sum_credit from a where test4_03.sid=a.sid)
drop table a
4.
create table test4_04 as select * from pub.student_41
update test4_07 set sex=replace(sex,' ','')
8.
create table test4_08 as select * from pub.student_42
update test4_08 set class=substr(class,1,4)
9.
update test4_06 set name = replace(name,' ','')
7.
create table test4_07 as select * from pub.student_42
update test4_07 set sex=substr(sex,1,1) where sex like '_性'
create table a as select * from pub.department union select * from pub.department_41
update test4_04 set did=(select did from a where a.dname=test4_04.dname)
update test4_05 set sum_credit = (select sum_credit from a where test4_05.sid=a.sid)

山东大学计算机网络实验报告(实验四)

山东大学计算机网络实验报告(实验四)

软件学院计算机网络实验报告实验四用户数据报协议(UDP)姓名班级2013级软件1班学号实验名称用户数据报协议(UDP)实验时间 2015.11实验目的:1.掌握UDP协议的报文格式;2.掌握UDP协议校验和的计算方法;3.理解UDP协议的优缺点;4.理解协议栈对UDP协议的处理方法;5.理解UDP上层接口应满足的条件。

实验步骤及结果:该实验采用网络拓扑结构一练习一练习名称:编辑并发送UDP数据报练习内容:各主机打开协议分析器,进入相应的网络结构并验证网络拓扑的正确性,如果通过拓扑验证,关闭协议分析器继续进行实验,如果没有通过拓扑验证,请检查网络连接。

本练习将主机A和B作为一组,主机C和D作为一组,主机E和F作为一组。

现仅以主机A、B所在组为例,其它组的操作参考主机A、B所在组的操作。

1. 主机A打开协议编辑器,编辑发送给主机B的UDP数据报。

MAC层:目的MAC地址:接收方MAC地址源MAC地址:发送方MAC地址协议类型或数据长度:0800,即IP协议IP层:总长度:包括IP层、UDP层和数据长度高层协议类型:17,即UDP协议首部校验和:其它所有字段填充完毕后填充此字段源IP地址:发送方IP地址目的IP地址:接收方IP地址UDP层:源端口:1030目的端口:大于1024的端口号有效负载长度:UDP层及其上层协议长度其它字段默认,计算校验和。

●UDP在计算校验和时包括哪些内容?答:包含伪首部(IP首部的一部分字段),UDP首部和UDP数据,该字段是可选的。

如果该字段为零就说明不进行校验。

2. 在主机B上启动协议分析器捕获数据,并设置过滤条件(提取UDP协议)。

3. 主机A发送已编辑好的数据报。

4. 主机B停止捕获数据,在捕获到的数据中查找主机A所发送的数据报。

思考问题:1.为什么UDP协议的“校验和”要包含伪首部?答:伪首部是IP首部的一部分,其中有些字段要填入0。

用户数据报封装在IP数据包中。

数据库第四次上机实验报告

数据库第四次上机实验报告

数据库第四次上机实验报告班级:姓名:学号:实验日期:一、实验目的熟悉掌握数据库设计开发的整个过程。

二、实验内容a.从需求分析入手,按数据库设计的方法和步骤设计并在计算机上实现一个数据库:供应商――零件――工程。

已知语义是:(1)一个供应商可以提供多种零件;而每种零件由多个供应商供应;(2)每种零件为多个工程使用,而每项工程又需要多种零件;(3)每个供应商有姓名、编号和住址;每种零件有零件名、编号、颜色;每项工程有工程(4)名、编号和地址。

b.在从此数据库基础上编写小应用程序实现以下查询功能:(1)给出为某项工程提供零件的全部供应商名;(2)给出使用某供应商所供零件的全部工程名;(3)给出使用红色零件的工程名;(4)给出住在A地而为不在A地、且不使用红色零件的工程提供零件的供应商名;(5)给出使用某供应商供应的全部零件的工程名。

三、实验步骤1、数据库关系设计E-R图根据任务描述,得到E-R图如下图所示。

2、给出数据模型和关系模式根据E-R图,需要建立S、P、J、SPJ共计4个关系模式来描述整个关系,他们包含:S(SNO,SNAME,CITY),分别代表供应商及其编号、名称、地址,主码为SNO。

P(PNO,PNAME,COLOR),分别代表零件及其编号、名称、颜色,主码为PNO。

J(JNO,JNAME,CITY),分别代表工程及其编号、名称、地址,主码为JNO。

SPJ(SNO,PNO,JNO),代表工程所需零件供应商关系。

3、录入数据SPJSPJ4、建立SQL,录入与查询(1)建立表格CREATE TABLE S( SNAME V ARCHAR (50) NOT NULL,SNO V ARCHAR(50) PRIMARY KEY,CITY V ARCHAR (50) NOT NULL);CREATE TABLE P( PNAME V ARCHAR (50)NOT NULL,SNO V ARCHAR (50) PRIMARY KEY,COLOR V ARCHAR (50)NOT NULL);CREATE TABLE J(JNAME V ARCHAR (50)NOT NULL,JNO VARCHAR(50) PRIMARY KEY,CITY V ARCHAR (50)NOT NULL);CREATE TABLE SPJ(SNO CHAR(50) NOT NULL,PNO CHAR(50) NOT NULL,JNO CHAR(50) NOT NULL);(2)录入信息INSERT INTO S V ALUES ('华为','S1','广东'); INSERT INTO S V ALUES ('小米','S2','上海'); INSERT INTO S V ALUES ('苹果','S3','江苏'); INSERT INTO S V ALUES ('三星','S4','北京');INSERT INTO P V ALUES ('芯片','P1','红'); INSERT INTO P V ALUES ('声卡','P2','绿'); INSERT INTO P V ALUES ('显示屏','P3','黑'); INSERT INTO P V ALUES ('显示屏','P4','蓝'); INSERT INTO P V ALUES ('耳机','P5','红'); INSERT INTO P V ALUES ('外壳','P6','白');INSERT INTO J V ALUES ('P30','J1','南京'); INSERT INTO J V ALUES ('PRO','J2','北京'); INSERT INTO J V ALUES ('GALAXY','J3','新疆'); INSERT INTO J V ALUES ('REDMI','J4','吉林'); INSERT INTO J V ALUES ('HONOR','J5','广东');INSERT INTO SPJ V ALUES ('S2','P2','J1'); INSERT INTO SPJ V ALUES ('S4','P3','J1'); INSERT INTO SPJ V ALUES ('S3','P6','J1'); INSERT INTO SPJ V ALUES ('S2','P1','J2'); INSERT INTO SPJ V ALUES ('S1','P3','J2'); INSERT INTO SPJ V ALUES ('S4','P5','J2'); INSERT INTO SPJ V ALUES ('S4','P2','J3'); INSERT INTO SPJ V ALUES ('S3','P4','J3'); INSERT INTO SPJ V ALUES ('S3','P5','J3');INSERT INTO SPJ V ALUES ('S2','P1','J4');INSERT INTO SPJ V ALUES ('S4','P4','J4');INSERT INTO SPJ V ALUES ('S1','P2','J4');(3)SQL查询1、给出为工程J1提供零件的全部供应商名SELECT DISTINCT SNAMEFROM S,SPJWHERE S.SNO=SPJ.SNO AND JNO=‘J1’;2、给出使用供应商S2所供零件的全部工程名SELECT JNAMEFROM JWHERE JNO IN (SELECT JNOFROM SPJWHERE SNO = ‘S2’);3、给出使用红色零件的工程名SELECT JNAMEFROM JWHERE JNO IN (SELECT JNOFROM SPJ, PWHERE COLOR = ‘红’ AND SPJ.PNO = P.PNO);4、给出住在北京而为不在北京、且不使用红色零件的工程提供零件的供应商名SELECT DISTINCT SNAMEFROM S, P, SPJWHERE S.SNO = SPJ.SNO AND P.PNO = SPJ.PNO AND SCITY = ‘北京’ AND S.CITY != J.CITYAND SPJ.PNO NOT IN(SELECT SPJ.PNOFROM P, SPJWHERE P.PNO = SPJ. PNO AND COLOR = ‘红’ );5、给出使用供应商S3供应的全部零件的工程名SELECT JNAMEFROM JWHERE NOT EXISTS(SELECT *FROM SPJWHERE NOT EXISTS(SELECT *FROM SPJWHERE SNO = ‘S3’);5、用户界面设计采用Delphi 7进行用户界面设计。

山东大学数据库实验答案2—8

山东大学数据库实验答案2—8

⼭东⼤学数据库实验答案2—8⼭东⼤学数据库实验答案2—8 CREATE TABLE test2_01 ASSELECT SID, NAMEFROM pub.STUDENTWHERE sid NOT IN(SELECT sid FROM pub.STUDENT_COURSE)CREATE TABLE test2_02 ASSELECT SID,NAMEFROM PUB.STUDENTWHERE SID IN(SELECT DISTINCT SIDFROM PUB.STUDENT_COURSEWHERE CID IN(SELECT CID FROM PUB.STUDENT_COURSE WHERESID='200900130417'))CREATE TABLE test2_03 ASselect SID,NAME from PUB.STUDENT where SID in ( select distinct SID from PUB.STUDENT_COURSE where CID in (select CID from PUB.COURSE where FCID='300002') )CREATE TABLE test2_04 ASselect SID,NAME from PUB.STUDENT where SID in ( select distinct SID from PUB.STUDENT_COURSE where CID in (select CID from PUB.COURSE where NAME='操作系统')intersectselect distinct SID from PUB.STUDENT_COURSE where CID in (select CID from PUB.COURSE where NAME='数据结构') )create table test2_05 aswith valid_stu(sid,name) as(select SID,NAME from PUB.STUDENT where AGE=20 and SID in (select SID from PUB.STUDENT_COURSE))select sid,name as name,ROUND(avg(score)) as avg_score,sum(score) as sum_score fromPUB.STUDENT_COURSE natural join valid_stu where SID in (select SID from valid_stu)group by SID,NAMEcreate table test2_06 asselect CID,(max(SCORE))max_score from PUB.STUDENT_COURSE group byCIDcreate table test2_07 asselect SID,NAME from PUB.STUDENT where(NAME not like '张%' and NAME not like '李%' and NAME not like '王%') create table test2_08 aswith xing(value) as (select substr(NAME,1,1) from PUB.STUDENT)select value as second_name,count(value) as p_count from xing group by valuecreate table test2_09 asselect distinct SID,NAME,SCORE from PUB.STUDENT_COURSE natural join PUB.STUDENTwhere CID ='300003';create table test2_10 asselect distinct SID,CID from PUB.STUDENT_COURSE where SID in (select SID from PUB.STUDENT_COURSE) /* 1 */create table test3_01 asselect * from pub.student_31 where regexp_like(SID,'^[0-9]+$')/* 2 */create table test3_02 asselect * from pub.student_31where to_number(substr(BIRTHDAY,8,2))+AGE=112/* 3 */create table test3_03 asselect * from pub.student_31where SEX is null or SEX='男' or SEX='⼥'/* 4 */create table test3_04 asselect * from pub.student_31where DNAME is not null and length(DNAME)>=3 and instr(DNAME,' ')<=0 /* 5 */create table test3_05 asselect * from pub.student_31where regexp_like(CLASS,'^[0-9]{4}$')/* 6 */create table test3_06 asselect * from pub.student_31where regexp_like(SID,'^[0-9]+$')and to_number(substr(BIRTHDAY,8,2))+AGE=112 and (SEX is null orSEX='男' or SEX='⼥')and (DNAME is not null and length(DNAME)>=3 and instr(DNAME,' ')<=0) and regexp_like(CLASS,'^[0-9]{4}$') and (instr(NAME,' ')<=0 and length(NAME)>=2)/* 7 */create table test3_07 asselect * from pub.student_course_32 where SID in (select SID from pub.student)/* 8 */create table test3_08 asselect * from pub.student_course_32 natural join pub.teacher_course /* 9 */create table test3_09 asselect * from pub.student_course_32 where SCORE>=0 and score <=100 /* 10 */create table test3_10 asselect * from pub.student_course_32 natural join pub.teacher_course where SID in (select SID from pub.student) and CID in (select CID from pub.course) and TID in (select TID from pub.teacher) and SCORE>=0 and score <=100/*-------------- test4_01 --------------*/ create table test4_01 as select * from pub.student_41;ALTER TABLE test4_01 ADD sum_score number;update test4_01 set sum_score=(select sum(score) from pub.student_course a wheretest4_01.sid=a.sid group by sid);/*-------------- test4_02 --------------*/create table test4_02 as select * from pub.student_41;ALTER TABLE test4_02 ADD avg_score number;update test4_02 set avg_score =(select round(avg(score),1) from pub.student_course a wheretest4_02.sid=a.sidgroup by sid);/*-------------- test4_03 --------------*/create table test4_03 as select * from pub.student_41;ALTER TABLE test4_03 ADD sum_credit number;update test4_03 set sum_credit =(with a as (select * from pub.student_course natural join pub.course) (select sum(credit) from awhere SCORE>=60 and test4_03.sid=a.sid group by sid) )/* 4 */create table test4_04 as select * from pub.student_41;update test4_04 set dname=(select did from pub.department wheretest4_04.dname=pub.department.dname)where dname in (select dname from pub.department);/* 5 */create table test4_05 as select * from pub.student_41;ALTER TABLE test4_05 add did varchar(2);ALTER TABLE test4_05 ADD sum_score number;ALTER TABLE test4_05 ADD avg_score number;ALTER TABLE test4_05 ADD sum_credit number;update test4_05 set sum_score=(select sum(score) from pub.student_course a wheretest4_05.sid=a.sid group by sid);update test4_05 set avg_score =(select round(avg(score),1) from pub.student_course a wheretest4_05.sid=a.sidgroup by sid);update test4_05 set sum_credit =(with a as (select * from pub.student_course natural join pub.course) (select sum(credit) from awhere SCORE>=60 and test4_05.sid=a.sid group by sid));update test4_05 set did =(select did from pub.department wherepub.department.dname=test4_05.dname) where dname in (select dname from pub.department);update test4_05 set did =(select did from pub.department_41 where pub.department_41.dname=test4_05.dname) where dname in (select dname from pub.department_41);update test4_05 set did ='00' where did is null;/* 6 */create table test4_06 as select * from pub.student_42;update test4_06 set name=replace(name,' ','');/* 7 */create table test4_07 as select * from pub.student_42;update test4_07 set SEX=substr(trim(SEX),1,1) where length(SEX)<>1;/* 8 */create table test4_08 as select * from pub.student_42;update test4_08 set CLASS=substr(CLASS,1,4) where length(CLASS)<>4;/* 9 */create table test4_09 as select * from pub.student_42;update test4_09 set AGE=112-to_number(substr(BIRTHDAY,8,2)) where AGE is null;/* 10 */create table test4_10 as select * from pub.student_42;update test4_10 set name=replace(name,' ',''),DNAME=replace(DNAME,' ','');update test4_10 set SEX=substr(trim(SEX),1,1) where length(SEX)<>1;update test4_10 set CLASS=substr(CLASS,1,4) where length(CLASS)<>4;update test4_10 set AGE=112-to_number(substr(BIRTHDAY,8,2)) where AGE is null;create table test5_10(test varchar(20),age numeric (3));insert into test5_10 values('结果1',88);insert into test5_10 values('结果2',90);insert into test5_10 values('结果3',90);insert into test5_10 values('结果4',86);insert into test5_10 values('结果5',90);insert into test5_10 values('结果6',90);insert into test5_10 values('结果7',86);insert into test5_10 values('结果8',86);insert into test5_10 values('结果9',76);insert into test5_10 values('结果10',86);/* 1 */create view test6_01 asselect sid,name,dname from pub.studentwhere age<20 and dname='物理学院' order by sid/* 2 */create view test6_02 aswith temp_table(sid,ss) as(select sid,sum(score) from pub.student_course group by sid) select sid,name,dname,ss as sum_score from pub.student natural join temp_table where class='2009' and dname='软件学院'/* 3 */create view test6_03 asselect * from pub.student_course natural join pub.student whereclass='2010' and dname='计算机科学与技术学院' and cid =(select cid from pub.course where name='操作系统')/* 4 */create view test6_04 asselect sid,/doc/06a78e778662caaedd3383c4bb4cf7ec4bfeb671.html from pub.student_course natural join pub.studentwhere score>90 and cid =(select cid from pub.course where name='数据库系统')/* 5 */create view test6_05 asselect sid,cid,name,score from pub.student_course natural joinpub.coursewhere sid in (select sid from pub.student where name='李龙')/* 6 */create view test6_06 aswith a as (select sid,count(*) as totc from pub.student_course group by sid)select sid,name from pub.student where sid in (select sid from a where totc>=(selectcount(*) from pub.course))/* 7 */create view test6_07 asselect * from test6_06 where sid not in (select distinct sid from pub.student_course where sid in(select sid from test6_06)and score<60)/* 8 */create view test6_08 asselect cid,name from pub.coursewhere fcid in (select cid from pub.course where credit=2)/* 9 */create view test6_09 aswith a(sid,sum_credit) as(select sid,sum(credit) as sum_creditfrom pub.student_course natural join pub.course where SCORE>=60 group by sid)select sid,name,sum_credit from pub.student natural join a where class='2010' and dname='化学与化⼯学院'/* 10 */create view test6_10 asselect cid,name from pub.coursewhere fcid in(select cid from pub.course where fcid is not null)/* 1 */create table test7_01 asselect First_name,count(*) as frequency from( select substr(NAME,2) as First_name from pub.student ) group by First_name /* 2 */create table test7_02 asselect letter,count(*) as frequency from(select substr(NAME,2,1) as letter from pub.studentunion allselect substr(NAME,3) as letter from pub.student wherelength(Name)=3 ) group by letter/* 3 */create table test7_03 aswith a as (select sid,sum(credit) as tot from pub.student_course natural join pub.course where SCORE>=60 group by sid),b as (select * from pub.student natural left join a),c as (select dname,class,count(sid) as p_count from b group by (dname,class)),d as (select dname,class,count(sid) as p_count1 from b where tot>=10 group by (dname,class)),e as (select dname,class,count(sid) as p_count2 from b where tot<10 or tot is null group by (dname,class))select * from c natural left join d natural join eupdate test7_03 set p_count1=0 where p_count1 is null;/* 4 */create view test7_04_v1 asselect * from pub.student natural left join(select sid,sum(credit) as tot from pub.student_course natural join pub.course where SCORE>=60 group by sid);create table test7_04 aswith b as (select * from test7_04_v1),c as (select dname,class,count(sid) as p_count from b group by (dname,class)),d as (select dname,class,count(sid) as p_count1 from b where class<=2008 and tot>=8 group by (dname,class)unionselect dname,class,count(sid) as p_count1 from b where class>2008 and tot>=10 group by (dname,class))select * from c natural left join d where dname is not null;alter table test7_04 add p_count2 NUMBER;update test7_04 set p_count2 = p_count - p_count1;/* 1 */create table test8_01 aswith A as(select DNAME,SCORE,NAME from(select CID,DNAME,SCORE from pub.student_course natural joinpub.student where dnameis not null) natural join pub.course),B as(select dname,round(avg(score)) as avg_ds_score from A where name='数据结构' groupby dname),C as(select dname,round(avg(score)) as avg_os_score from A where name='操作系统' groupby dname)select * from B natural join C/* 2 */create table test8_02 aswith a as(select sid from pub.student_course where cid=(select cid frompub.course where name='操作系统') intersectselect sid from pub.student_course where cid=(select cid frompub.course where name='数据结构')),b as (select a.sid,score as ds_score from pub.student_course,a where pub.student_course.sid=a.sid and cid=(select cid from pub.course where name='数据结构')),c as (select a.sid,score as os_score from pub.student_course,a where pub.student_course.sid=a.sid and cid=(select cid from pub.course where name='操作系统'))select sid,name,dname,ds_score,os_score from b natural join cnatural join pub.student where dname='计算机科学与技术学院' /* 3 */create table test8_03 aswith a as(select sid from pub.student_course where cid=(select cid frompub.course where name='操作系统') unionselect sid from pub.student_course where cid=(select cid frompub.course where name='数据结构')),b as (select a.sid,score as ds_score from pub.student_course,a where pub.student_course.sid=a.sid and cid=(select cid from pub.course where name='数据结构')),c as (select a.sid,score as os_score from pub.student_course,a wherepub.student_course.sid=a.sid and cid=(select cid from pub.course where name='操作系统'))select sid,name,dname,ds_score,os_score from b natural full join c natural join pub.student where dname='计算机科学与技术学院' /* 4 */create table test8_04 aswith a as(select sid from pub.student_course where cid=(select cid frompub.course where name='操作系统') unionselect sid from pub.student_course where cid=(select cid frompub.course where name='数据结构')),b as (select a.sid,score as ds_score from pub.student_course,a where pub.student_course.sid=a.sid and cid=(select cid from pub.course where name='数据结构')),c as (select a.sid,score as os_score from pub.student_course,a where pub.student_course.sid=a.sid and cid=(select cid from pub.course where name='操作系统'))select sid,name,dname,ds_score,os_score from b natural full join c natural full join pub.student where dname='计算机科学与技术学院'。

实验四酸碱解离平衡和沉淀溶解平衡

实验四酸碱解离平衡和沉淀溶解平衡

山东大学西校区实验报告姓名危诚年级班级公共卫生1班实验四酸碱解离平衡和沉淀-溶解平衡实验目的:了解弱酸与弱碱的解离平衡及其平衡移动原理;掌握缓冲溶液恶性质及缓冲溶液的配置方法;掌握难溶点解释的沉淀-溶解平衡及溶度积规则的运用;学习液体及固体的分离以及pH试纸的使用等基本操作。

实验原理:一元弱酸中的浓度:一元弱碱中的浓度:缓冲溶液的pH值:;难溶强电解质的标准溶度积常数:实验器材:离心机,离心试管,试管,烧杯,玻璃棒,量筒,试管架,滴管,药匙实验药品:甲基橙,酚酞,广泛pH试纸,精密pH试纸(pH=3.8~5.4;pH=5.5~9.0)实验过程:(一)测定溶液pH用广泛pH试纸测量0.1mol/L的溶液,0.1mol/L的溶液和的0.1mol/L溶液的pH。

测得分别为pH=1.0; pH=13; pH=8.0。

通过计算,易知理论值分别为pH=1.0; pH=13.0; pH=8.2552。

(二)同离子效应(1)取两支试管A、B,各加入等量0.1mol/L的溶液和1滴甲基橙溶液,摇匀后观察溶液颜色为橙红色。

然后向A管中加入少量固体,摇匀后观察,与B管溶液颜色比较,发现A管中液体颜色变黄。

解释:在A管原溶液中达到解离平衡显酸性使甲基橙为橙红色,加入固体后,溶液中增多,发生同离子效应,反应逆向移动,使水中氢离子浓度减小,pH上升,甲基橙显黄色。

(2)取两支试管A、B,各加入等量0.1mol/L的溶液和1滴酚酞指示剂,摇匀观察溶液颜色为红色。

向A管中加入少量固体,摇匀观察颜色,A管中红色褪去。

解释:在A管原溶液中达到解离平衡显碱性使酚酞为红色,加入固体后,溶液中增多,发生同离子效应,反应逆向移动,使水中氢氧根离子浓度减小,pH下降,酚酞红色褪去。

(3)取两支试管A、B,各加入等量0.1mol/L的溶液,再向A管中加入适量饱和溶液,再向两支试管中各加入适量2mol/L的溶液,摇匀观察,A管无明显变化,B管中出现白色浑浊。

国开学习网电大数据库应用技术第四次形考作业实验结果

国开学习网电大数据库应用技术第四次形考作业实验结果

国开学习网电大数据库应用技术第四次形考作业实验结果一、实验目的1. 加深对数据库原理与技术的理解。

2. 巩固数据库设计、建立及查询的基本技能。

3. 提高学生运用大数据库技术解决实际问题的能力。

二、实验要求1. 独立完成实验,确保实验数据的准确性与合理性。

2. 按照实验指导书要求,完成实验报告的撰写。

3. 实验报告需包含实验目的、实验环境、实验步骤、实验结果及实验总结。

三、实验环境1. 操作系统:Windows 102. 数据库管理系统:MySQL 8.03. 编程语言:Python 3.84. 开发工具:Visual Studio Code四、实验步骤1. 数据库设计:根据实验要求,设计合适的数据库表结构。

- 创建学生表(student),包含学号(id)、姓名(name)、性别(gender)、年龄(age)等字段。

- 创建课程表(course),包含课程编号(id)、课程名称(name)、学分(credit)等字段。

- 创建选课表(elective),包含学生编号(student_id)、课程编号(course_id)、成绩(score)等字段。

2. 数据库建立:在MySQL中执行SQL语句,创建实验所需的数据库及表。

CREATE DATABASE IF NOT EXISTS education;USE education;CREATE TABLE IF NOT EXISTS student (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50),gender ENUM('男', '女'),age INT);CREATE TABLE IF NOT EXISTS course (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(100),credit INT);CREATE TABLE IF NOT EXISTS elective (student_id INT,course_id INT,score INT,PRIMARY KEY (student_id, course_id),FOREIGN KEY (student_id) REFERENCES student(id), FOREIGN KEY (course_id) REFERENCES course(id));3. 数据查询:运用SQL语句进行数据查询。

数据库实验4实验报告

数据库实验4实验报告

数据库实验4实验报告一、实验目的本次数据库实验 4 的主要目的是深入了解和掌握数据库中的索引、存储过程以及事务处理等关键技术,通过实际操作和实践,提高对数据库管理系统的运用能力,以及解决实际问题的能力。

二、实验环境本次实验使用的数据库管理系统为 MySQL 80,操作系统为Windows 10。

实验在个人电脑上进行,配置为英特尔酷睿 i5 处理器,8GB 内存。

三、实验内容与步骤(一)索引的创建与使用1、首先,创建了一个名为`students` 的表,包含`id`(主键,自增)、`name`(姓名)、`age`(年龄)、`grade`(年级)等字段。

```sqlCREATE TABLE students (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(50),age INT,grade VARCHAR(20));```2、向表中插入了一些示例数据,用于后续的实验操作。

```sqlINSERT INTO students (name, age, grade)VALUES ('张三', 18, '大一'),('李四', 19, '大二'),('王五', 20, '大三'),('赵六', 21, '大四');```3、为`name` 字段创建了一个普通索引,观察查询性能的变化。

```sqlCREATE INDEX idx_name ON students (name);```4、执行查询语句,对比创建索引前后的查询时间。

```sqlSELECT FROM students WHERE name ='张三';```(二)存储过程的创建与调用1、创建了一个简单的存储过程,用于计算两个数的和。

```sqlDELIMITER //CREATE PROCEDURE add_numbers(IN num1 INT, IN num2 INT, OUT result INT)BEGINSET result = num1 + num2;END//DELIMITER ;```2、调用存储过程,传递参数并获取结果。

2024年数据库实习报告范文5篇

2024年数据库实习报告范文5篇

2024年数据库实习报告范文2024年数据库实习报告范文精选5篇(一)以下是一个关于2024年数据库实习报告的范文:2024年数据库实习报告一、实习内容和目标作为2024年暑期实习的一部分,我参加了一家互联网科技公司的数据库实习。

实习期间,我主要负责数据库的管理和优化工作。

我的目标是通过实习体验,提升自己在数据库领域的理论知识和实际操作技能。

二、实习过程和收获1. 熟悉数据库系统在实习开始之前,我对数据库系统进行了较为深入的学习,包括关系数据库、SQL语言和数据库设计原则等方面的知识。

这为我后续的实习工作打下了良好的基础。

2. 数据库管理在实习过程中,我负责了公司数据库的日常管理工作。

包括数据库的备份、恢复以及性能监控等。

通过实际操作,我更加深入地了解了数据库管理的重要性,也学会了如何处理一些常见的数据库问题。

3. 数据库优化在实习期间,我也参与了数据库的优化工作。

通过分析系统运行情况和数据库性能指标,我提出了一些优化建议,如索引的创建和优化、SQL语句的优化等。

这些优化措施有效地提升了系统的性能和响应速度。

4. 项目实践除了日常的数据库管理和优化工作,我还参与了一个数据库相关的项目。

在这个项目中,我负责设计和实现数据库的结构,并编写相关的SQL语句。

通过这个实践项目,我在数据库设计和开发方面获得了更多的实际经验。

三、实习总结和反思通过这次数据库实习,我不仅提升了自己的理论知识,还学会了如何将这些知识应用到实际工作中。

同时,我也意识到数据库管理和优化工作的重要性,以及在项目中正确使用数据库的必要性。

在未来的学习和工作中,我将继续加强对数据库领域的学习和探索,不断提升自身的能力。

四、感谢与致谢在实习期间,我得到了公司和导师的大力支持和帮助,特此表示衷心的感谢。

感谢他们为我提供了这次宝贵的实习机会,并给予了我充分的指导和鼓励。

同时,也要感谢我的同事们,在他们的帮助下我能够更快地适应团队工作,并取得了一定的成绩。

山东大学数据结构实验报告四

山东大学数据结构实验报告四

山东大学数据结构实验报告四一、引言数据结构实验报告四旨在通过实践巩固和应用所学的数据结构知识,培养学生的编程能力和问题解决能力。

本次实验的主要目的是设计并实现一个基于数据结构的应用程序,通过使用合适的数据结构和算法解决实际问题。

二、实验内容本次实验要求设计一个程序,实现以下功能:1. 输入一组整数,建立一个二叉排序树;2. 实现二叉排序树的查找、插入和删除操作;3. 对建立的二叉排序树进行中序遍历,并输出排序结果。

三、实验步骤1. 设计二叉排序树的数据结构在开始编写代码之前,我们需要先设计二叉排序树的数据结构。

二叉排序树的每个节点包含一个整数值和两个指针,分别指向左子树和右子树。

2. 实现二叉排序树的建立首先,我们需要实现一个函数,用于创建二叉排序树。

该函数根据输入的一组整数,逐个插入到二叉排序树中。

具体步骤如下:- 创建一个空的二叉排序树;- 依次读取输入的整数,并将其插入到二叉排序树中的合适位置;- 返回建立好的二叉排序树。

3. 实现二叉排序树的查找在二叉排序树中查找一个特定的值,可以使用递归或迭代的方式实现。

具体步骤如下:- 如果当前节点为空,返回空指针;- 如果当前节点的值等于目标值,返回当前节点;- 如果目标值小于当前节点的值,递归地在左子树中查找;- 如果目标值大于当前节点的值,递归地在右子树中查找。

4. 实现二叉排序树的插入在二叉排序树中插入一个新的值,需要保持二叉排序树的有序性。

具体步骤如下:- 如果树为空,将新值作为根节点插入;- 如果新值小于当前节点的值,将新值插入到左子树中;- 如果新值大于当前节点的值,将新值插入到右子树中。

5. 实现二叉排序树的删除在二叉排序树中删除一个特定的值,需要保持二叉排序树的有序性。

具体步骤如下:- 如果树为空,返回空指针;- 如果目标值小于当前节点的值,递归地在左子树中删除;- 如果目标值大于当前节点的值,递归地在右子树中删除;- 如果目标值等于当前节点的值,进行删除操作。

山东大学数据结构实验报告四

山东大学数据结构实验报告四

山东大学数据结构实验报告四实验报告四:堆排序算法的设计与实现一、引言堆排序是一种基于二叉堆的排序算法,其具有时间复杂度为O(nlogn)的特点,适用于大规模数据的排序。

本实验旨在通过设计与实现堆排序算法,掌握堆排序的原理和实现过程,并分析其时间复杂度和空间复杂度。

二、实验目的1. 理解堆排序的基本原理;2. 掌握堆排序算法的实现过程;3. 分析堆排序算法的时间复杂度和空间复杂度。

三、实验内容1. 设计堆排序算法的流程;2. 根据设计的流程,编写堆排序算法的代码;3. 使用随机生成的数据进行测试,并记录排序结果;4. 分析堆排序的时间复杂度和空间复杂度。

四、实验步骤1. 设计堆排序算法的流程:1.1 创建一个最大堆(Max Heap);1.2 将堆顶元素与最后一个元素交换;1.3 对剩余元素进行堆调整,使其满足最大堆的性质;1.4 重复步骤2和3,直到所有元素排序完成。

2. 根据设计的流程,编写堆排序算法的代码:```java// 堆排序算法public class HeapSort {public static void sort(int[] arr) {int n = arr.length;// 构建最大堆for (int i = n / 2 - 1; i >= 0; i--)heapify(arr, n, i);// 依次将堆顶元素与最后一个元素交换,并重新调整堆 for (int i = n - 1; i >= 0; i--) {int temp = arr[0];arr[0] = arr[i];arr[i] = temp;heapify(arr, i, 0);}}// 调整堆public static void heapify(int[] arr, int n, int i) {int largest = i; // 最大元素的索引int left = 2 * i + 1; // 左子节点的索引int right = 2 * i + 2; // 右子节点的索引// 如果左子节点比最大元素大,则更新最大元素的索引if (left < n && arr[left] > arr[largest])largest = left;// 如果右子节点比最大元素大,则更新最大元素的索引if (right < n && arr[right] > arr[largest])largest = right;// 如果最大元素的索引不是当前节点,则交换当前节点和最大元素,并继续调整堆if (largest != i) {int swap = arr[i];arr[i] = arr[largest];arr[largest] = swap;heapify(arr, n, largest);}}}```3. 使用随机生成的数据进行测试,并记录排序结果:```javapublic class Main {public static void main(String[] args) {int[] arr = generateRandomData(100); // 生成100个随机数 System.out.println("排序前:");printArray(arr);HeapSort.sort(arr); // 使用堆排序算法进行排序System.out.println("排序后:");printArray(arr);}// 生成随机数据public static int[] generateRandomData(int n) {int[] arr = new int[n];Random random = new Random();for (int i = 0; i < n; i++) {arr[i] = random.nextInt(1000);}return arr;}// 打印数组public static void printArray(int[] arr) {for (int i : arr) {System.out.print(i + " ");}System.out.println();}}```排序前:567 245 789 123 456 789 234 567 890 123 ...排序后:1 2 3 4 5 6 7 8 9 10 ...4. 分析堆排序的时间复杂度和空间复杂度:- 时间复杂度:堆排序的建堆过程的时间复杂度为O(n),每次调整堆的时间复杂度为O(logn),共需要调整n-1次。

山东大学第三四次数字信号处理实验报告

山东大学第三四次数字信号处理实验报告

數字信號處理實驗報告實驗三、DFT和FFT1、實驗目の:(1)掌握DFT/FFT及其性質(2)掌握采用DFT/FFT做信號頻譜分析の方法(3)掌握利用DFT/FFT做序列の圓周卷積和線性卷積の方法2、實驗內容(1)用Matlab編程實現pp167 習題3.6。

在同一幅圖上表示你の結果。

實驗程序:clc;clear all;close all;b1=[2,1,4,2,3];[H1,w1]=freqz(b1,1,'whole'); %用freqz函數求x(n)のDTFT變換subplot(2,1,1);plot(w1,abs(H1));hold on;y1=fft(b1,5); %用fft函數求x(n)のDFT變換n1=0:4;k1=2*pi*n1/5;stem(k1,abs(y1));title('對x(n)進行DTFT和DFT變換')b2=[2,1,4,2,3 0 0 0];[H2,w2]=freqz(b2,1,'whole');subplot(2,1,2);plot(w2,abs(H2));hold on;y2=fft(b2,8);n2=0:7;k2=2*pi*n2/8;stem(k2,abs(y2))title('對補零後のx(n)進行DTFT和DFT變換')實驗結果:X(k)等於X(e^(jw))中w=2*π*k/5,並且對x(n)補零後のDFT抽樣點比之前更多。

(2)用Matlab編程實現pp168 習題3.11。

畫圖表示你の結果。

實驗程序:clc;clear all;close all;n=0:71;xn=cos(pi*n/6)+5*cos(pi*n/3)+4*sin(pi*n/7);y=fft(xn,72); %對x(n)進行72點DFTstem(n,abs(y));title('對x(n)做72點DFT');實驗結果:x(n)の周期為84,對序列進行72點截斷不能得到周期序列,進行頻譜分析時,其頻譜の周期延拓不是周期序列,所以會產生頻譜泄露。

山东大学数据库实验4

山东大学数据库实验4
根据院系名称到pub.department或者pub.department_41中,找到对应编号,填写到院系编号中,如果都没有对应的院系,则填写为00。
create table test4_04 as select * from pub.student_41
alter table test4_04
add avg_score numeric(4,1)
alter table test4_03
add sum_credit int
alter table test4_03
add did varchar(2)
create table use as
select sid,sum(credit) sumcredit
8. 将pub用户下的Student_42及数据复制到主用户的表test4_08中,对表中的数据进行整理,修复那些不规范的数据:
对班级列进行规范(需要先确定哪些班级不规范)。
9. 将pub用户下的Student_42及数据复制到主用户的表test4_09中,对表中的数据进行整理,修复那些不规范的数据:
年龄为空值的根据出生日期设置学生年龄(年龄=2012-出生年份),年龄不为空值的不要改变。
10. 将pub用户下的Student_42及数据复制到主用户的表test4_10中,对表中的数据进行整理,修复那些不规范的数据:
(1) 剔除姓名列中的所有空格;
(2) 剔除院系名称列中的所有空格;
(3) 对性别列进行规范(需要先确定哪些性别数据不规范,也就是那些和大多数不一样的就是不规范的);
where test4_03.sid=use.sid)
4. 将pub用户下表student_41及数据复制到主用户的表test4_04中,使用alter table语句为表增加五个列:“总成绩:sum_score”、 “平均成绩:avg_score”、“总学分:sum_credit”、“院系编号:did varchar(2) ”。

山东大学-数据结构实验报告-矩阵与散列表

山东大学-数据结构实验报告-矩阵与散列表

山东大学计算机科学与技术学院数据结构课程实验报告了Input函数和Output函数。

对问题三,仿课本所述,定义Term类作为SparseMatrix类的友元类,包含行、列、值三个要素的成员变量,用Term类的数组实现稀疏矩阵的行主映射存储。

查找行为的实现方式是,找到位于目标元素前一行的最后一个元素,再从这个元素开始向下搜索,直到找到和目标元素同一行但是列数小于目标元素的元素a[k-1],然后决定下一步的行为————插入一个新项Term作为a[k]并将已有元素向后移位,还是修改已存在的项a[k]。

以此原理编写了Store和Retrieve函数,并扩展编写了Input函数和Output函数。

对问题四,仿照课本例子编写了有序链表类SortedChain、开放寻址的散列表类HashTable、基于有序链表链接的散列表类ChainHashTable,并对这三个类分别扩展编写了Output函数。

3.测试结果(测试输入,测试输出)问题一:问题二:上图显示了输入不符合下三角方阵约束时,抛出异常并退出程序。

上图是正常运行的结果。

问题三:普通的输入和输出操作如下:矩阵相加:矩阵转置:问题四:以上图的数据为例。

从346就应该在链表链接的散列表上看到开放寻址解决冲突的例子。

返回开放寻址的输出段,可以看到符合预期的结果:4.实现源代码(程序风格清晰易理解,有充分的注释)/** TridiagonalMatrix.h** Created on: Nov 22, 2015* Author: xudp*/#ifndef TRIDIAGONALMATRIX_H_#define TRIDIAGONALMATRIX_H_#include<iostream>usingnamespace std。

template<class T>class TridiagonalMatrix {public:// 1、创建三对角矩阵类,采用按列映射方式,提供 store 和 retrieve 方法。

北邮数据库第四次实验

北邮数据库第四次实验

数据库第四次实验报告学院:班级:姓名:学号:实验四数据库的查询实验(两次内容)1.简单查询:(第一部分的实验)实验要求:(1) 查询班号为g00401班的学生的学号和姓名;(2) 查询“数据库开发技术”课程的学分;(3) 查询选修了课程编号为“dep04_s003”的学生的学号和成绩,并将成绩按降序输出;(4) 查询学号为“g”的学生选修的课程编号和成绩;(5) 查询选修了课程编号为“dep04_s001”且成绩高于85分的学生的学号和成绩。

实验步骤:(下面用代码、截图以与注释来体现)(1)查询班号为g00401班的学生的学号和姓名;代码为:select student_id,student_namefrom studentwhere class_id='g00401';截图为:因为student 表里并没有class_id=’g00401’这一项,所以查询结果为空,没有显示出该元组的值。

(2) 查询“数据库开发技术”课程的学分;代码为:select creditfrom coursewhere course_name='SQL Server数据库开发技术';截图为:可以看到结果查询结果是正确的。

(3)查询选修了课程编号为“dep04_s003”的学生的学号和成绩,并将成绩按降序输出;代码为:select student_id,gradefrom student_coursewhere course_id='dep04_s003'order by grade desc截图为:可以看到总共输出了7个符合条件的结果,分数按降序排列,实验完成。

(4) 查询学号为“g”的学生选修的课程编号和成绩;代码为:select course_id,gradefrom student_coursewhere student_id='g9940205';截图为:结果正确(5) 查询选修了课程编号为“dep04_s001”且成绩高于85分的学生的学号和成绩。

2024年数据库实训心得体会(精选8篇)

2024年数据库实训心得体会(精选8篇)

2024年数据库实训心得体会(精选8篇)(经典版)编制人:__________________审核人:__________________审批人:__________________编制单位:__________________编制时间:____年____月____日序言下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。

文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!并且,本店铺为大家提供各种类型的经典范文,如合同协议、工作计划、活动方案、规章制度、心得体会、演讲致辞、观后感、读后感、作文大全、其他范文等等,想了解不同范文格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!Moreover, our store provides various types of classic sample essays, such as contract agreements, work plans, activity plans, rules and regulations, personal experiences, speeches, reflections, reading reviews, essay summaries, and other sample essays. If you want to learn about different formats and writing methods of sample essays, please stay tuned!2024年数据库实训心得体会(精选8篇)当我们备受启迪时,常常可以将它们写成一篇心得体会,如此就可以提升我们写作能力了。

山东大学数据库实验完整答案

山东大学数据库实验完整答案

实验一:1.创建学生信息表(学生编号、姓名、性别、年龄、出生日期、院系名称、班级):test1_student:sid char 12 not null、name varchar 10 not null、sex char 2、age int、Birthday date、dname varchar 10、class varchar(10)。

create table test1_student(sid char(12)not null,name varchar(10)not null,sex char(2),age int,Birthday date,dname varchar(30),class varchar(10));create table test1_teacher(tid char(6)not null,name varchar(10)not null,sex char(2),age int,dname varchar(30));create table test1_course(cid char(6)not null,name varchar(40)not null, fcid char(6),credit numeric(4,1));create table test1_student_course (sid char(12)not null,cid char(6)not null,score numeric(5,1),tid char(6));create table test1_teacher_course (tid char(6)not null,cid char(6)not null)insert into test1_student values(200800020101,'王欣','女',19,to_date('19940202','yyyymmdd'),'计算机学院','2010'); insert into test1_student values(200800020102,'李华','女',20,to_date('19950303','yyyymmdd'),'软件学院','2009'); insert into test1_student values(200800020103,'赵岩','男',21,to_date('19960404','yyyymmdd'),'软件学院','2009'); delete from test1_student where name='王欣','李华','赵岩'; select * from test1_student;insert into test1_teacher values(100101,'张老师','男',44,'计算机学院');insert into test1_teacher values(100102,'李老师','女',45,'软件学院');insert into test1_teacher values(100103,'马老师','男',46,'计算机学院');insert into test1_course values(300001,'数据结构',null,2); insert into test1_course values(300002,'数据库',300001,2.5); insert into test1_course values(300003,'操作系统',300001,4);insert into test1_student_course values(200800020101,300001,91.5,100101);insert into test1_student_course values(200800020101,300002,92.6,100102);insert into test1_student_course values(200800020101,300003,93.7,100103);insert into test1_teacher_course values(100101,300001); insert into test1_teacher_course values(100102,300002); insert into test1_teacher_course values(100103,300003);实验二:select * from all_tables where owner='PUB'1.create table test2_01 as select sid ,namefrom pub.studentwhere sid not in(select sid from pub.student_course)2.create table test2_02 as select distinct student.sid,namefrom pub.student_course,pub.studentwhere student.sid=student_course.sid and cid in (select cid from pub.student_coursewhere sid=200900130417)3.create table test2_03 as select distinctstudent.sid,from pub.student_course,pub.student,pub.coursewhere student.sid=student_course.sid and course.cid=student_course.cid and fcid=‘300002’;4.create table test2_04 as select sid,namefrom pub.studentwhere sid in(select sidfrom pub.student_course,pub.coursewhere student_course.cid=course.cid and name='操作系统')and sid in(select sidfrom pub.student_course,pub.coursewhere student_course.cid=course.cidand name ='数据结构')5.create table test2_05 as select student.sid,name,cast(avg(score) as numeric(5,0)) avg_score,sum(score) sum_scorefrom pub.student,pub.student_coursewhere student.sid=student_course.sid and student.age=20 group by student.sid,name若为group by student_course.sid,报错不是group by 表达式?因select中没有聚集的属性只能是出现在group by里面的属性numeric为什么是(5,0)cast中方法,因为四舍五入到各位age的20可以不加单引号?使用CAST: CAST ( expression AS data_type )使用CONVERT: CONVERT (data_type[(length)], expression [, style])6.create table test2_06 as select cid,max(score) max_score from pub.student_coursegroup by cid7.create table test2_07 as select sid,namefrom pub.studentwhere name not like’张%’and name not like’王%’and name not like ‘李%’8.create table test2_08 as select substr(name,1,1)second_name,count(*) p_countfrom pub.studentgroup by substr(name,1,1)SUBSTR(string,start,count)取子字符串,从start开始(如果start是负数,从尾部开始),取count个.上述就是PL/SQL函数的解释,从中可以看出,是1开始从左开始取数;如果是负值,那么就从右开始取数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

實驗4 視圖操作
實驗目の:掌握創建、刪除視圖のSQL語句の用法,掌握使用企業管理器創建、視圖の方法。

實驗准備:
1)了解創建視圖方法。

2)了解修改視圖のSQL 語句の語法格式。

實驗內容:
1)使用企業管理器創建視圖
a)在pubs數據庫中以authors表為基礎,建立一個名為CA_authorの視圖,
使用該視圖時,將顯示所有state為CAの作者の基本信息。

2)使用SQL語句創建視圖
a)在查詢分析器中利用author表建立一個每個作者のID,lname,fname,
phone,addressの視圖S_author。

b)建立一個employee_date視圖,利用employee表中信息,顯示1991年
1月1日之後雇傭の雇員のid,name,minit,job_id。

3)刪除視圖
a)使用企業管理器S_author視圖
b)使用SQL語句刪除CA_author、employee_date視圖
實驗要求:
用不同の方法創建視圖。

實驗步驟如下:
一、使用企業管理器創建視圖
a )在pubs數據庫中以authors表為基礎,建立一個名為CA_author の視圖,使用該視圖時,將顯示所有state為CAの作者の基本信息。

①右鍵點擊pubs數據庫文件下の視圖,選擇“新建視圖”,在彈出來の“添加表”中添加表authors。

②在“添加表”一欄中添加表authors後點擊“關閉”,並全選author表中所有項目。

③點擊保存,從彈出來の“選擇名稱”框中輸入視圖名稱“CA_author”。

④添加名為CA_author の視圖成功。

⑤顯示所有state為CAの作者の基本信息。

SQL語句如下:
select*from dbo.CA_author
where state='CA'
其中state為CAの作者の基本信息如下圖。

二、使用SQL語句創建視圖
a)在查詢分析器中利用author表建立一個每個作者のID,lname,
fname,phone,addressの視圖S_author。

b)建立一個employee_date視圖,利用employee表中信息,顯示
1991年1月1日之後雇傭の雇員のid,name,minit,job_id。

a)新建查詢,輸入創建視圖S_authorのSQL語句。

SQL語句如下:
create view S_author as
select au_id,au_lname,au_fname,phone,address
from dbo.authors
在下圖中可以看到視圖S_author創建成功了。

*from dbo.S _author)。

b)新建查詢,輸入創建視圖employee_dateのSQL語句。

SQL語句如下:
create view employee_date as
select emp_id,fname,minit,job_id
from dbo.employee
where hire_date >='1991-01-01 00:00:00.000'
在下圖中可以看到視圖employee_date創建成功了。

顯示視圖employee_date中雇員のid,name,minit,job_idの信息(SQL語句:select*from dbo.employee_date)。

三、刪除視圖
a) 使用企業管理器刪除S_author視圖
b) 使用SQL語句刪除CA_author、employee_date視圖a)在視圖S_author那裏右鍵點擊並選擇刪除。

點擊確定便可以刪除視圖S_author
b) 使用SQL語句刪除CA_author、employee_date視圖
SQL語句如下:
drop view dbo.employee_date,dbo.CA_author
點擊“執行”之後,再刷新視圖,可以看到視圖中已經沒有CA_author、employee_date視圖了。

四、實驗心得
這次實驗進行の還算順利,我自己到圖書館借了一本SQL Server
入門書籍,裏面有關於視圖操作の詳細步驟,所以這次實驗完成の很
快。

相关文档
最新文档