这是第二次上机内容以及结果,大家在运行程序的时候,第一次是可以直接运行的,但第二次运行的时候要把原来建的表删除,否则回显示表已存在的错误。所有完整代码在我空间的代码库中均存放,可以直接运行。

上机实验三 基本表的建立与修改

一、实习目的

通过建立基本表和向表中输入记录,加深对关系数据库模型中型与值概念的理解;学会对基本表进行修改、删除和建立索引等基本操作。

二、实习准备

1.复习Create table, Create index, Altertable, Drop table等命令。

2.复习Insert, Update,Delete命令的使用。

三、实验内容

在查询分析器中用Create table命令在实验二创建的GradeManager数据库中定义基本表:学生表(Student),课程表(Course),班级表(Class),成绩表(Grade)。表结构如下:

学生表

属性名

数据类型

可否为空

含义

Sno

Char(7)

学号(唯一)

Sname

Varchar(20)

学生姓名

Ssex

Char(2)

性别

Sage

Smallint

年龄

Clno

Char(5)

所在班级

课程表

属性名

数据类型

可否为空

含义

Cno

Char(1)

课程号(唯一)

Cname

Varchar(20)

课程名

Credit

Smallint

学分

班级表

属性名

数据类型

可否为空

含义

Clno

Char(5)

班级号(唯一)

Speciality

Varchar(20)

班级所在专业

Inyear

Char(4)

入学年份

Number

Int

班级人数

Monitor

Char(7)

班长学号

成绩表

属性名

数据类型

可否为空

含义

Sno

Char(7)

学号

Cno

Char(1)

课程号

Gmark

Numeric(4,1)

成绩

上述四个表中的数据依次如下:

2000101,李勇,男,20,00311      2000102,刘诗晨,女,19,00311

2000103,王一鸣,男,20,00312    2000104,张婷婷,女,21,00312

2001101,李勇敏,女,19,01311    2001102,贾向东,男,22,01311

2001103,陈宝玉,男,20,01311    2001104,张逸凡,男,21,01311

1,数据库,4      2,离散数学,3     3,管理信息系统,2

4,操作系统,4    5,数据结构,4     6,数据处理,2

7,C语言,4

00311,计算机软件,2000,120,2000101      00312,计算机应用,2000,140,2000103

01311,计算机软件,2001,220,2001103

2000101,1,92    2000101,3,88    2000101,5,86    2000102,1,78    2000102,6,55

2000103,3,65    2000103,6,78    2000103,5,66    2000104,1,54    2000104,6,83

2001101,2,70    2001101,4,65    2001102,2,80    2001102,4,90     2001102,6,83

2001103,4,76    2001103,6,56

要求完成如下操作:

(1)   给学生表增加一属性Nation(民族),数据类型为varchar(20);

(2)   删除学生表中新增的属性Nation。

(3)   向成绩表中插入记录(‘2001110’,’3’,80)。

(4)   修改学号为2001110的学生成绩为70分。

(5)   删除学号为2001110的学生的成绩记录。

(6)   为学生表创建一个名为IX_Class的索引,以班级号排序。

(7)   删除索引IX_Class。

四、实习报告内容

(1)   写出用Create Table语句对四个基本表的定义。

(2)   写出实习内容中七个操作的SQL语句。

上机实验四 SELECT语句的使用(一)

一、实习目的

掌握SELECT的基本格式,能使用SQL Server对表进行简单查询。

二、实习准备

1.复习SELECT语句的基本使用格式。

2.复习5种集合函数:AVG,SUM,MAX,MIN,COUNT。

三、实习内容

完成以下查询语句:

(1) 找出所有被学生选修了的课程号。

(2) 找出01311班女生的个人信息。

(3) 找出0311班,0312班学生的姓名、性别、出生年月。

(4) 找出所有姓李的学生的个人信息。

(5) 找出学生李勇所在班级的学生人数。

(6) 找出课程名为操作系统的平均成绩、最高分、最低分。

(7) 找出选修了课程的学生人数。

(8) 找出选修了课程操作系统的学生人数。

(9) 找出2000级计算机软件班的成绩为空的学生姓名。

四、实习报告内容

写出上述操作的SQL语句。

试验结果以及程序:

/*
CREATE DATABASE GradeManager;
*/
USE GradeManager;
/*******创建数据表**********/
/*学生表*/
CREATE TABLE Student(Sno Char(7) NOT NULL UNIQUE,
 Sname Varchar(20) NOT NULL,
 Ssex Char(2) NOT NULL,
 Sage Smallint,
 Clno Char(5) NOT NULL
 );

/*课程表*/
CREATE TABLE Course(Cno Char(1) NOT NULL UNIQUE,
Cname Varchar(20) NOT NULL,
Credir Smallint
);
/*班级表*/
CREATE TABLE Class(Clno Char(5) NOT NULL UNIQUE,
   Speciality Varchar(20) NOT NULL,
   Inyear Char(4) NOT NULL,
   Number Int,
   Monitor Char(7)
   );

/*成绩表*/
CREATE TABLE Grade(Sno Char(7) NOT NULL,
   Cno Char(1) NOT NULL,
   Gmark Numeric(4,1)
   ); 
/******创建表结束************/

/***************向表中插入数据******************/
/*学生表中插入数据*/    
INSERT INTO Student VALUES('2000101','李勇','男',20,'00311');
INSERT INTO Student VALUES('2000102','刘诗晨','女',19,'00311');
INSERT INTO Student VALUES('2000103','王一鸣','男',20,'00312');
INSERT INTO Student VALUES('2000104','张婷婷','女',21,'00312');
INSERT INTO Student VALUES('2001101','李勇敏','女',19,'01311');
INSERT INTO Student VALUES('2001102','贾向东','男',22,'01311');
INSERT INTO Student VALUES('2001103','陈宝玉','男',20,'01311');
INSERT INTO Student VALUES('2001104','张逸凡','男',21,'01311');

/*课程表中插入数据*/
INSERT INTO Course VALUES('1','数据库',4);
INSERT INTO Course VALUES('2','离散数学',3);
INSERT INTO Course VALUES('3','管理信息系统',2);
INSERT INTO Course VALUES('4','操作系统',4);
INSERT INTO Course VALUES('5','数据结构',4);
INSERT INTO Course VALUES('6','数据处理',2);
INSERT INTO Course VALUES('7','C语言',4);

/*班级表中插入数据*/
INSERT INTO Class VALUES('00311','计算机软件','2000',120,'2000101');
INSERT INTO Class VALUES('00312','计算机应用','2000',140,'2000103');
INSERT INTO Class VALUES('01311','计算机软件','2001',220,'2001103');

/*成绩表中插入数据*/
INSERT INTO Grade VALUES('2000101','1',92);
INSERT INTO Grade VALUES('2000101','3',88);
INSERT INTO Grade VALUES('2000101','5',86);
INSERT INTO Grade VALUES('2000102','1',78);
INSERT INTO Grade VALUES('2000102','6',55);
INSERT INTO Grade VALUES('2000103','3',65);
INSERT INTO Grade VALUES('2000103','6',78);
INSERT INTO Grade VALUES('2000103','5',66);
INSERT INTO Grade VALUES('2000104','1',54);
INSERT INTO Grade VALUES('2000104','6',83);
INSERT INTO Grade VALUES('2001101','2',70);
INSERT INTO Grade VALUES('2001101','4',65);
INSERT INTO Grade VALUES('2001102','2',80);
INSERT INTO Grade VALUES('2001102','4',90);
INSERT INTO Grade VALUES('2001102','6',83);
INSERT INTO Grade VALUES('2001103','4',76);
INSERT INTO Grade VALUES('2001103','6',56);

/***********插入数据结束*******************/

/***********上级试验三***************/

/**给学生表增加一属性Nation(民族),数据类型为varchar(20)**/
ALTER TABLE Student ADD Nation Varchar(20);
/**删除学生表中新增的属性Nation**/
ALTER TABLE Student DROP COLUMN  Nation;
/**向成绩表中插入记录(‘2001110’,’3’,80)**/
INSERT INTO Grade VALUES('2001110','3',80);
/**修改学号为2001110的学生成绩为70分**/
UPDATE Grade SET Gmark=70 WHERE Sno='2001110';
/**删除学号为2001110的学生的成绩记录**/
DELETE FROM Grade WHERE Sno='2001110';
/**为学生表创建一个名为IX_Class的索引,以班级号排序**/
CREATE INDEX IX_Class ON Student(Clno);
/**删除索引IX_Class**/
DROP INDEX IX_Class ON Student;

/***********上级试验四***************/

/**找出所有被学生选修了的课程号**/
SELECT DISTINCT Cno '课程号' 
FROM Grade;  /*DISTINCT表示重复的只打印一次*/

/**找出01311班女生的个人信息**/
SELECT Sno '学号',Sname '姓名',Ssex '性别',Sage '年龄',Clno '班级' 
FROM Student 
WHERE Clno='01311' AND Ssex='女';

/**找出01311班,01312班学生的姓名、性别、出生年月*/
SELECT Sname '姓名',Ssex '性别',2012-Sage '出生年月' 
FROM Student 
WHERE Clno IN('01311','01312');

/**找出所有姓李的学生的个人信息**/
SELECT Sno '学号',Sname '姓名',Ssex '性别',Sage '年龄',Clno '班级' 
FROM Student 
WHERE Sname LIKE '李%';

/**找出学生李勇所在班级的学生人数**/
SELECT Number '班级人数'
 FROM Class
  WHERE Clno =(
SELECT Clno 
FROM Student 
WHERE Sname = '李勇');

/**找出课程名为操作系统的平均成绩、最高分、最低分**/
SELECT AVG(Gmark) '平均分',MAX(Gmark) '最高分',MIN(Gmark) '最低分' 
FROM Grade 
WHERE Cno =
(SELECT Cno 
FROM Course WHERE Cname='操作系统');
/**找出选修了课程的学生人数**/
SELECT COUNT(DISTINCT Sno) '选修人数' 
FROM Grade;

/**找出选修了课程操作系统的学生人数**/
SELECT COUNT(DISTINCT Sno) '选修操作系统人数' 
FROM Grade 
WHERE Cno = 
(SELECT Cno
 FROM Course
 WHERE Cname = '操作系统');

/**找出2000级计算机软件班的成绩为空的学生姓名**/
SELECT Sname '姓名'
 FROM Student,Class
WHERE Student.Clno=Class.Clno and Inyear='2000'and Speciality='计算机软件'and sno NOT IN
                                                                           (SELECT sno 
                                                                           FROM Grade)

数据库上机试验(二)相关推荐

  1. mysql上机实验报告_数据库上机实验7实验报告.doc

    <数据库上机实验7实验报告.doc>由会员分享,提供在线免费全文阅读可下载,此文档格式为doc,更多相关<数据库上机实验7实验报告.doc>文档请在天天文库搜索. 1. 上机 ...

  2. 求不选修c语言课程的学生学号,数据库综合练习二.docx

    数据库综合练习二 一.选择题?1.对关系模型叙述错误的是____.A.建立在严格的数学理论.集合论和谓词演算公式的基础之上?B.微机DBMS绝大部分采取关系数据模型C.用二维表表示关系模型是其一大特点 ...

  3. 使用PowerDesigner做数据库设计(二)

    使用PowerDesigner做数据库设计(二) CDM设计后续 在上一篇文章中,有一点给忘记了,在CDM设计窗口中,如果在设计中,实体entity越来越多,实体entity间的关系也会越来越复杂,像 ...

  4. 计算机三级数据库上机怎么考,最新计算机三级数据库上机考试试题

    最新计算机三级数据库上机考试试题 数据库指的是以一定方式储存在一起.能为多个用户共享.具有尽可能小的冗余度的特点.是与应用程序彼此独立的数据集合.下文为大家搜集整理的是计算机三级数据库技术考试题,希望 ...

  5. 计算机在材料科学中的应用上机二,计算机在材料科学中的应用-上机实验二.doc...

    计算机在材料科学中的应用-上机实验二 实验二 Office使用技巧 ? 1 Word工具栏的增删与了解其主要作用 (1) ? 把"常用"和"格式"工具栏打开(一 ...

  6. Android 数据库综述(二) 程序计算器与信号量来处理多线程并发问题

    Android 数据库综述(二) 程序计算器与信号量来处理多线程并发问题 多线程操作数据库,为处理并发问题,大家第一想到的是加锁操作 ,SQLite是文件级别的锁.SQLite3对于并发的处理机制是允 ...

  7. 数据库原理—数据库基础(二)

    数据库原理-数据库基础(二) 一.数据和信息 (一).信息 信息是客观存在的,是关于现实世界事物的存在方式或运动状态反映的综合 信息与材料和能源一个层次,是人类社会赖以生存和发展的三大资源之一 (二) ...

  8. 计算机三级上机考试题库,计算机三级数据库上机试题及答案

    计算机三级数据库上机试题及答案 计算机三级数据库技术是全国计算机等级考试中三级的一类.以下为大家提供的是三级数据库上机考试题,仅供参考! 1. %满足条件的正整数个数,及右移是偶数的个数 平均值 %% ...

  9. Microsoft SQL Server 数据库使用(二)

    ##Microsoft SQL Server 数据库使用(二) 数据库练习使用可以在我的资源下载中下载数据库脚本文件. 一.查询数据 注:下面使用 Microsoft SQL Server 2019 ...

最新文章

  1. python ix loc iloc_pandas中的iloc、loc、ix有什么区别?
  2. 刚才遇到了关于C#使用外部DLL函数上的char*的问题。
  3. 【LeetCode】617. 合并二叉树
  4. 浅谈文本的相似度问题
  5. TypeScript 的命名空间 namespace
  6. cmu的计算机专业项目有哪些,CMU卡耐基梅隆大学计算机学院项目介绍(一)
  7. 华为和新华三OSPF单区域配置
  8. 删除指定天数文件,再删除所有的空目录批处理文件
  9. 如何在js中实现html语言,如何使用脚本标签将JavaScript插入HTML
  10. 【Android 12 AOSP学习】Android 12源码下载编译
  11. java计算机二级内容总结
  12. HTML5期末大作业:家乡网站设计——石家庄(10页) HTML+CSS+JavaScrip 旅游网页html 家乡介绍html网页设计 dw旅游景点网页设计 web课程设计网页规划与设计
  13. ape格式转换ogg格式用什么软件好
  14. Arcgis应用(八)arcgis点要素转为面要素(点图形转为面)
  15. app推送怎么实现更好的效果?
  16. javax.crypto.BadPaddingException: Given final block not properly padded
  17. 使用 Shiro 配合微信小程序或者app登录,做验权
  18. 详解GloVe词向量模型
  19. Using React, Typescript, and Webpack with Visual Studio 2015
  20. S0391-060使用CentOS6.x将82583v网卡down掉后网卡灯仍会亮起

热门文章

  1. PageOffice并发控制
  2. 微信公众平台认证步骤详解及服务号和订阅号区别
  3. JavaScript基础入门-----万字详解
  4. Linux shell简单创建用户脚本
  5. 生成100000个质数的质数表的一种较快算法
  6. 银行卡密码修改重置业务简介
  7. H3CIE-RS+笔试易错题整理
  8. 景区怎么在微信里面卖门票?
  9. ArcGIS VS QGIS——两者之间的27点比较(译)
  10. java输出三角形的面积_Java程序使用Heron公式计算三角形的面积