数据库原理及其应用实验代码

合集下载

数据库原理上机实验代码及截图

数据库原理上机实验代码及截图

- 《数据库原理》上机实验报告2017年11月一、实验目的与要求:●熟练使用SQL定义子语言、操纵子语言命令语句●掌握关系模型上的完整性约束机制●掌握一定的数据库管理技术●能完成简单的数据库应用开发二、实验容1、实验一到实验十七(一)数据定义子语言实验(2学时)实验1:利用SQL语句创建Employee数据库代码如下:create database Employee;运行结果:实验2:利用SQL语句在Employee数据库中创建人员表person、月薪表salary及部门表dept, 暂不定义外键约束。

要求:按表1、表达、表3中的字段说明创建表1 person表结构表2 salary表结构表3 dept表结构代码如下:create table person(P_no char(6) not null primary key,P_name varchar(10) not null,Sex char(2) not null,Birthdate datetime null,Prof varchar(10) null,Deptno char(4) not null);create table salary(P_no char(6) not null primary key,Base dec(5) null,Bonus dec(5) null,Fact dec(5) null,Month int not null);create table dept(Deptno char(4) not null primary key,Dname varchar(10) not null);运行结果:(二)数据操纵子语言实验(4学时)实验3:利用SQL语句向表person、salary和dept中插入数据。

要求:按表4、表5、表6中的数据插入。

表4 表person中的数据P_no P_name Sex BirthDate Prof Deptno 000001 王云男1973-4-7 中级0001 000002 志文男1975-2-14 中级0001代码如下:insert into person (P_no,P_name,Sex,Birthdate,Prof,Deptno) values ('000001','王云','男','1973-4-7','中级','0001')insert into person (P_no,P_name,Sex,Birthdate,Prof,Deptno) values ('000002','志文','男','1975-2-14','中级','0001')insert into person (P_no,P_name,Sex,Birthdate,Prof,Deptno) values ('000003','浩然','男','1970-8-25','高级','0002')insert into person (P_no,P_name,Sex,Birthdate,Prof,Deptno) values ('000004','廖小玲','女','1979-8-6','初级','0002')insert into person (P_no,P_name,Sex,Birthdate,Prof,Deptno) values ('000005','梁玉琼','女','1970-8-25','中级','0003')insert into person (P_no,P_name,Sex,Birthdate,Prof,Deptno) values ('000006','罗向东','男','1979-5-11','初级','0003')insert into person (P_no,P_name,Sex,Birthdate,Prof,Deptno) values ('000007','尚家庆','男','1963-7-14','高级','0003')运行结果:表5 表salary中的数据P_no Base Bonus Fact S_month 000001 2100 300 1000002 1800 300 1000003 2800 280 1000004 2500 250 1000005 2300 275 1000006 1750 130 1000007 2400 210 1代码如下:insert into salary (P_no,Base,Bonus,Fact,Month) values ('000001',2100,300,2100+300,1) insert into salary (P_no,Base,Bonus,Fact,Month) values ('000002',1800,300,1800+300,1) insert into salary (P_no,Base,Bonus,Fact,Month) values ('000003',2800,280,2800+280,1) insert into salary (P_no,Base,Bonus,Fact,Month) values ('000004',2500,250,2500+500,1) insert into salary (P_no,Base,Bonus,Fact,Month) values ('000005',2300,275,2300+275,1) insert into salary (P_no,Base,Bonus,Fact,Month) values ('000006',1750,130,1750+130,1) insert into salary (P_no,Base,Bonus,Fact,Month) values ('000007',2400,210,2400+210,1)运行结果:表6 表dept中的数据Deptno Dname0001 人事部0002 财务部0003 市场部代码如下:insert into dept (Deptno,Dname) values ('0001','人事部')insert into dept (Deptno,Dname) values ('0002','财务部')insert into dept (Deptno,Dname) values ('0003','市场部')运行结果:实验4:(1)利用SQL语句修改表中的数据。

数据库原理及应用(MySQL版)-教学大纲

数据库原理及应用(MySQL版)-教学大纲

《数据库原理及应用》课程教学大纲一、课程基本信息(一)课程代码:(二)课程中文名称:数据库原理及应用(三)课程英文名称:Principle and Application of Database(四)课程性质:专业基础课程(五)适用专业:计算机科学与技术、软件工程、大数据与人工智能(六)开课单位:(七)教学时间安排:第 5 学期(八)先修课程:计算机基础、高级语言程序设计(九)后续课程:网络程序开发、大数据技术原理及应用(十)学时、学分安排:《数据库原理及应用》是计算机类各专业的必修课,是一门重要的专业基础课。

原理部分以数据库技术的实际应用为目标,重点讲述数据库的基础知识、基本原理和基本技术;应用部分以数据库应用开发为主,介绍数据库应用系统的设计方法、步骤和范例。

通过本课程学习,使学生在掌握数据库系统基本概念、原理的基础上,能熟练使用SQL语言在某一个具体的数据库管理系统上进行应用操作;掌握数据库原理、方法及步骤,具有数据库设计以及应用数据库管理系统的基本能力。

达成支撑专业学习成果相应的指标点。

课程目标对学生能力要求如下:课程目标1. 逐步掌握科学的学习方法,阅读并理解数据库相关教材、参考书和科技文献,不断地扩展知识面,增强独立思考的能力,更新知识结构。

课程目标2. 掌握关系代数语言的使用;能够熟练使用SQL语句进行数据操纵和数据定义。

课程目标3. 了解关系模型的基本概念;掌握关系数据库规范化理论,能够利用分解算法将关系模式进行合理的分解;掌握数据库设计方法和数据库系统维护的相关概念和应用。

课程目标4. 能够在MySQL平台环境和开发工具下使用SQL语句进行数据操纵和数据定义。

课程目标5. 具备良好的沟通、表达和团队协作能力。

三、教学内容与课程目标的关系1.理论教学第1章数据库系统的基本原理章节学时:(总学时:4学时;理论学时:4学时;实验学时:0学时)具体内容:(1)数据库系统概述(数据库系统概念;数据管理技术的产生和发展;数据库系统特点)。

数据库原理与应用实验报告05

数据库原理与应用实验报告05

《数据库理论与应用》实验指导18大数据1班学号姓名专业、班实验地点指导教师实验时间2020/5/6一、实验目的及要求熟悉通过SQL语言对数据库进行完整性控制操作,包括3类完整性、check短语、constraint 子句、触发器。

因为完整性约束绝大部分是在定义表结构的时候完成的,因此可能需要多次定义表,如果表名发生重复,可以先将旧表删除再重建。

二、实验设平台利用实验1所安装的RDBMS及其交互查询工具来操作SQL语言三、实验内容和要求1.实体完整性-- 定义表的主码关系模型的实体完整性在CREATE TABLE中用PRIMARY KEY定义。

定义主码的方法分为定义为列级约束条件和定义为表级约束条件。

1)定义表student,并将其中的sno属性定义为主码。

Student表由(SNO,SNAME,SSEX,SAGE,SDEPT)等列组成,各列的类型分别是(CHAR(7), CHAR(8),CHAR(2),SMALLINT,CHAR(20))。

2)定义表course,并将其中的cno属性定义为主码。

course表由(CNO,CNAME)等列组成,各列的类型分别是(CHAR(7), CHAR(8))。

3)定义表SC,并将其中的属性sno,cno定义为主码2.参照完整性关系模型的参照完整性在CREATE TABLE中用FOREIGN KEY定义,并用REFERENCES来指明外码参照的是哪些表的主码。

1)定义表sc,其中sno参照表student的主码sno, cno参照表course的主码cno.Sc表有(SNO,CNO,GRADE)等属性,类型分别是(CHAR(7),CHAR(7),SMALLINT).3. 用户定义完整性用户定义属性上的约束条件1)列值非空。

在定义sc表时,sno,cno和grade属性都不允许取空值2)列值唯一。

建立部门表DEPT,要求部门名称Dname取值唯一,部门编号Deptno属性为主码DEPT表有(DEPTNO, DNAME, LOCATION)三个属性。

数据库实验源代码大全

数据库实验源代码大全

数据库实验源代码大全实验一:数据定义语言create user U099074235 IDENTIFIED BY XHM123 DEFAULT TABLESPACE DXPDA TASPACE1,创建表StudentCREATE TABLE Student (SNO CHAR(5) ,SNAME CHAR(10) NOT NULL,SDEPT CHAR(2) NOT NULL,SCLASS CHAR(2) NOT NULL,SAGE NUMBER(2),SSEX CHAR(2),CONSTRAINT SNO_PK PRIMARY KEY(SNO));2,创建表CourseCREATE TABLE Course(CNO CHAR(3),CNAME V ARCHAR2(16) ,CTIME NUMBER(3),CONSTRAINT CNO_PK PRIMARY KEY(CNO))3,创建表TeachCREATE TABLE Teach(TNO V ARCHAR(6),TNAME V ARCHAR(8),TSEX CHAR(2),CNO CHAR(3),TDA TE DATE,TDEPT CHAR(2),CONSTRAINT TT_PK PRIMARY KEY(TNO),CONSTRAINT CNO_FK FOREIGN KEY(CNO) REFERENCES Course(CNO))CREATE TABLE Teach(TNO V ARCHAR(6),TNAME V ARCHAR(8),TSEX CHAR(2),CNO CHAR(3),TAGE NUMBER(2),TDEPT CHAR(2),CONSTRAINT TT_PK PRIMARY KEY(TNO),CONSTRAINT CNO_FK FOREIGN KEY(CNO) REFERENCES Course(CNO))4,创建表ScoreCREATE TABLE Score(SNO CHAR(5),CNO CHAR(3),SCORE NUMBER(5,2),CONSTRAINT SC_PK PRIMARY KEY(SNO,CNO),CONSTRAINT SNO_FK FOREIGN KEY(SNO) REFERENCES Student(SNO), CONSTRAINT CNOM_FK FOREIGN KEY(CNO) REFERENCES Course(CNO))二、插入数据1,StudentINSERT INTO Student V ALUES('96001','马小燕','CS','01',21,'女');INSERT INTO Student V ALUES('96002','黎明','CS','01',18,'男');INSERT INTO Student V ALUES('96003','刘东明','MA','01',18,'男');INSERT INTO Student V ALUES('96004','赵志勇','IS','02',20,'男');INSERT INTO Student V ALUES('97001','马蓉','MA','02',19,'女');INSERT INTO Student V ALUES('97002','李成功','CS','01',20,'男');INSERT INTO Student V ALUES('97003','黎明','IS','03',19,'女');INSERT INTO Student V ALUES('97004','李丽','CS','02',19,'女');INSERT INTO Student V ALUES('96005','司马志明','CS','02',18,'男');2,CourseINSERT INTO Course V ALUES('001','数学分析',144);INSERT INTO Course V ALUES('002','普通物理',144);INSERT INTO Course V ALUES('003','微机原理',72);INSERT INTO Course V ALUES('004','数据结构',72);INSERT INTO Course V ALUES('005','操作系统',64);INSERT INTO Course V ALUES('006','数据库原理',64);INSERT INTO Course V ALUES('007','DB_Design',48);INSERT INTO Course V ALUES('008','程序设计',56);3,TeachINSERT INTO Teach V ALUES('9401','王成钢','男','004',TO_DA TE( '1999-09-05', 'YYYY-MM-DD'),'CS');INSERT INTO Teach V ALUES('9402','李正科','男','003',TO_DA TE( '1999-09-05', 'YYYY-MM-DD'),'CS');INSERT INTO Teach V ALUES('9403','严敏','女','001',TO_DATE( '1999-09-05', 'YYYY-MM-DD'),'MA');INSERT INTO Teach V ALUES('9404','赵高','男','004',TO_DATE( '1999-09-05', 'YYYY-MM-DD'),'IS');INSERT INTO Teach V ALUES('9405','李正科','男','003',TO_DA TE( '2000-02-23', 'YYYY-MM-DD'),'MA');INSERT INTO Teach V ALUES('9406','李玉兰','女','006',TO_DA TE( '2000-02-23', 'YYYY-MM-DD'),'CS');INSERT INTO Teach V ALUES('9407','王成钢','男','004',TO_DA TE( '2000-02-23', 'YYYY-MM-DD'),'IS');INSERT INTO Teach V ALUES('9408','马悦','女','008',TO_DATE( '2000-09-06', 'YYYY-MM-DD'),'CS');INSERT INTO Teach V ALUES('9409','王成钢','男','007',TO_DA TE( '1999-09-05', 'YYYY-MM-DD'),'CS');INSERT INTO Teach V ALUES('9401','王成钢','男','004',35,'CS');INSERT INTO Teach V ALUES('9402','李正科','男','003',40,'CS');INSERT INTO Teach V ALUES('9403','严敏','女','001',33,'MA');INSERT INTO Teach V ALUES('9404','赵高','男','004',28,'IS');INSERT INTO Teach V ALUES('9405','李正科','男','003',32,'MA');INSERT INTO Teach V ALUES('9406','李玉兰','女','006',43,'CS');INSERT INTO Teach V ALUES('9407','王成钢','男','004',49,'IS');INSERT INTO Teach V ALUES('9408','马悦','女','008',35,'CS');INSERT INTO Teach V ALUES('9409','王成钢','男','007',48,'CS');to_date( '05-09-1999', 'DD-MM-YYYY' );4,ScoreINSERT INTO Score V ALUES('96001','001',77.5);INSERT INTO Score V ALUES('96001','003',89);INSERT INTO Score V ALUES('96001','004',86);INSERT INTO Score V ALUES('96001','005',82);INSERT INTO Score V ALUES('96002','001',88);INSERT INTO Score V ALUES('96002','003',92.5);INSERT INTO Score V ALUES('96002','006',90);INSERT INTO Score V ALUES('96005','004',92);INSERT INTO Score V ALUES('96005','005',90);INSERT INTO Score V ALUES('96005','006',89);INSERT INTO Score V ALUES('96005','007',76);INSERT INTO Score V ALUES('96003','001',69);INSERT INTO Score V ALUES('97001','001',96);INSERT INTO Score V ALUES('97001','008',95);INSERT INTO Score V ALUES('96004','001',87);INSERT INTO Score V ALUES('96003','003',91);INSERT INTO Score V ALUES('97002','003',91);INSERT INTO Score V ALUES('97002','004','');INSERT INTO Score V ALUES('97002','006',92);INSERT INTO Score V ALUES('97004','005',90);INSERT INTO Score V ALUES('97004','006',85);INSERT INTO Score V ALUES('97004','008',75);INSERT INTO Score V ALUES('97003','001',59);INSERT INTO Score V ALUES('97003','003',58)实验一、1,(建立数据库表) 建立教学数据库的四个数据库表,其中Student表中不包含SSEX(C,2) 字段,Sname 字段为Sname(C,8)且可为空ALTER TABLE Student DROP COLUMN SSEXALTER TABLE Student MODIFY SNAME VARCHAR(8) NULL例1-2:(修改数据库表) 在Student表中增加SEX(C,2) 字段。

山东大学威海第九章实验代码《数据库原理与应用教程 SQL Server》(尹志宇 郭晴 著)

山东大学威海第九章实验代码《数据库原理与应用教程 SQL Server》(尹志宇 郭晴 著)

第九章数据库查询实验报告一实验准备建立学生表use教学库gocreate table学生(学生号char(7)primary key,姓名char(8)not null,性别char(2),年龄int,)建立选课表use教学库gocreate table选课(学生号char(8),课程号char(16)not null,成绩intconstraint pk_js primary key(学生号,课程号))建立课程表use教学库gocreate table课程(课程号char(8)primary key,课程名char(16)not null,学分int)学生表插入数据use教学库insert into学生(学生号,姓名,性别,年龄)values ('0101001','王华','男','19'),('0101002','王通','男','20'),('0101003','王菲','女','21'),('0101004','冷芳','男','21'),('0101005','王密','女','20'),('0101006','刘浩','女','19'),('0101007','孙艳','女','19')选课表中插入数据use教学库insert into选课(学生号,课程号,成绩)values ('0101001','C001','91'),('0101001','C002','89'),('0101001','C003','93'),('0101001','C004','85'),('0101002','C002','81'),('0101002','C003','84'),('0101002','C005','83'),('0101002','C004','89'),('0101003','C004','91'),('0101004','C001','85'),('0101004','C003','81'),('0101005','C001','94'),('0101005','C003','86'),('0101006','C001','87'),('0101007','C003','91'),('0101007','C005','95'),('0101007','C004','90')课程表中插入数据use教学库insert into课程(课程号,课程名,学分)values ('C001','计算机网络','3'),('C002','计算机文化基础','3'),('C003','专业英语','2'),('C004','信号与系统','4'),('C005','数字信号处理','4')二1 针对教学库中的三个表完成下面问题(1)统计有学生选修的课程门数use教学库select COUNT(distinct课程号)课程门数from选课结果(2)求选修C004课程学生的平均年龄use教学库select avg(年龄)平均年龄from学生,选课where学生.学生号=选课.学生号and课程号='C004'(3)求学分为3的每一门课程的学生平均成绩use教学库select课程.课程名,avg(成绩)平均成绩from课程,选课where课程.课程号=选课.课程号and学分=3group by课程.课程名(4)统计每一门课程的学生选修人数,超过3人的课程才统计。

数据库原理及其应用实验代码

数据库原理及其应用实验代码

实验2 数据查询(1)查询性别为“男”的所有学生的名称并按学号升序排列。

SELECT SnameFROM StudentsWHERE Ssex='男'ORDER BY Sno(2)查询学生的选课成绩合格的课程成绩,并把成绩换算为积分。

积分的计算公式为:[1+(考试成绩-60)*0.1]*Ccredit。

考试成绩>=60 否则=0SELECT Sno, Tno, o, Score, 'Point of Score',CONVERT(FLOAT(1), (Score-60)*0.1*Ccredit+Ccredit)FROM Courses, ReportsWHERE Score>=60 AND o=oUNIONSELECT Sno, Tno, o, Score, 'Point of Score', 0FROM Courses, ReportsWHERE o=o AND (Score < 60 OR Score ISNULL)(3)查询学分是3或4的课程的名称。

SELECT CnameFROM CoursesWHERE Ccredit IN('3','4')(4)查询所有课程名称中含有“算法”的课程编号。

SELECT CnameFROM CoursesWHERE Cname LIKE '%算法%'/*查询得到算法分析与设计、数据结构与算法分析*/(5)查询所有选课记录的课程号(不重复显示)。

SELECT DISTINCT Cno FROM Reports(6)统计所有老师的平均工资。

SELECT A VG(Tsalary) FROM Teachers(7)查询所有教师的编号及选修其课程的学生的平均成绩,按平均成绩降序排列。

SELECT Tno,A VG(Score)FROM ReportsGROUP BY TnoORDER BY A VG(Score) DESC(8)统计各个课程的选课人数和平均成绩。

数据库原理及应用教程(第4版)源代码

数据库原理及应用教程(第4版)源代码
【例3-5】
DROP DATABASETeach
【例3-6】
CREATE TABLE S
(SNoVARCHAR(6),
SNNVARCHAR(10),
Sex NCHAR(1) DEFAULT '男',
AgeINT,
DeptNVARCHAR(20))
【例3-7】
CREATE TABLE S
(SNoVARCHAR(6) CONSTRAINT S_CONSNOT NULL,
CNoVARCHAR(6) NOT NULL CONSTRAINT C_ForeFOREIGN KEY REFERENCES C(CNo),
ScoreNUMERIC(4,1),
CONSTRAINT S_C_PrimPRIMARY KEY (SNo,CNo))
【例3-13】
CREATE TABLE SC
ΠTN,TNo,Prof(T)或Π2,1,5(T)(其中2,1,5分别为属性TN,TNo和Prof的序号)
【例2-8】查询教师关系中有哪些系。
ΠDept(T)
【例2-9】查询讲授C5课程的教师号。
ΠTNo(σCNo='C5'(TC))
【例2-11】查询讲授“数据库”课程的教师姓名。
ΠTN(CN='数据库'(C) TC ΠTNo,TN(T))或
SNNVARCHAR(10),
Sex NCHAR(1),
Age INT,
DeptNVARCHAR(20))
【例3-8】
CREATE TABLE S
(SNoVARCHAR(6),
SNNVARCHAR(10)CONSTRAINT SN_UNIQUNIQUE,

数据库实验三:数据库原理与应用

数据库实验三:数据库原理与应用

数据库实验三:数据库的原理与应用一、实验目的与要求:1.实验目的(1)掌握对表中数据的插入、删除、修改等操作;(2)深入体会数据完整性及约束的作用。

2.实验要求在实验三建立的表的基础上:(1)自行设计各个表的记录,其中院系表至少10条记录、学生表至少30条记录、课程表至少10条记录、教师表至少10条记录、选课表至少50条记录。

(2)设计一组记录执行插入操作,要求分别设计若干违反实体完整性规则、参照完整性规则和用户完整性规则的插入操作,并分析原因.(3)设计几个删除操作,体会执行删除操作时检查参照完整性规则的效果(要求涉及拒绝删除、空值删除和级联删除等不同的处理方式)。

(4)设计一组更新操作,体会执行更新操作时检查参照完整性规则、参照完整性规则和用户完整性规则的效果。

(5)在实验报告中要给出具体的记录和设计的操作,并针对各种数据完整性检查给出具体的分析和讨论。

二、实验内容1、实验原理(1)插入语句的命令格式:INSERT INTO schema_name.table_or_view_name[(column_list)]VALUES({expression| DEFAULT | NULL)}[,…n])(2)更新语句的命令格式:UPDATE schema_name.table_or_view_nameSET column_name = {expression | DEFALUT | NULL}[,…n][WHERE 〈 search_condition〉](3)删除语句的命令格式:DELETE [FROM] schema_name.table_or_view_name[WHERE <search_condition >]2、实验步骤与结果(1)调出SQL Server2005软件的用户界面,进入SQL SERVERMAN AGEMENT STUDIO。

(2)输入自己编好的程序。

(3)检查已输入的程序正确与否。

数据库原理及其应用实验

数据库原理及其应用实验

实验1.1 创立数据库一、实验目的1.熟练掌握利用SSMS中的设计工具来创立数据库的方法。

2.了解利用T-SQL语句创立数据库的方法。

二、实验内容1.利用SSMS中的设计工具创立图书管理系统数据库xsbook,其中数据库参数均为默认值。

2.使用T-SQL命令创立数据库xsbook。

三、实验步骤1.利用SSMS中的设计工具其实现步骤如下:启动SQL sever 2000翻开企业管理器新建数据库,如下列图弹出数据库属性,在“常规〞选项卡中新建数据库xsbook,其他设置选择默认,然后确定,如下列图2.使用T-SQL的create database命令在SQL Server 2000中进展T-SQL语句的实验,步骤如下:翻开查询分析器,在查询分析器窗口中输入如下T-SQL语句:create database xsbookon primary(name='xsbook',filename='E:\DB\xsbook.mdf',size=2240KB,maxsize=unlimited, filegrowth=1024KB)log on(name = 'xsbook_log',filename = 'E:\DB\xsbook_log.LDF',size = 1088KB,maxsize = 2048GB , filegrowth = 10%)运行程序后在E盘DB文件夹中创立了两个文件xsbook.mdf、xsbook_log.LDF如下列图所示:四、实验心得通过这次试验可以熟练掌握利用SSMS中的设计工具来创立数据库的方法并了解利用T-SQL语句创立数据库的方法,对SQL server 2000 的根本功能有了一定的了解,熟悉了软件的根本界面和操作方法,为以后更深入的运用软件打下了良好的根底。

这个实验中主要的难点如下:1.初次接触SQL sever 2000,对软件的界面不熟悉,很多操作都需要通过不断的尝试来实现试验的要求。

《数据库原理及应用》实验指导

《数据库原理及应用》实验指导

理学院信科08—2班陈先国实验1 创建数据库与数据表下面写出实现如下操作的SQL语句:(1)创建供应系统“GYXT”数据库。

CREATE DATABASE GYXTON(NAME=GYXT_data,FILENAME=’D:\GYXT.mdf’,SIZE=10,MAXSIZE=50,FILEGROWTH=5)LOG ON(NAME=GYXT_Log,FILENAME=’D:\GXTYData.ldf’,SIZE=5,MAXSIZE=25,FILEGROWTH=5);(2) 建立供应商表S。

CREATE TABLE S( SNO char(5)not null unique,SNAME char(20)not null unique,CITY char(20));INSERT INTO S VALUES('S1','精益','天津');INSERT INTO S VALUES('S2','万胜','北京');INSERT INTO S VALUES('S3','东方','北京');INSERT INTO S VALUES('S4','丰泰隆','上海');INSERT INTO S VALUES('S5','康健','南京');(3) 建立零件表P。

CREATE TABLE P(PNO char(2)not null PRIMARY KEY(PNO),PNAME char(20),COLOR char(20),WEIGHT smallint);INSERT INTO P V ALUES('P1','螺母','红',12);INSERT INTO P V ALUES('P2','螺栓','绿',17);INSERT INTO P V ALUES('P3','螺丝刀','蓝',14); INSERT INTO P V ALUES('P4','螺丝刀','红',14); INSERT INTO P V ALUES('P5','凸轮','蓝',40); INSERT INTO P V ALUES('P6','齿轮','红',30);(4) 建立工程项目表J。

数据库原理与设计大作业源代码

数据库原理与设计大作业源代码

数据库原理与设计大作业源代码(1) 用户登录界面运行超市管理信息系统后,首先进入用户登录界面,用户输入用户名和密码后,系统进行验证,验证通过进入程序的主界面。

在进行系统登录过程中,登录模块将调用数据库里的用户信息表,并对用户名和密码进行验证,只有输入了正确的账号和密码后,系统登录才会成功。

在登录模块中,对系统的尝试登录次数进行了限制,禁止用户无终止的进行系统登录尝试,在本系统中,当用户对系统的三次登录失败后,系统将自动机制登录,突出登录模块。

并在输入了错误的或者是不存在的账户和密码时,系统会给出出错信息提示,指明登录过程中的错误输入或者错误操作,以便用户进行正确的登录。

登录界面如图5-2所示。

图5-2 登录界面主要实现代码如下://登录private void radBtnOk_Click(object sender, EventArgs e){try{if (radTxtBoxUser.Text.Trim() == ""){this.radLbInfo.Text = "请输入您的用户名!";}else if (radTxtBoxPsw.Text.Trim() == ""){this.radLbInfo.Text = "请输入您的密码!";}else{commandUnit com = new commandUnit();string str = @"select * from UserInfo where loginNo = '" + radTxtBoxUser.Text.ToString() + "'";DataTable table = com.GetDataSet(str);if (table.Rows.Count <= 0){this.radLbInfo.Text = "用户名不存在!";radTxtBoxUser.Text = "";radTxtBoxPsw.Text = "";return;}str = @"select * from UserInfo where loginNo = '" + radTxtBoxUser.Text.ToString() + "' and passWord = '" + radTxtBoxPsw.Text.ToString() + "'";DataTable tableUser = com.GetDataSet(str);if (tableUser.Rows.Count > 0){_currentUser = radTxtBoxUser.Text;_currentPsw = radTxtBoxPsw.Text;IsLogin = true;this.Close();}else{this.radLbInfo.Text = "密码错误!";radTxtBoxPsw.Text = "";}}}catch (System.Exception ex){throw ex;}}(2) 主界面系统登录成功后,进入主界面菜单。

数据库及其应用实验代码sql

数据库及其应用实验代码sql

Sy4create view View1asselect worker.职工号,worker.姓名,部门编号,工资from worker join salaryon worker.职工号=salary.职工号where 日期='2004-02-03'create view View2asselect 职工号,姓名,avg(工资) as 平均工资from salary group by 职工号,姓名create view View3asselect 部门名称,avg(工资) as 平均工资from depart join worker join salaryon worker.职工号=salary.职工号on depart.部门编号=worker.部门编号group by 部门名称sy3.SELECT year(getdate())-year([出生日期]) as 年龄FROM worker2.select 部门编号,count(*) as 人数from worker where 党员否= '是' group by 部门编号3.select 姓名,工资from salary where 日期= '2001-04-04' order by 工资desc4.select top 5 * from salary where 日期= '2001-04-04' order by 工资5.select 职工号,姓名,avg(工资) from salary group by 职工号,姓名6.select salary.职工号,salary.姓名,部门编号,salary.工资from worker join salaryon worker.职工号= salary.职工号where 日期= '2001-04-04'order by 部门编号7.select 部门名称,avg(工资) from depart join worker join salaryon worker.职工号= salary.职工号on depart.部门编号= worker.部门编号group by 部门名称8.select 部门名称,avg(工资) from depart join worker join salaryon worker.职工号= salary.职工号on depart.部门编号= worker.部门编号group by 部门名称having avg(工资)>12009.select worker.职工号,worker.姓名,部门名称,日期,工资from depart join worker join salary on worker.职工号= salary.职工号on depart.部门编号= worker.部门编号where 工资= (select max(工资) from salary)10.select distinct 职工号,姓名from salary where 职工号in(select 职工号from salary group by 职工号having avg(工资)<(select avg(工资) from salary))11.select * from worker where 部门编号= (select 部门编号from worker where 姓名= '刘欣')12.insert into depart(部门编号,部门名称) values ('6','公关') select * from depart13.update depart set depart.部门名称= '销售处'where 部门编号= '5' select * from depart14.delete from depart where 部门编号= '5' select * from depart5.1declare @num int,@sname char(20)declare depart_cursor cursor for select 部门编号,部门名称from depart order by 部门名称open depart_cursorfetch from depart_cursor into @num,@snamewhile @@fetch_status = 0beginprint str(@num)+@snamefetch from depart_cursor into @num,@snameendclose depart_cursordeallocate depart_cursor5.2declare @work datetime,@num int,@sname char(20),@sex char(2),@dang char(2),@bumen int,@csrq datetimedeclare worker_cursor cursor for select 参加工作,职工号,姓名,性别,党员否,部门编号,出生日期from workeropen worker_cursorfetch from worker_cursor into @work,@num,@sname,@sex,@dang,@bumen,@csrqwhile @@fetch_status = 0beginprintconvert(varchar(30),@work,111)+str(@num)+@sname+@sex+@dang+str(@bumen)+convert(var char(30),@csrq,111)fetch from worker_cursor into @work,@num,@sname,@sex,@dang,@bumen,@csrqendclose worker_cursordeallocate worker_cursor6.1create procedure st_proc;1@x float(8)=null,@y float(8)=nullasif (@x is null or @y is null)beginprint'输入工资范围'return(1)endelsebeginselect depart.部门编号,部门名称,worker.职工号,worker.姓名,工资from depart join worker join salary on worker.职工号=salary.职工号on depart.部门编号=worker.部门编号where 工资between @x and @yreturn(0)endgoexecute st_proc;1 1000,1500create procedure st_proc;5@x float(8)=null,@y float(8)=nullasif (@x is null or @y is null)beginprint'输入工资范围'return(1)endelsebeginselect depart.部门编号,部门名称,worker.职工号,worker.姓名,工资from depart join worker join salary on worker.职工号=salary.职工号on depart.部门编号=worker.部门编号where 工资between @x and @yreturn(0)endgoexecute st_proc;5 10006.2create procedure st_proc;3@num char(4) = nullasif(@num is null)select * from workerelseselect * from worker where 职工号=@numgoexecute st_proc;3 '1002'create procedure st_proc;4@num char(4) = nullasif(@num is null)select * from workerelseselect * from worker where 职工号=@numgoexecute st_proc;47.1create trigger depart_d_trigger111on depart for deleteasprint'删除成功!'update workerset abc=nullwhere abc=(select 部门编号from deleted)delete from depart where 部门名称='人事处'select * from worker7.2create trigger worker_ins_triggeron worker for insertasif(select count(*) from depart w,inserted i where w.部门编号=i.部门编号)=0 beginrollback transactionprint '非法部门号'endinsert into worker .....select * from worker7.3create trigger worker_upd_triggeron worker for updateasdeclare @num1 char(10),@num2 char(10)if update (部门编号)beginif(select count(*) from worker w,inserted i where w.部门编号=i.部门编号)=0beginrollback transactionprint '非法部门号'endelsebeginselect @num1=部门编号from depart where 部门名称='市场部'select @num2=部门编号from insertedif @num1=@num2update salary set 工资= 工资*1.15endendupdate worker set 部门编号=?where 职工号='?'select * from workerselect * salary实验五declare cursor_depart1 cursorfor select 部门编号,部门名称from depart order by 部门编号declare @n char(10),@m char(10)open cursor_depart1fetch from cursor_depart1 into @n,@mwhile @@fetch_status=0beginprint @n+@mfetch from cursor_depart1 into @n,@mendclose cursor_depart1deallocate cursor_depart1declare cursor_depart2 cursorfor select 部门名称,职工号,姓名,性别,出生日期,党员否,参加工作from worker,depart where worker.部门编号=depart.部门编号order by depart.部门编号declare @dname char(8),@wnumber char(4),@wname char(8),@wsex char(2),@wbirthday datetime,@wtf bit,@waw datetimeopen cursor_depart2fetch from cursor_depart2 into @dname,@wnumber,@wname,@wsex,@wbirthday,@wtf,@waw while @@fetch_status=0beginPrint @dname+@wnumber+' '+@wname+@wsex+' '+convert(varchar(30),@wbirthday,111)+str(@wtf)+' '+convert(varchar(30),@waw,111)fetch from cursor_depart2 into @dname,@wnumber,@wname,@wsex,@wbirthday,@wtf,@wawendclose cursor_depart2deallocate cursor_depart2declare @n char(10),@m char(10)declare @wnumber char(4),@wname char(8),@wsex char(2),@wbirthday datetime,@wtf bit,@waw datetimedeclare cursor_depart1 cursorfor select 部门编号,部门名称from depart order by 部门编号open cursor_depart1fetch from cursor_depart1 into @n,@mwhile @@fetch_status=0beginprint '部门编号:'+@n+' '+'部门名称:'+@m+'的全体员工信息'print '职工号'+' '+'职工姓名'+' '+'性别'+' '+'出生日期'+' '+'党员否'+' '+'参加工作' declare cursor_depart2 cursorfor select 职工号,姓名,性别,出生日期,党员否,参加工作from worker where 部门编号=@n open cursor_depart2fetch from cursor_depart2 into @wnumber,@wname,@wsex,@wbirthday,@wtf,@wawwhile @@fetch_status=0beginPrint @wnumber+' '+@wname+' '+@wsex+' '+convert(varchar(30),@wbirthday,111)+str(@wtf)+' '+convert(varchar(30),@waw,111) fetch from cursor_depart2 into @wnumber,@wname,@wsex,@wbirthday,@wtf,@wawendprint ' 'close cursor_depart2deallocate cursor_depart2fetch from cursor_depart1 into @n,@mendclose cursor_depart1deallocate cursor_depart1。

数据库SQL实验代码

数据库SQL实验代码

数据库SQL实验代码--实验一、数据库的定义实验--1.创建XSCJGL数据库USE MASTERIF DB_ID('XSCJGL')IS NOT NULL DROP DATABASE XSCJGLCREATE DATABASE XSCJGL--2、刷新数据库目录后,选择新出现的XSCJGL数据库,在SQL 操作窗口中,创建Student、SC、Course三表及表记录插入命令如下:use xscjglif object_id('sc','u')is not null drop table scif object_id('s','u')is not null drop table sif object_id('c','u')is not null drop table cif object_id('tsc','u')is not null drop table tscif object_id('ts','u')is not null drop table tsif object_id('tc','u')is not null drop table tcCreate Table S( Sno CHAR(2)NOT NULL PRIMARY KEY(Sno),Sname CHAR(6),sex CHAR(2)DEFAULT'男'CHECK(sex='男'OR sex='女'),age SMALLINT CHECK(age>=15 AND age<=45),sdept CHAR(6));Create Table C( Cno CHAR(2)NOT NULL PRIMARY KEY(Cno),Cname VARCHAR(20),cdept CHAR(6),Tname CHAR(6),ct SMALLINT CHECK((ct IS NULL)OR(ct BETWEEN 1 AND 5)), CPNO VARCHAR(20));Create Table SC( Sno CHAR(2)NOT NULL CONSTRAINT S_F FOREIGN KEY REFERENCES S(Sno),Cno CHAR(2)NOT NULL,GRADE SMALLINT CHECK((GRADE IS NULL)OR(GRADE BETWEEN 0 AND 100)),PRIMARY KEY(Sno,Cno),FOREIGN KEY(Cno)REFERENCES C(Cno));INSERT INTO S VALUES('S1','李涛','男',22,'统计');INSERT INTO S VALUES('S2','王林','女',18,'计算机');INSERT INTO S VALUES('S3','陈高','女',15,'自动化');INSERT INTO S VALUES('S4','张杰','男',17,'自动化');INSERT INTO S VALUES('S5','吴小丽','女',19,'统计');INSERT INTO S VALUES('S6','张敏敏','女',20,'计算机');INSERT INTO S VALUES('S7','郑冬','男',19,'数学');INSERT INTO S VALUES('S8','朱雨','男',20,'数学');INSERT INTO C VALUES('C1','C语言','计算机','汪小寒','4','计算机基础');INSERT INTO C VALUES('C2','R软件','自动化','周在莹','3','线性代数');INSERT INTO C VALUES('C3','精算学','统计','刘晓','3','金融数学');INSERT INTO C VALUES('C4','计算机算法','计算机','李杰','2','C 语言'); INSERT INTO C VALUES('C5','数据库应用','自动化','周有顺','4','R软件'); INSERT INTO C VALUES('C6','金融数学','统计','黄旭东','3','数学分析'); INSERT INTO C VALUES('C7','时间序列','统计','何道江','4','精算学'); INSERT INTO C VALUES('C8','数学分析','数学','周文','4','高等数学'); INSERT INTO C VALUES('C9','线性代数','数学','储茂权','2','高等数学'); INSERT INTO SC VALUES('S1','C1',90);INSERT INTO SC VALUES('S1','C2',85);INSERT INTO SC VALUES('S2','C1',84);INSERT INTO SC VALUES('S2','C2',94);INSERT INTO SC VALUES('S2','C3',83);INSERT INTO SC VALUES('S3','C1',73);INSERT INTO SC VALUES('S3','C7',59);INSERT INTO SC VALUES('S3','C4',88);INSERT INTO SC VALUES('S3','C5',85);INSERT INTO SC VALUES('S4','C2',65);INSERT INTO SC VALUES('S4','C5',90);INSERT INTO SC VALUES('S4','C6',79);INSERT INTO SC VALUES('S5','C2',89);INSERT INTO SC VALUES('S5','C1',84);INSERT INTO SC VALUES('S6','C5',55);INSERT INTO SC VALUES('S6','C1',null);--实验二、数据库的查询实验--使用XSCJGL库,保存好并每次实验做好备份,以后实验要继续使用。

数据库实训报告含代码

数据库实训报告含代码

一、实训目的本次数据库实训的主要目的是通过实际操作,使学生深入了解数据库的基本概念、原理和操作方法,掌握SQL语言的使用,提高数据库设计和实施的能力。

同时,通过本次实训,培养学生严谨的工作态度和团队协作精神。

二、实训环境1. 操作系统:Windows 102. 数据库管理系统:MySQL 5.73. 开发工具:MySQL Workbench三、实训内容1. 数据库设计2. 数据库创建与操作3. SQL语言基础4. 数据库查询5. 数据库安全与权限管理6. 数据库备份与恢复四、实训过程1. 数据库设计(1)需求分析:以学生信息管理系统为例,分析系统需求,确定数据库表结构。

(2)概念结构设计:使用E-R图描述实体关系,确定实体、属性和关系。

(3)逻辑结构设计:根据概念结构设计,将E-R图转换为关系模型,确定表结构。

(4)物理结构设计:选择合适的存储引擎,设计表空间、索引等。

2. 数据库创建与操作(1)创建数据库```sqlCREATE DATABASE student_info;```(2)创建表```sqlCREATE TABLE student (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50) NOT NULL,age INT NOT NULL,gender ENUM('male', 'female') NOT NULL,class_id INT NOT NULL,FOREIGN KEY (class_id) REFERENCES class(id));CREATE TABLE class (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50) NOT NULL);```(3)插入数据```sqlINSERT INTO student (name, age, gender, class_id) VALUES ('张三', 20, 'male', 1);INSERT INTO class (name) VALUES ('计算机科学与技术');```3. SQL语言基础(1)查询语句```sqlSELECT FROM student WHERE age > 20;```(2)更新语句```sqlUPDATE student SET age = 21 WHERE name = '张三';```(3)删除语句```sqlDELETE FROM student WHERE name = '李四';```4. 数据库查询(1)多表查询```sqlSELECT , FROM student JOIN class ONstudent.class_id = class.id;```(2)子查询```sqlSELECT FROM student WHERE class_id IN (SELECT id FROM class WHERE name = '计算机科学与技术');```5. 数据库安全与权限管理(1)创建用户```sqlCREATE USER 'user1'@'localhost' IDENTIFIED BY 'password';```(2)授权```sqlGRANT SELECT, INSERT, UPDATE, DELETE ON student_info. TO'user1'@'localhost';```(3)撤销权限```sqlREVOKE ALL PRIVILEGES ON student_info. FROM 'user1'@'localhost'; ```6. 数据库备份与恢复(1)备份```sqlmysqldump -u root -p student_info > student_info_backup.sql```(2)恢复```sqlmysql -u root -p student_info < student_info_backup.sql```五、实训总结通过本次数据库实训,我掌握了以下知识和技能:1. 数据库的基本概念、原理和操作方法;2. SQL语言的使用;3. 数据库设计、创建与操作;4. 数据库查询、安全与权限管理;5. 数据库备份与恢复。

数据库实验五代码

数据库实验五代码

定义:(未加事务,但没错)CREATE PROCEDURE sp_borrow@mybookid char(10),@mycardid char(10) , @bname char(30) output,@cname char(20) output,@mystate char(1) output/*,@mydate datetime output*/ ASif @mybookid is null or @mycardid is nullbeginprint'error:your bookid or cardid is null'returnendelsebeginif (select state from bookstore where bookid=@mybookid)='y'beginupdate bookstore set state='n' where bookid=@mybookidinsert into borrowlogvalues(@mycardid,@mybookid,getdate(),null)endelsebeginprint'error:book is borrowed!'endselect@bname=s.bookname,@cname=c.ownername,/*@mydate=l.borrowdate,*/@mystat e=s.statefrom bookstore s,borrowlog l, borrowcard cwhere s.bookid=@mybookid and c.cardid=@mycardid ands.bookid=l.bookid and c.cardid=l.cardidendGO执行:(只剩下借阅日期的与char类型转换没解决)DECLARE @bid varchar(10), @cid varchar(10),@bname char(30),@cname char(20)/*,@mydate datetime*/,@mystate char(1)SET @bid='2008112601' set @cid='200602001'EXECUTE sp_borrow @bid,@cid,@bname output,@cname output, /*@mydate output,*/@mystate outputSELECT '借阅人:'+@cname as '借阅人', '图书名称'+@bname as '图书名称'/*,@mydate as '借阅日期'*/,'借阅状态'+@mystate as'借阅状态'加了事务处理CREATE PROCEDURE sp_borrow@mybookid char(10),@mycardid char(10) , @bname char(30) output,@cname char(20) output,@mystate char(1) output,@mydate datetime outputASif @mybookid is null or @mycardid is nullbeginprint'error:your bookid or cardid is null'returnendelsebeginif (select state from bookstore where bookid=@mybookid)='y'beginbegin transactionupdate bookstore set state='n' where bookid=@mybookidIF ( @@ERROR <> 0 )BEGIN/**//*---------- 自定义错误输出 ----------*/RAISERROR( 'Insert data error!',16,1 )/**//*-------- 事务回滚 --------*/ROLLBACK TRANSACTIONENDinsert into borrowlogvalues(@mycardid,@mybookid,getdate(),null)IF ( @@ERROR <> 0 )BEGIN/**//*---------- 自定义错误输出 ----------*/RAISERROR( 'Insert data error!',16,1 )/**//*-------- 事务回滚 --------*/ROLLBACK TRANSACTIONENDcommitendelsebeginprint'error:book is borrowed!'endselect@bname=s.bookname,@cname=c.ownername,@mydate=l.borrowdate,@mystate=s. statefrom bookstore s,borrowlog l, borrowcard cwhere s.bookid=@mybookid and c.cardid=@mycardid ands.bookid=l.bookid and c.cardid=l.cardidendGO执行DECLARE @bid varchar(10), @cid varchar(10),@bname char(30),@cname char(20),@mydate datetime,@mystate char(1)SET @bid='2008112602' set @cid='200601001'EXECUTE sp_borrow @bid,@cid,@bname output,@cname output, @mydate output,@mystate outputSELECT '借阅人:'+@cname as '借阅人', '图书名称'+@bname as '图书名称',@mydate as '借阅日期','借阅状态'+@mystate as'借阅状态'触发器CREATE TRIGGER tgs_delete ON sFOR DELETEASdelete from spj where sno in (select sno from deleted)。

课程名称数据库技术与应用实验课程代码474020英文名称

课程名称数据库技术与应用实验课程代码474020英文名称

课程名称:数据库技术与应用实验课程代码:474020英文名称:Experiment of Database technology and application课程类别:专业课程性质:必修独立设课:否先修课程:面向专业:软件工程、计算机科学与技术撰写人:黄洪一、课程简介通过本课程的实验,将数据库技术与应用课程中学习的数据库技术、信息系统专题技术应用到软件工程的实践性环节中,从而提高提高学生在信息系统中的分析、设计、开发及技术应用的能力。

本课程包含了多个专题技术,主要有数据库应用技术、信息系统权限管理及控制技术、应用数据管理技术、信息统计查询技术、报表技术等。

二、实验学分、学时及项目数三、实验教学目标与基本要求通过数据库技术与应用的实验,使学生掌握信息系统中主要的一些应用开发技术,提高学生在信息系统中的规划、设计及开发的能力。

实验教学的目标是:通过数据库应用技术,使学生了解和掌握视图、存储过程、触发器的基本特点、应用方法,对信息系统开发的作用;通过信息系统专项技术实验,从多个技术层面对信息系统进行拆分,了解每个技术层面的主要特点,掌握每个技术层面的基本方法;综合应用数据库技术及信息系统专项技术,设计、开发功能完备的信息信息。

四、知识与能力(完成实验后获取的知识与能力。

请填写培养计划中“知识结构要求”和“能力结构要求”中列出的相关条目)知识结构要求:熟练掌握软件工程的基本理论知识,包括软件系统需求分析与建模、软件设计与实现、软件验证与确认、软件维护、软件项目管理等知识。

能力结构要求:受到系统的软件开发工程训练,了解通用的软件工程设计方法,具备作为软件工程师从事工程实践所需的专业能力。

五、考核与实验报告1.单项技术专题实验报告;2.信息系统综合实验报告。

六、实验仪器设备配置七、实验教材/讲义八、实验项目与内容提要。

山东大学威海第九章实验代码《数据库原理与应用教程 SQL Server》(尹志宇 郭晴 著)

山东大学威海第九章实验代码《数据库原理与应用教程 SQL Server》(尹志宇 郭晴 著)

第九章数据库查询实验报告一实验准备建立学生表use教学库gocreate table学生(学生号char(7)primary key,姓名char(8)not null,性别char(2),年龄int,)建立选课表use教学库gocreate table选课(学生号char(8),课程号char(16)not null,成绩intconstraint pk_js primary key(学生号,课程号))建立课程表use教学库gocreate table课程(课程号char(8)primary key,课程名char(16)not null,学分int)学生表插入数据use教学库insert into学生(学生号,姓名,性别,年龄)values ('0101001','王华','男','19'),('0101002','王通','男','20'),('0101003','王菲','女','21'),('0101004','冷芳','男','21'),('0101005','王密','女','20'),('0101006','刘浩','女','19'),('0101007','孙艳','女','19')选课表中插入数据use教学库insert into选课(学生号,课程号,成绩)values ('0101001','C001','91'),('0101001','C002','89'),('0101001','C003','93'),('0101001','C004','85'),('0101002','C002','81'),('0101002','C003','84'),('0101002','C005','83'),('0101002','C004','89'),('0101003','C004','91'),('0101004','C001','85'),('0101004','C003','81'),('0101005','C001','94'),('0101005','C003','86'),('0101006','C001','87'),('0101007','C003','91'),('0101007','C005','95'),('0101007','C004','90')课程表中插入数据use教学库insert into课程(课程号,课程名,学分)values ('C001','计算机网络','3'),('C002','计算机文化基础','3'),('C003','专业英语','2'),('C004','信号与系统','4'),('C005','数字信号处理','4')二1 针对教学库中的三个表完成下面问题(1)统计有学生选修的课程门数use教学库select COUNT(distinct课程号)课程门数from选课结果(2)求选修C004课程学生的平均年龄use教学库select avg(年龄)平均年龄from学生,选课where学生.学生号=选课.学生号and课程号='C004'(3)求学分为3的每一门课程的学生平均成绩use教学库select课程.课程名,avg(成绩)平均成绩from课程,选课where课程.课程号=选课.课程号and学分=3group by课程.课程名(4)统计每一门课程的学生选修人数,超过3人的课程才统计。

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

实验2 数据查询(1)查询性别为“男”的所有学生的名称并按学号升序排列。

SELECT SnameFROM StudentsWHERE Ssex='男'ORDER BY Sno(2)查询学生的选课成绩合格的课程成绩,并把成绩换算为积分。

积分的计算公式为:[1+(考试成绩-60)*0.1]*Ccredit。

考试成绩>=60 否则=0SELECT Sno, Tno, o, Score, 'Point of Score',CONVERT(FLOAT(1), (Score-60)*0.1*Ccredit+Ccredit)FROM Courses, ReportsWHERE Score>=60 AND o=oUNIONSELECT Sno, Tno, o, Score, 'Point of Score', 0FROM Courses, ReportsWHERE o=o AND (Score < 60 OR Score ISNULL)(3)查询学分是3或4的课程的名称。

SELECT CnameFROM CoursesWHERE Ccredit IN('3','4')(4)查询所有课程名称中含有“算法”的课程编号。

SELECT CnameFROM CoursesWHERE Cname LIKE '%算法%'/*查询得到算法分析与设计、数据结构与算法分析*/(5)查询所有选课记录的课程号(不重复显示)。

SELECT DISTINCT Cno FROM Reports(6)统计所有老师的平均工资。

SELECT A VG(Tsalary) FROM Teachers(7)查询所有教师的编号及选修其课程的学生的平均成绩,按平均成绩降序排列。

SELECT Tno,A VG(Score)FROM ReportsGROUP BY TnoORDER BY A VG(Score) DESC(8)统计各个课程的选课人数和平均成绩。

SELECT Cno,COUNT(Sno),A VG(Score)FROM ReportsGROUP BY Cno(9)查询至少选修了三门课程的学生编号和姓名。

SELECT Sno,SnameFROM StudentsWHERE Sno IN(SELECT SnoFROM ReportsGROUP BY SnoHA VING COUNT(*)>=3)(10)查询编号S26的学生所选的全部课程的课程名和成绩。

SELECT ame,Reports.ScoreFROM Courses,ReportsWHERE Reports.Sno='S26' AND o=o(11)查询所有选了“数据库原理及其应用”课程的学生编号和姓名。

SELECT Sno,SnameFROM StudentsWHERE Sno IN(SELECT Reports.SnoFROM Reports,CoursesWHERE o=o AND ame='数据库原理及其应用')(12)求出至少被两名学生选修的课程编号。

SELECT DISTINCT oFROM Reports X,Reports YWHERE o=o AND X.Sno<Y.Sno(13)查询选修了编号S26的学生所选的某个课程的学生编号。

SELECT Y.SnoFROM Reports X,Reports YWHERE o=o AND X.Sno='S26'/*注:在本题中,如果要求是“查询选修了编号S26的学生所选的某个课程的其他学生编号”时,也就是不包含编号S26学生自身的情况时,在查询条件WHERE中,还需要加上条件X.Sno<Y.Sno*/(14)查询学生的基本信息及选修课程编号和成绩。

SELECTStudents.Sno,Students.Sname,Students.Semail,Students.Scredit,Students.Ssex,o,Reports.ScoreFROM Students JOIN Reports ON Students.Sno=Reports.Sno(15)查询学号S52的学生的姓名和选修的课程名称及成绩。

SELECT Students.Sname,ame,Reports.ScoreFROM Students,Courses,ReportsWHERE Students.Sno=Reports.Sno AND o=oAND Students.Sno='S52'(16)查询和学号S52的学生同性别的所有学生资料。

SELECT *FROM StudentsWHERE Ssex=(SELECT SsexFROM StudentsWHERE Sno='S52')(17)查询所有选课的学生的详细信息。

SELECT *FROM StudentsWHERE Sno IN(SELECT SnoFROM Reports)(18)查询没有学生选的课程的编号和名称。

SELECT Cno,CnameFROM CoursesWHERE Cno NOT IN(SELECT CnoFROM Reports)(19)查询选修了课程名为C++的学生学号和姓名。

SELECT Sno,SnameFROM StudentsWHERE Sno IN(SELECT SnoFROM ReportsWHERE Cno IN(SELECT CnoFROM CoursesWHERE Cname='C++'))(20)找出选修课程UML或者课程C++的学生学号和姓名。

SELECT Sno,SnameFROM StudentsWHERE Sno IN(SELECT SnoFROM ReportsWHERE Cno IN(SELECT CnoFROM CoursesWHERE Cname='C++' OR Cname='UML'))(21)找出和课程UML或课程C++的学分一样课程名称。

SELECT CnameFROM CoursesWHERE Ccredit=SOME(SELECT CcreditFROM CoursesWHERE Cname='UML' OR Cname='C++')/*注:在本题中,将=SOME换成=ANY或IN都可行。

*/ (22)查询所有选修编号C01的课程的学生的姓名。

SELECT SnameFROM StudentsWHERE EXISTS(SELECT *FROM ReportsWHERE o='C01' AND Reports.Sno=Students.Sno)(23)查询选修了所有课程的学生姓名。

SELECT SnameFROM StudentsWHERE NOT EXISTS(SELECT *FROM Reports XWHERE NOT EXISTS(SELECT *FROM Reports YWHERE Y.Sno=Students.Sno AND o=o))(24)利用集合查询方式,查询选修课程C++或选择课程JA V A的学生的编号、姓名和积分。

SELECT Sno,Sname,ScreditFROM StudentsWHERE Sno IN(SELECT SnoFROM ReportsWHERE o=(SELECT oFROM CoursesWHERE ame='C++'))UNIONSELECT Sno,Sname,ScreditFROM StudentsWHERE Sno IN(SELECT SnoFROM ReportsWHERE o=(SELECT oFROM CoursesWHERE ame='JA V A'))(25)实现集合交运算,查询既选修课程C++又选修课程JA V A的学生的编号、姓名和积分。

SELECT Sno,Sname,ScreditFROM StudentsWHERE Sno IN(SELECT X.SnoFROM Reports X,Reports YWHERE(o=(SELECT CnoFROM CoursesWHERE Cname='C++')AND o=(SELECT CnoFROM CoursesWHERE Cname='JA V A'))AND X.Sno=Y.Sno)(26)实现集合减运算,查询选修课程C++而没有选修课程JA V A的学生的编号。

基本的语句模式如下:SELECT Sno FROM ReportsWHERE Cno='C01'AND Sno NOT IN(SELECT Sno FROM Reports WHERECno='C03')本题具体的SQL语句SELECT * FROM StudentsWHERE Sno IN( SELECT Sno FROM ReportsWHERE Cno=(SELECT Cno FROM Courses WHERE Cname='C++')AND Sno NOT IN (SELECT Sno FROM Reports WHERECno=(SELECT Cno FROM Courses WHERE Cname='JA V A'))) (27)求平均成绩在75分以上的课程名select ame,avg(Score) as pjcjfrom COURSE, Reportswhere om= ogroup by ohaving avg(Score)>75(28) 检索“张三”同学不学的课程的课程号SELECT distinct cnofrom Courseswhere cno not in (select ofrom Students, Reportswhere Students.sno= Reports.snoand Students.sname='张三' )实验3数据更新1、insertinto Studentsvalues('S78','李迪','LD@',0,'男')2、select Cno,COUNT(Sno)CntSno,AVG(Score)AVGScorefrom ReportsGroup by Cno33、update studentsset Sno='S70'where Sname='李迪'4、update Teachersset Tsalary=Tsalary+5005、update Reportsset Score=Score+6where '数据库原理及其应用'=(select Cnofrom Courseswhere o=o)And '刘华'=(select Snofrom Studentswhere Students.Sno=Reports.Sno)6、deletefrom Studentswhere Sname='李迪'7、deletefrom Courseswhere Cname='JAVA'8、deletefrom Courseswhere Ccredit<=4实验4 SQL的视图1、create view CS_ViewASselect Sno,Tno,Cno,Scorefrom Reportswhere Score>=602、create view SCT_ViewASselect Students.Sname,ame,Teachers.Tnamefrom Students,Courses,Teachers,Reportswhere Students.Sno=Reports.Sno AND o=o And Reports.Tno=Teachers.Tno3、create view EXP_View(Sname,Cname,Score)ASselect Students.Sname,ame,Reports.Score+5from Students,Courses,Reportswhere Students.Sno=Reports.Sno and o=o4、create view Group_View(Sno,AVGScore)ASselect Sno,AVG(Score)from Reportsgroup by Sno5、create view VV_View(Sno,CountCno,AVGScore)Asselect Sno,COUNT(Cno),AVG(Score)from CS_Viewgroup by Sno6、create view C_viewAsselect Snamefrom Students,Courses,Reportswhere Students.Sno=Reports.Sno AND o=o And Cname='数据库原理及其应用'7、insertinto CS_ViewValues('S52','T02','C02','59')8、UPDATE CS_ViewSET Score=Score+10where Cno='C01'9、DELETEFROM CS_ViewWHERE Sno='S03'10、drop view SCT_Viewdrop view CS_View实验5 数据控制1、grant selecton Coursesto public2、grant insert,updateon Studentsto USER1with grant option3、grant insert,update,select(Sno)on Reportsto USER24、grant insert,updateon Studentsto USER2with grant option5、revoke selecton Coursesfrom USER16、grant insert,update on Studentsto USER3with grant option grant insert,updateon Studentsto USER1revoke insert,update on Studentsfrom USER3。

相关文档
最新文档