数据库实验4实验报告
数据库系统实验报告4(简单图书馆管理数据库的实现)

6
图书信息表:
2.还书后: 借阅信息表:
图书信息表:
备注: 1、表头及以下的栏目和内容,不得更改;其它栏目的位置可以适当调整,可以根据需要适当增加或减少 页。 2、本课程包含多次实验,请每次实验项目填写一份。
7
2
利用 sf_borrow,sf_return 进行借、还操作,并注意数据库中三个表的数据变化情况。 三、实验结果及分析 (一)创建数据库和数据表: 选择用企业管理器创建数据库、数据表
3
(二)数据相关操作: 1.查询:
2.删除:
4
删除后:
3.更新:
更新后:
(三)创建触发器、存储过程进行借还书操作: 1.针对借阅信息表的插入操作创建触发器,当借阅信息表进行插入操作时,自动根据书号,将图 书信息表相应记录的“状态”字段改为 0。 CREATE TRIGGER Insert_borrow ON dbo.借阅信息表 FOR INSERT AS begin update 图书信息表 set 状态=0 from Inserted i,图书信息表 t where t.书号=i.书号 end 2.针对借阅信息表的删除操作创建触发器,当借阅信息表进行删除操作时,自动根据书号,将图 书信息表相应记录的“状态”字段改为 1。
作者 sql c++ ms java c# net
状态 1 1 1 1 1 1
借书证号 1 2 3
姓名 张三 李四 王五
住址 学三 学四 学五
并对这两个表进行删除、更新、和查询等操作 三、创建触发器、和存储过程进行借、还书操作 1) 针对借阅信息表的插入操作创建触发器,当借阅信息表进行插入操作时,自动根据书号,将图 书信息表相应记录的“状态”字段改为 0。 2) 针对借阅信息表的删除操作创建触发器,当借阅信息表进行删除操作时,自动根据书号,将图 书信息表相应记录的“状态”字段改为 1。 3) 创建存储过程:sf_borrow,实现借书功能即:向借阅信息表进行插入操作,将书号、借书证 号,借书时间作为参数,并自动的将还书时间设置为借书时间后一个月。 4) 创建存储过程:sf_return,现实还书功能即:根据书号对借阅信息表进行删除操作,将书号 作为参数。
数据库应用实验报告

数据库应用实验报告数据库应用实验报告一、引言数据库是计算机科学中的重要概念,它是用于存储和管理大量数据的系统。
在现代社会中,数据库应用广泛,涉及到各个领域,如企业管理、医疗保健、教育等。
本实验报告旨在介绍数据库应用的实验过程和结果,以及对实验结果的分析和讨论。
二、实验目的本次实验的目的是通过使用数据库管理系统(DBMS)来实现一个简单的学生信息管理系统。
该系统可以实现学生信息的录入、查询、修改和删除等功能。
通过这个实验,我们可以更好地理解数据库的概念和应用,掌握数据库的基本操作技能。
三、实验环境本次实验使用了MySQL作为数据库管理系统,并使用了Python编程语言来实现与数据库的交互。
MySQL是一种开源的关系型数据库管理系统,它具有高性能、稳定性和可扩展性等优点,被广泛应用于各个领域。
四、实验过程1. 数据库设计在开始实验之前,我们首先需要设计一个合适的数据库结构。
本次实验中,我们设计了一个包含学生信息的表,其中包括学生的学号、姓名、性别和年龄等字段。
通过这个表,我们可以对学生信息进行增删改查的操作。
2. 数据库创建在MySQL中,我们使用SQL语句来创建数据库和表。
首先,我们创建了一个名为"student_info"的数据库,然后在该数据库中创建了一个名为"student"的表。
表中定义了学生信息的各个字段,并设置了相应的数据类型和约束。
3. 数据录入在数据库创建完成后,我们可以开始录入学生信息。
通过Python编写的程序,我们可以将学生的学号、姓名、性别和年龄等信息插入到数据库中。
这样,我们就可以在数据库中保存学生的信息,并进行后续的操作。
4. 数据查询在数据库中,我们可以使用SQL语句来查询特定条件下的数据。
通过编写相应的查询语句,我们可以从数据库中获取满足条件的学生信息,并将其显示出来。
这样,我们可以方便地查找和管理学生的信息。
5. 数据修改除了查询功能外,数据库还支持对数据进行修改的操作。
数据库实验报告(通用3篇)

数据库实验报告(通用3篇)数据库试验报告篇1一、实训时间:20_年5月13日至5月24日二、实训地点:三、实训目的与意义:1,这次实习可以使我们在课本上学到的学问用于实践增加了我对电脑技巧的一些认知。
2,通过这次实习也可以让我体验到上班族的生活为我将来毕业后找工作打下了基础。
3,并且这次实习可以非常好的关心我完成将来的毕业论文。
四、实训感悟:还依旧记得来的第一天对这里很茫然,不知道实习要做些什么。
然后经过老师的急躁讲解,熟悉了自己实习要做些什么,得到了许多心理熟悉,对许多问题都有了一些更深的了解。
同时,我熟识了河北玛世电子商务有限公司,总部位于国家命名的“中国丝网之乡”、“中国丝网产业基地”、中国丝网产销基地“、”中国丝网出口基地“—河北省安平县。
使我们队公司有了更进一步的了解实习,就是在实践中学习。
经过这半个月的实习训练,我了解到自己所学的如何在实践中运用。
当然学的更多的是如何在更新网站内容和添加商品,每天不厌其烦的更新添加,观察自己的胜利更多的是兴奋。
还有发布了一些关于公司产品的博客,比如新浪,网易。
而后又尝试在百度知道上提问与回答,在回答问题的过程中,通过网站搜寻相关内容来回答各种丝网问题,通过百度知道这个平台,我对公司又了更一步的了解。
经过半个月的实训我学到了许多之前没有学过没有接触到的东西,熟悉到自己的不足,需要更加努力,才能尽快的学会在社会上生活,敢于面对社会的压力,使自己可以在社会上成长进展。
数据库试验报告篇2由于平常接触的都是一些私人项目,这些项目大都是一些类库,其他人的沟通相对可以忽视不计,因此也就不考虑规范化的文档。
实际上从学习的经受来看,我们接触的学问体系都是属于比较老或比较传统的,与现在进展快速的IT行业相比许多状况已不再适用,尤其是当开源模式渐渐走近开发者后更是如此。
虽然这次是一个数据库课程设计,由于本人在选择项目的时候是本着对自己有实际应用价值的角度考虑的,所以其中也涉及到一些数据库以外的设计。
数据库系统实验课实验报告

数据库系统实验课实验报告一、实验目的数据库系统实验课是一门重要的实践课程,旨在通过实际操作和实验,深入理解数据库系统的原理和应用,提高我们的数据库设计、管理和应用开发能力。
本次实验的具体目的包括:1、熟悉数据库管理系统(DBMS)的操作环境和基本命令。
2、掌握数据库的创建、表的设计、数据的插入、查询、更新和删除等基本操作。
3、学会使用 SQL 语句进行复杂的数据查询和数据处理。
4、理解数据库的完整性约束、索引和存储过程的概念及应用。
5、培养解决实际数据库问题的能力和团队协作精神。
二、实验环境本次实验使用的数据库管理系统是 MySQL 80,实验在 Windows 10 操作系统上进行。
使用的开发工具包括 MySQL Workbench 和命令行终端。
三、实验内容1、数据库的创建使用 CREATE DATABASE 语句创建了一个名为“student_management”的数据库,用于存储学生管理相关的数据。
2、表的设计在“student_management”数据库中,设计了以下几张表:“students”表,包含学生的学号(student_id)、姓名(student_name)、性别(gender)、年龄(age)等字段。
“courses”表,包含课程的课程号(course_id)、课程名称(course_name)、学分(credit)等字段。
“enrolls”表,用于记录学生选课的信息,包含学号(student_id)、课程号(course_id)、成绩(grade)等字段。
在设计表时,为每个字段选择了合适的数据类型,并设置了主键和外键约束,以保证数据的完整性和一致性。
3、数据的插入使用 INSERT INTO 语句向“students”、“courses”和“enrolls”表中插入了一些示例数据,以便进行后续的查询和操作。
4、数据的查询使用简单的 SELECT 语句查询了“students”表中的所有学生信息。
数据库的设计实验报告

一、实验目的1. 理解数据库设计的概念、过程和步骤。
2. 掌握数据库概念结构、逻辑结构和物理结构的设计方法。
3. 能够运用E-R图进行数据库概念结构设计。
4. 能够运用SQL语句进行数据库逻辑结构和物理结构设计。
二、实验环境1. 操作系统:Windows 102. 数据库管理系统:MySQL 5.73. 开发工具:MySQL Workbench三、实验内容1. 数据库概念结构设计2. 数据库逻辑结构设计3. 数据库物理结构设计四、实验步骤1. 数据库概念结构设计(1)分析需求,确定实体和属性以“图书管理系统”为例,确定实体和属性如下:实体:图书、读者、借阅信息属性:- 图书:书名、作者、出版社、ISBN、出版日期、分类号、库存数量- 读者:读者编号、姓名、性别、出生日期、联系电话、邮箱、住址- 借阅信息:借阅编号、图书编号、读者编号、借阅日期、归还日期、状态(2)绘制E-R图根据实体和属性,绘制E-R图如下:```图书(书名,作者,出版社,ISBN,出版日期,分类号,库存数量)读者(读者编号,姓名,性别,出生日期,联系电话,邮箱,住址)借阅信息(借阅编号,图书编号,读者编号,借阅日期,归还日期,状态) ```2. 数据库逻辑结构设计(1)确定关系模式根据E-R图,确定关系模式如下:- 图书(书名,作者,出版社,ISBN,出版日期,分类号,库存数量)- 读者(读者编号,姓名,性别,出生日期,联系电话,邮箱,住址)- 借阅信息(借阅编号,图书编号,读者编号,借阅日期,归还日期,状态)(2)编写SQL语句创建表```sqlCREATE TABLE 图书 (书名 VARCHAR(100),作者 VARCHAR(50),出版社 VARCHAR(50),ISBN VARCHAR(20),出版日期 DATE,分类号 VARCHAR(10),库存数量 INT);CREATE TABLE 读者 (读者编号 VARCHAR(10),姓名 VARCHAR(50),性别 CHAR(1),出生日期 DATE,联系电话 VARCHAR(20),邮箱 VARCHAR(50),住址 VARCHAR(100));CREATE TABLE 借阅信息 (借阅编号 VARCHAR(10),图书编号 VARCHAR(10),读者编号 VARCHAR(10),借阅日期 DATE,归还日期 DATE,状态 VARCHAR(10));```3. 数据库物理结构设计(1)确定索引根据需求,确定索引如下:- 图书表:ISBN、分类号- 读者表:读者编号- 借阅信息表:借阅编号、图书编号、读者编号(2)编写SQL语句创建索引```sqlCREATE INDEX idx_isbn ON 图书(ISBN);CREATE INDEX idx_分类号 ON 图书(分类号);CREATE INDEX idx_读者编号 ON 读者(读者编号);CREATE INDEX idx_借阅编号 ON 借阅信息(借阅编号);CREATE INDEX idx_图书编号 ON 借阅信息(图书编号);CREATE INDEX idx_读者编号 ON 借阅信息(读者编号);```五、实验结果与分析1. 通过实验,掌握了数据库设计的概念、过程和步骤。
数据库原理与应用实验报告四

计算机工程系实验报告学生信息系别计算机学院专业计算机科学与技术班级17计科2+2 姓名徐浩俊学号2017031601025实验信息课程名称数据库原理与应用实验名称实验4 数据操作实验时间指导教师文琦批改情况成绩评阅教师文琦实验目标:1.掌握各种录入数据至数据库表的方法。
2.掌握修改数据库表中数据的方法。
3.掌握删除数据库表中数据的方法。
4.掌握复制数据库表的方法。
实验结果:利用shiyan4.sql文件中的脚本生成相应的数据库及数据表。
1.根据实验3.1步骤完成从Eecel工作表(非SQL Server数据源数据)导入SQL Server数据库表的方法(注意学生表S结构已存在),回答以下问题。
①请从素材中选择自己班级的Excel表格,若表格不满足数据库中的关系则需要稍加修改,再将表里的数据导入学生表S中。
导入是否会遇到问题?如何解决?无法直接映射,需要修改表格。
只保留一行名称。
②请将最后导入在数据库的数据截图。
③有无更简单的方法?有,直接在编辑表中粘贴数据。
2.将数据库表T的数据交互式录入并截图说明。
(P46)3.请使用SQL语句完成数据库表C的数据录入,将相应的SQL语句及最终存储的数据截图说明。
可否用一条insert into语句一次插入多行数据,如有,请描述相应的SQL语句。
USE jxskGOINSERT INTO C VALUES('C1','程序设计','60')GOUSE jxskGOINSERT INTO C VALUES('C1','课程1','60'),('C1','课程2','80'),('C1','课程3','100')GO4.完成实验3.2后,思考利用SQL语句完成以下问题。
①现将信息系归为计算机系,数据表T中哪些数据需要修改,请使用SQL 语句完成,并将最终修改后的数据截图。
数据库的完整性实验报告
数据库的完整性实验报告数据库的完整性实验报告引言:数据库的完整性是指数据库中存储的数据必须满足预定的一致性要求,包括实体完整性、域完整性、参照完整性和用户定义的完整性。
本实验旨在通过设计一个简单的数据库,并通过实际操作验证其完整性。
一、实验目的本实验的目的是通过设计和操作数据库,了解数据库的完整性概念,并掌握如何保证数据的完整性。
二、实验环境本实验使用MySQL数据库管理系统,并在Windows操作系统上进行实验。
三、实验步骤1. 创建数据库首先,我们需要创建一个数据库来存储我们的数据。
在MySQL中,可以使用以下命令创建一个新的数据库:```CREATE DATABASE integrity;```2. 创建数据表接下来,我们需要创建一个数据表来存储我们的数据。
假设我们要创建一个学生信息表,包括学生的学号、姓名和年龄。
可以使用以下命令创建该表:```USE integrity;CREATE TABLE students (id INT PRIMARY KEY,name VARCHAR(50),age INT);```3. 插入数据现在,我们可以向刚刚创建的数据表中插入一些数据。
例如,我们可以插入几个学生的信息:```INSERT INTO students (id, name, age) VALUES (1, '张三', 20);INSERT INTO students (id, name, age) VALUES (2, '李四', 22);INSERT INTO students (id, name, age) VALUES (3, '王五', 21);```4. 实体完整性实体完整性是指每个实体都必须具有一个唯一的标识符。
在我们的学生信息表中,学生的学号是唯一的标识符。
为了保证实体完整性,我们可以在创建表时使用PRIMARY KEY约束来定义学号为主键:```CREATE TABLE students (id INT PRIMARY KEY,name VARCHAR(50),age INT);```这样,如果有重复的学号插入到表中,系统会报错并拒绝插入。
数据库实验报告
数据库实验报告《数据库系统概论》实验指导书2012-8-30⽬录实验⼀数据库服务器的连接及数据库的建⽴ (1)实验⼆简单SQL查询及数据库多表查询 (12)实验三视图、索引、存储过程和触发器的使⽤ .. 22实验四 E-R模型与关系模型的转换 (30)实验五维护数据的完整性(选做)错误!未定义书签。
实验六事务管理(课后选做)错误!未定义书签。
实验七数据库的备份与恢复(课后选做)错误!未定义书签。
实验⼀数据库服务器的连接及数据库的建⽴⼀、实验⽬的:了解连接数据库服务器的⾝份验证模式,熟悉样例数据库。
掌握DBMS中利⽤界⾯进⾏建库建表操作。
⼆、实验准备:数据模型由三个要素组成:数据结构、数据操作和完整性约束。
1、数据结构数据结构⽤于描述系统的静态特性,是所研究的对象类型的集合。
数据模型按其数据结构分为层次模型、⽹状模型和关系模型。
2、数据操作数据操作⽤于描述系统的动态特性,是指对数据库中各种对象的实例允许执⾏的操作的集合,包括操作及有关的操作集合。
3、数据的约束条件数据的约束条件是⼀组完整性规则的集合。
完整性规则是给定的数据及其联系所具有的制约和存储规则,⽤以限定符合数据库状态以及状态的变化,以保证数据的正确、有效和相容。
数据库系统的三级模式结构数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级组成。
1、外模式。
外模式也称⼦模式或⽤户模式,它是数据库⽤户(包括应⽤程序员和最终⽤户)看见和使⽤的局部数据的逻辑结构和特征的描述,是数据库⽤户的数据视图,是与某⼀应⽤有关的数据的逻辑表⽰。
⼀个数据库可以有多个外模式。
2、模式。
模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有⽤户的公⽤数据视图。
⼀个数据库只有⼀个模式。
3、内模式。
内模式也称存储模式,它是数据物理和存储结构的描述,是数据在数据库内部的表⽰⽅式。
⼀个数据库只有⼀个内模式。
DBMS的功能1、数据定义数据定义包括定义构成数据库结构的外模式、模式和内模式,定义各个外模式与模式之间的映射,定义模式与内模式之间的映射,定义有关的约束条件(例如,为保证数据库中数据具有正确语义⽽定义的完整性规则,为保证数据库安全⽽定义的⽤户⼝令和存取权限等)。
数据库原理实验报告
计算机与信息学院数据库原理实验报告专业:计算机科学与技术班级:2012级本科班学号:07173姓名:指导教师:2014年06月18 日实验项目列表计算机与信息学院实验报告纸实验一数据库创建与管理一、实验目的与要求1、熟练掌握SSMS中界面方式创建和管理数据库。
2、熟练掌握SSMS查询编辑器T-SQL语句创建和管理数据库。
3、熟练掌握备份和还原数据库。
二、实验内容1、界面方式创建和管理数据库(1)创建数据库(2)修改数据库(3)删除数据库2、利用企业管理器备份和还原数据库(1)备份数据库(2)还原数据库3、T-SQL语句方式创建和管理数据库(1)创建SPJ数据库:在SSMS中“新建查询”,输入以下语句并运行CREATE DATABASE SPJON(NAME=’SPJ_Data’,FELENAME='C:\Program Files\Microsoft SQL Server\MSSQL\data\SPJ_Data.MDF' ,SIZE = 3,MAXSIZE = 10,FILEGROWTH = 10%)LOG ON(NAME = 'SPJ_Log', FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL\data\SPJ_Log.LDF' ,SIZE = 1,FILEGROWTH = 10%)(2)修改SPJ数据库:在查询分析器中输入以下语句并运行ALTER DATABASE SPJMODIFY FILE(NAME='SPJ_Data',SIZE=4,ALTER DATABASE SPJADD FILE(NAME='SPJ_Data_2', FILENAME='C:\Program Files\Microsoft SQL Server\MSSQL\Data\SPJ_Date_2.ndf',SIZE=1,MAXSIZE=10,FILEGROWTH=10%)(3)删除SPJ数据库:DROP DATABASE SPJ4、界面方式创建数据库XSBOOK,写出操作过程。
数据库计算机实验报告
数据库计算机实验报告数据库计算机实验报告引言在现代社会中,数据的存储和管理变得越来越重要。
无论是企业还是个人,都需要一个高效可靠的数据库系统来帮助管理和处理大量的数据。
本实验旨在通过实际操作和实验验证,探索数据库的基本概念和技术。
实验目的本实验的目的是通过实际操作,深入了解数据库的基本概念和技术。
具体包括以下几个方面:1. 学习数据库的基本概念,如表、字段、记录等;2. 掌握数据库的基本操作,包括创建表、插入数据、查询数据等;3. 理解数据库的设计原则,如数据完整性、范式等;4. 学习数据库的高级操作,如联合查询、子查询等。
实验过程1. 数据库的创建和连接首先,我们需要创建一个数据库并连接到该数据库。
通过使用SQL语句,我们可以创建一个名为"mydatabase"的数据库,并通过用户名和密码进行连接。
2. 表的创建和数据插入在创建数据库后,我们需要创建表来存储数据。
表是数据库中的基本组织单位,用于存储特定类型的数据。
通过使用SQL语句,我们可以创建一个名为"students"的表,并定义表的字段和数据类型。
3. 数据的查询和更新一旦表和数据插入完成,我们就可以开始对数据进行查询和更新操作。
通过使用SQL语句,我们可以查询特定条件下的数据,并对数据进行更新。
例如,我们可以查询所有年龄大于18岁的学生,并将他们的成绩更新为优秀。
4. 数据库的设计原则在进行数据库设计时,我们需要遵循一些基本原则,以确保数据的完整性和一致性。
例如,我们可以使用主键和外键来建立表之间的关系,以避免数据冗余和数据不一致的问题。
实验结果通过实验操作和实验验证,我们可以得出以下结论:1. 数据库是一个用于存储和管理数据的系统,可以提供高效可靠的数据访问和处理功能;2. 表是数据库中的基本组织单位,用于存储特定类型的数据;3. SQL语句是进行数据库操作的基本工具,通过编写SQL语句,我们可以创建表、插入数据、查询数据等;4. 数据库设计需要遵循一些基本原则,以确保数据的完整性和一致性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
淮海工学院计算机工程学院实验报告书课程名:《数据库原理及应用》题目:T-SQL高级应用班级:软件132学号:***********名:***一.目的与要求1.掌握复杂查询的使用方法;2.掌握多表连接的方法;3.掌握SELECT语句在多表查询中的应用。
4.掌握数据汇总、外连接查询的使用方法;5.掌握事务定义的一般方法二.实验内容1.给出教材14-16的程序运行结果。
2.编写程序,查询“1033”班的最高分的学生的学号、姓名、班号、课程号和分数。
3.编写程序,创建一个新表,包含所有学生的姓名、课程名和分数,并以姓名排序。
4.编写程序,输出每个班最高分的课程名和分数。
5.在上次实验建立的factory数据库的基础上,完成如下各题:●删除factory数据库上各个表之间建立的关系;●显示各职工的工资记录和相应的工资小计。
●按性别和部门名的所有组合方式列出相应的平均工资。
●在worker表中使用以下语句插入一个职工记录:insert into worker values(20,’陈立’,‘女’,’55/03/08’,1,’75/10/10’,4),在depart表中使用以下语句插入一个部门记录:insert into depart values(5,’设备处’)。
再对worker和depart表进行全外连接显示职工的职工号,姓名和部门名。
然后删除这两个插入的记录。
●显示最高工资的职工的职工号、姓名、部门名、工资发放日期和工资。
●显示最高工资的职工所在的部门名。
●显示所有平均工资低于全部职工平均工资的职工的职工号和姓名。
●先显示worker表中的职工人数,开始一个事务,插入一个职工记录,再显示worker表中的职工人数,回滚该事务,最后显示worker表中的职工人数。
三.实验步骤删除factory数据库上各个表之间建立的关系的操作步骤如下:①启动SQL Server管理控制器。
②在“对象资源管理器”中展开LCB-PC服务器节点。
③展开“数据库”节点。
④选中,将其展开。
⑤展开“数据库关系图”节点。
⑥选中dbo.Diagram_1,右击,在出现的快捷菜单中选择“修改”命令,如图5.1所示。
⑦在数据库关系图中,选择表示要从关系图中删除的关系的连接线(对于两条连线均进行⑦~⑨的操作)。
⑧右击关系线,从快捷菜单中选择“从数据库中删除关系”命令。
⑨出现一个消息框,提示确认删除。
单击“是”按钮。
⑩在出现的对话框中单击“是”按钮保存所做的修改。
这样就将worker表和depart表以及worker表和salary表之间的关系删除了。
四.测试数据与实验结果第1-14题图第1-15题图第1-16题图第2题图第3题图第4题图图5.1第5-2题图第5-3题图第5-4题图第5-5题图第5-6题图第5-7题图第5-8题图第5-9题图第5-10题图五.结果分析与实验体会在FROM子句中指定连接条件,有助于将这些连接条件与WHERE子句中的其他搜索条件分开,指定连接时建议使用这种方法。
如果某个表只出现在子查询中而不出现在外部查询中,那么该表中的列就无法包含在输出中(外部查询的选择列表)。
使用EXISTS引入的子查询在以下几方面与其他子查询略有不同:EXISTS关键字前面没有列名,常量或其他表达式。
由EXISTS引入的子查询的选择列表通常都是由星号(*)组成。
由于只是测试是否存在符合子查询中指定条件的行,所以不必列出列名。
六.源码1use schoolselect 学号,课程号,分数from scorewhere 学号 in(103,105)order by 学号compute avg(分数) by 学号go2use schoolgoselect student.班号,course.课程名,avg(score.分数)as'平均分'from student,course,scorewhere student.学号=score.学号 and course.课程号=score.课程号group by student.班号,course.课程名 with cubego3use schoolgobegin transaction Mytraninsert into teachervalues('999','张英','男','1960/03/05','教授','计算机系')save transaction Mytraninsert into teachervalues('888','胡丽','男','1982/08/04','副教授','电子工程系')rollback transaction Mytrancommit transactiongoselect * from teachergodelete teacher where 编号='999'go4use schoolselect student.学号,student.姓名,student.班号,score.课程号,score.分数from student,scorewhere 分数 in(select max(分数)from scorewhere 班号='1033' and student.学号=score.学号)5USE schoolgoSELECT s.姓名,c.课程名,sc.分数INTO studFROM student s,course c,score scWHERE s.学号=sc.学号 and c.课程号=sc.课程号 and sc.分数 is not null ORDER BY s.姓名SELECT * FROM studGo6USE schoolGOSELECT 班号,课程名,MAX(分数) 分数FROM (SELECT s.学号,s.姓名,s.班号,c.课程名,sc.分数FROM student s,course c,score scWHERE s.学号=sc.学号 AND c.课程号=sc.课程号 AND 分数 IS NOT NULL) T GROUP BY 班号,课程名ORDER BY 班号GO7USE factoryGOSELECT worker.职工号,worker.姓名,salary.工资FROM worker,salaryWHERE worker.职工号=salary.职工号ORDER BY worker.职工号,worker.姓名COMPUTE SUM(salary.工资) BY worker.职工号GO8USE factoryGOSELECT worker.性别,depart.部门名,AVG(salary.工资) AS '平均工资'FROM worker,depart,salaryWHERE worker.职工号=salary.职工号 AND worker.部门号=depart.部门号GROUP BY worker.性别,depart.部门名 WITH CUBEGO9USE factoryGOINSERT INTO worker VALUES('20','陈立','女','55/03/08',1,'75/10/10',4)GOINSERT INTO depart VALUES(5,'设备处')GOSELECT worker.职工号,worker.姓名,depart.部门名FROM worker FULL JOIN departON(worker.部门号=depart.部门号)ORDER BY worker.职工号GODELETE FROM worker WHERE 职工号='20'GODELETE FROM depart WHERE 部门号=5GO10USE factoryGOSELECT worker.职工号,worker.姓名,depart.部门名,salary.日期,salary.工资FROM worker,depart,salaryWHERE worker.部门号=depart.部门号 AND worker.职工号=salary.职工号AND salary.工资=(SELECT MAX(工资)FROM salary)GO11USE factoryGOSELECT 部门名FROM departWHERE 部门号=(SELECT 部门号FROM workerWHERE 职工号=(SELECT 职工号FROM salaryWHERE 工资=(SELECT MAX(工资)FROM salary)) )GO12USE factoryGOSELECT 职工号,姓名FROM workerWHERE 职工号 IN(SELECT 职工号FROM salaryGROUP BY 职工号HAVING AVG(工资)<(SELECT AVG(工资) FROM salary))GO13USE factoryGOSET NOCOUNT ON--声明变量DECLARE @dname char(10)--声明游标DECLARE d_cursor CURSORFOR SELECT 部门名FROM departWHERE 部门号=(SELECT 部门号FROM workerWHERE 职工号=(SELECT 职工号FROM salaryWHERE 工资=(SELECT MAX(工资)FROM salary)))--打开游标OPEN d_cursor--提取第一行数据FETCH NEXT FROM d_cursor INTO @dname--打印表标题PRINT '部门名'PRINT '---------'WHILE @@FETCH_STATUS = 0BEGIN--打印一行数据PRINT @dname--提取下一行数据FETCH NEXT FROM d_cursor INTO @dname END--关闭游标CLOSE d_cursor--释放游标DEALLOCATE d_cursorGO14USE factoryGOSET NOCOUNT ON--声明变量DECLARE @no int,@name char(10)--声明游标DECLARE w_cursor CURSORFOR SELECT 职工号,姓名FROM workerWHERE 职工号 IN(SELECT 职工号FROM salaryGROUP BY 职工号HAVING AVG(工资)<(SELECT AVG(工资) FROM salary))--打开游标OPEN w_cursor--提取第一行数据FETCH NEXT FROM w_cursor INTO @no,@name--打印表标题PRINT '职工号姓名'PRINT '-----------------'WHILE @@FETCH_STATUS = 0BEGIN--打印一行数据PRINT CAST(@no AS char(8))+@name--提取下一行数据FETCH NEXT FROM w_cursor INTO @no,@nameEND--关闭游标CLOSE w_cursor--释放游标DEALLOCATE w_cursorGO15USE factoryGODECLARE @num intSELECT @num=COUNT(*) FROM workerPRINT '原职工人数:'+CAST(@num AS CHAR(3))GODECLARE @num intBEGIN TRANSACTION --启动事务--插入一个职工记录INSERT INTO worker VALUES(20,'陈立','女','55/03/08',1,'75/10/10',4) PRINT '插入一个职工记录'SELECT @num=COUNT(*) FROM workerPRINT '职工人数:'+CAST(@num AS CHAR(3))ROLLBACK TRANSACTION --回滚事务GOPRINT '回滚事务'DECLARE @num intSELECT @num=COUNT(*) FROM workerPRINT '职工人数:'+CAST(@num AS CHAR(3))GO。