数据库实验三
- 格式:docx
- 大小:16.40 KB
- 文档页数:3
实验三订购数据库(一)数据定义一、基本表操作1.建立基本表1)创建仓库表,由以下属性组成:仓库号(CHAR 型),城市(CHAR 型),面积(INT 型)。
其中仓库号为主码,并且有面积>0 的限定条件2)创建职工表,由以下属性组成:仓库号(CHAR型),职工号(CHAR型),工资(INT型)。
其中职工号为主码,仓库号为外码,工资的限定条件为1000<=工资<=5000。
3)创建供应商表,由以下属性组成:供应商号(CHAR型),供应商名(CHAR型),地址(CHAR 型)。
其中供应商号为主码。
4)创建订购单表,由以下属性组成:职工号(CHAR型),供应商号(CHAR型),订购单号(CHAR 型),订购日期(CHAR型)。
其中订购单号为主码,职工号和供应商号为外码。
2.修改基本表1)往订购单表中增加一个新的属性“完成日期”,DATETIME型,并且允许为空值。
2)将职工表中的工资属性类型改为SMALLINT 型。
3)删除刚才在订购单表中加入的“完成日期”属性。
二、索引操作1.建立索引1)在订购单表上建立关于供应商号的普通索引supidx。
2)在订购单表的多个字段建立索引sup_empidx,先按照供应商号升序索引,然后按照职工号升序索引。
2.删除索引1)删除订购单表上的索引supidx。
2)删除订购单表上的索引sup_empidx。
(二)数据操作一、插入数据1)向仓库表插入下列数据:WH1,北京,370WH2,上海,500WH3,广州,200WH4,武汉,4002)向职工表插入下列数据:WH2,E1,1220WH4,E2,1270WH1,E3,1210WH2,E4,1250WH3,E5,1200WH3,E6,1230WH1,E7,12503)向供应商表插入下列数据: S1,利民电子元件厂,上海S2,联华电子公司,武汉S3,振华电子厂,西安S4,华通电子公司,北京S5,607 厂,郑州S7,爱华电子厂,北京4)向订购单表插入下列数据: E3,S7,OR67,20020623E1,S4,OR73,20020728E7,S4,OR76,20020525E6,NULL,OR77,NULLE3,S5,OR79,20020613E1,NULL,OR80,NULLE3,NULL,OR90,NULLE3,S3,OR91,20020713二、查询操作1.单表查询1)查询工资多于1210 元的职工所在仓库的仓库号。
一、题目DML练习:UPDATA、DELETE、INSERT相关操作。
二、调试运行结果截图1、UPDATA(1)更新表S中的数据使AGE+1更新前UPDA TE SSET AGE=AGE+1更新后(2)用一张表去更新另一张表的数据UPDA TE TMP_SSSSET SNAME=S.SNAMEFROM SWHERE S.S#=TMP_SSS.S#UPDA TE TMP_SSSSET SNAME=(SELECT SNAMEFROM SWHERE S.S#=TMP_SSS.S#)SELECT*FROM TMP_SSS(3)把女同学的成绩提高10%U PDA TE SCSET GRADE=GRADE*1.1WHERE S#IN(SELECT S#FROM SWHERE SEX='女')SELECT*FROM SC(4)当课程低于该课程平均成绩是提高5%UPDA TE SCSET GRADE=GRADE+1.05WHERE C#='042083'AND GRADE<(SELECT A VG(GRADE)FROM SC WHERE C#='042083')SELECT*FROM SC2、DELETE(1)删除表的S#='040405028'行删前DELETE FROM SWHERE S#='040405028'删后(2)把课程名为“操作系统”的成绩从表SC中删除DELETE FROM SCWHERE C#IN(SELECT C#FROM CWHERE CNAME='操作系统')(3)把SC表中成绩大于C#='042096'平均分的同学的成绩删除删前DELETE FROM SCWHERE GRADE>(SELECT A VG(GRADE)FROM SCWHERE C#='042096');删后(4)删除基本表SCDELETE FROM SC3、INSERT(1)在新建的基本表SS中插入数据INSERT INTO SS( S#,SNAME,SEX,AGE )V ALUES('200510405301','张一二','男','20')(2)在基本表SC中连续插入3个元组INSERT INTO SCV ALUES('000000','0000','85'),('111111','1111','90'),('222222','2222','60')SELECT*FROM SC(3)在基本表SC中把平均分大于80的男生的学号和平均成绩存入另外一个已存在的基本表S_GRADE中INSERT INTO S_GRADE(S#,A VG_GRADE)SELECT S#,A VG(GRADE)FROM SCWHERE S#IN(SELECT S#FROM SWHERE SEX='男')GROUP BY S#HA VING A VG(GRADE)>60SELECT*FROM S_GRADE。
《数据库原理》实验报告题目:实验三数据完整性与安全性控制学号班级日期2016.10.18一、实验容、步骤以及结果1.利用图形用户界面对实验一中所创建的Student库的S表中,增加以下的约束和索引。
(18分,每小题3分)(1)非空约束:为出生日期添加非空约束。
非空约束:取消表S中sbirth的勾。
可能需要重建表。
(2)主键约束:将学号(sno)设置为主键,主键名为pk_sno。
设主键:单击数据库Student-->单击表-->单击S-->右击sno-->选择‘修改’命令-->对话框中右击sno-->选择‘设置主键’-->修改主键名为‘pk_sno’-->保存(3)唯一约束:为(sname)添加唯一约束(唯一键),约束名为uk_sname。
唯一约束:单击数据库Student-->单击表-->单击S-->右击sname-->选择‘修改’命令→右击sname-->选择‘索引和键’命令-->打开‘索引和键’框图-->添加-->是否唯一改为‘是’-->名称改为‘us_sname’-->关闭。
(4)缺省约束:为性别(ssex)添加默认值,其值为“男”。
设默认约束:单击数据库Student→单击表→单击S→右击sno→选择‘修改’命令→单击cno-->在默认值栏输入‘男’→保存(5)CHECK约束:为SC表的成绩(grade)添加CHECK约束,约束名为ck_grade,其检查条件为:成绩应该在0-100之间。
(6)外键约束:为SC表添加外键约束,将sno,cno设置为外键,其引用表分别是S表和C表,外键名称分别为fk_sno,fk_cno。
2.在图形用户界面中删除以上小题中已经创建的各种约束,用SQL语言分别重新创建第1题中的(2)-(6)小题.(15分,每小题3分,提示:alter table add constraint)删除约束:单击数据库Student-->表-->单击S-->展开键、约束。
实验三创建数据库和数据表一、实验目的1. 掌握使用SQL Server Management Studio创建数据库的方法与步骤2. 掌握创建数据库的SQL 语句3、掌握使用SQL Server Management Studio创建数据表的方法与步骤4、掌握创建数据表的SQL 语句背景知识在SQL Server中,数据库是由数据库文件和事务日志文件组成的。
一个数据库至少应包含一个数据库文件和一个事务日志文件。
数据库文件是存放数据库数据和数据库对象的文件。
一个数据库可以有一个或多个数据库文件,当有多个数据库文件时,有一个文件被定义为主数据库文件,扩展名为.mdf,它用来存储数据库的启动信息和部分或全部数据,一个数据库只能有一个主数据库文件。
其它数据库文件被称为次数据库文件,扩展名为.ndf,它主要用来存储除主数据文件外的所有数据文件。
一个数据库可以没有次数据库文件,但也可以同时拥有多个次数据库文件。
事务日志文件是用来记录数据库更新情况的文件,扩展名为.ldf。
它包含恢复数据库所需的所有日志信息。
每个数据库必须至少有一个日志文件。
文件组是将多个数据库文件集合起来形成的一个整体。
每个文件组有一个组名。
文件组分为主文件组和用户定义文件组。
一个文件只能存在于一个文件组中,一个文件组也只能被一个数据库使用。
注:事务日志文件不属于任何文件组。
二、实验内容与步骤2.1 操作内容:●创建一个名为“testdb”数据库:(1)包含一个数据文件,逻辑文件名“testdb_data”,磁盘文件名‘d:\testdb-data.mdf’,文件初始容量为5MB,最大容量为15MB,文件容量递增值为1MB;(2)包含一个事务日志文件,逻辑文件名为‘d:\testdb_log’, 磁盘文件名“testdb_log.ldf”,文件初始容量为5MB,最大容量为10MB,文件容量递增值为1MB;●对数据库作如下修改:(1)添加一个数据文件,逻辑文件“testdb2_data”,磁盘文件名“d;\testdb2_data.ndf”,文件初始容量为1MB,最大容量为6MB,文件容量递增值为1MB;(2)将事务日志文件的最大容量增加为15MB,递增值改为2MB;在testdb数据库下创建一个members(会员表),表结构如下:表1 表Members(会员表)2.2 实验步骤:方式一:使用SQL Server Management Studio创建和修改数据库1、创建数据库1. 单击“开始”,指向“程序”,指向“Microsoft SQL Server 2005”,然后单击“SQL Serv erManagement Studio”。
数据库原理实验报告(3)实验三数据表的创建与管理实验南京晓庄学院《数据库原理与应⽤》课程实验报告实验三数据表的创建与管理实验所在院(系):数学与信息技术学院班级:学号::1.实验⽬的(1)理解SQL Server 2005常⽤数据类型和表结构的设计⽅法。
理解主键、外键含义,掌握建⽴各表相关属性间参照关系的⽅法。
(2)熟练掌握使⽤SQL Server Management Studio图形⼯具创建表,删除表,修改表结构,插⼊及更新数据的⽅法。
(3)熟练掌握使⽤Transact-SQL语句创建表,删除表,修改表结构,插⼊及更新数据的⽅法。
2.实验要求基本实验:(1)在实验⼆所创建的“TM”数据库中合理设计以下各表逻辑结构:学⽣信息(学号,,性别,籍贯,出⽣⽇期,民族,学院/系别号,班级号)课程信息(课程号,课程名称,课程所属模块,课程类别,学分,学时)学习信息(学号,课程号,考试成绩,平时成绩)院系信息(院系号,院系名称)要求确定各个字段的名称、类型、是否有默认值,是否主键等信息。
(2)依据你所设计的表结构,使⽤SQL Server Management Studio图形⼯具在“TM”数据库中创建学⽣信息表和课程信息表,并试验在图形界⾯中修改表结构,删除数据表,输⼊并更新数据的⽅法。
(3)依据你所设计表结构,使⽤Transact-SQL语句创建学习信息表和院系信息表,并试验使⽤T-SQL语句修改表结构,删除数据表,插⼊和更新数据的⽅法。
(4)找出已创建各表之间相关属性的参照关系,并在相关表中增加引⽤完整性约束。
(5)按要求完成实验报告。
扩展实验:(1)在“TM”数据库中补充设计以下各表结构:教师信息(教师号,,性别,出⽣⽇期,学历,学位,⼊职时间,职称,院系号)授课信息(教师号,课程号,学期)班级信息(班级号,班级名称,专业号)专业信息(专业号,专业名称,学制,学位)图书信息(图书号,书名,作者,,出版⽇期,册数,价格,分类)借书偏息(学号,图书号,借出时间,归还时间)奖励信息(学号,奖励类型,奖励⾦额)(2)设计并实现各表之间相关属性的参照关系。
数据库原理实验报告实验三数据查询班级:×××姓名:×××学号:×××数据查询一、[实验目的]1.掌握SQL的单表查询操作2.掌握SQL的连接查询操作3.掌握SQL的嵌套查询操作4.掌握SQL的集合查询操作二、[实验内容]本实验的主要内容是:1.简单查询操作。
包括投影、选择条件表达,数据排序,使用临时表等。
2.连接查询操作。
包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左连接、右连接和自连接等。
3.在SQL Server查询分析器中,使用IN、比较符、ANY或ALL和EXISTS操作符进行嵌套查询操作。
4.组合查询与统计查询。
(1)分组查询实验。
该实验包括分组条件表达、选择组条件的表达方法。
(2)使用函数查询的实验。
该实验包括统计函数和分组统计函数的使用方法。
(3)组合查询实验。
(4)计算和分组计算查询的实验。
三、[实验方法]1.将查询需求用Transact-SQL语言表示。
2.在SQL Server查询分析器的输入区中输入Transact-SQL查询语句。
3.设置查询分析器结果区为Standard Execute(标准执行)或Execute to Grid方式。
4.发布执行命令,查看查询结果;如果结果不正确,进行修改,直到正确为止。
5查询分析器的主要作用是编辑Transact-SQL,将其发送到服务器,并将执行结果及分析显示出来(或进行存储)。
查询分析功能主要是通过测试查询成本,判断该查询是否需要增加索引以提高查询速度,并可以实现自动建立索引的功能。
图5- 错误!未定义书签。
SQL Server 2000查询分析器查询分析器的界面如图5- 错误!未定义书签。
所示。
在查询生成器中的左边窗口是对象浏览器,其中按树结构列出了数据库对象;右上方是SQL代码区域,用于输入SQL的查询语句;右下方为结果区,用于显示查询结果和分析结果。
《数据库原理及应用》上机实验实验三数据定义一、学时2学时二、实验类型设计三、实验目的1.巩固数据库的基础知识;2.熟悉SQL Server2012中常用的数据类型;3.熟悉和掌握利用查询分析器进行数据表的建立、修改和删除的方法;4.利用查询分析器用SQL语言定义索引并进行相关操作。
四、实验准备1.熟悉SQL Server 2012的工作环境;2.复习有关表的建立、修改和删除的SQL语言命令和方法;3.复习有关索引的建立、修改和删除的SQL语言命令和方法。
五、实验方法及步骤1.登陆企业管理器/查询分析器;2.创建数据库或连接已建立的数据库;3.在当前数据库上建立新表,并注意定义表的主码,外码;4.修改表的结构;5.在表上建立索引;6.删除表的定义。
六、实验内容使用企业管理器完成以下操作:1.创建学生课程数据库SCDB,并在SCDB中完成以下操作。
CREATE DATABASE SCDB2.创建附录中的学生关系表student:(学号为主码,姓名要求唯一值,各属性数据类型根据实际情况设置);CREATE TABLE student(sno CHAR(11)PRIMARY KEY,sname VARCHAR(12)UNIQUE,ssex VARCHAR(6),sage INT,sdept VARCHAR(50))3.创建附录中的课程关系表course:(课程号为主码,各属性数据类型根据实际情况设置);CREATE TABLE course(cno CHAR(3)PRIMARY KEY,cname VARCHAR(12),cpo VARCHAR(12),credit INT)4.创建附录中的选课关系表sc:(sno和cno共同作为主码,sno和cno分别为外码,各属性数据类型根据实际情况设置);CREATE TABLE sc(sno CHAR(11)FOREIGN KEY REFERENCES student(sno),cno CHAR(3)FOREIGN KEY REFERENCES course(cno),grade int,PRIMARY KEY (sno,cno))5.在表student上增加“出生日期”属性列sbirth,数据类型为日期型。
实验三数据库中的数据查询及视图操作实验报告实验三数据库中的数据查询及视图操作实验报告一、实验目的本实验的主要目的是熟悉数据库中的数据查询和视图操作。
通过本实验,我们可以掌握使用SQL语句进行数据查询和创建视图的方法,进一步提高对数据库的操作能力。
二、实验环境本实验使用MySQL数据库管理系统,并在Windows操作系统下进行实验。
三、实验内容本实验主要包括以下内容:1. 数据查询:使用SELECT语句查询数据库中的数据,并进行排序、过滤和聚合操作。
2. 视图操作:创建和删除视图,以及对视图进行查询和更新操作。
四、实验步骤与结果1. 数据查询首先,我们需要连接到数据库,并选择要查询的表。
假设我们选择的表名为"students",包含以下字段:学号、姓名、性别、年龄、班级。
a. 查询所有学生的信息:```sqlSELECT * FROM students;```执行以上SQL语句后,我们可以得到所有学生的信息,包括学号、姓名、性别、年龄和班级。
b. 查询男生的信息:```sqlSELECT * FROM students WHERE 性别 = '男';```执行以上SQL语句后,我们可以得到所有性别为男的学生的信息。
c. 查询年龄小于20岁的学生的姓名和班级:```sqlSELECT 姓名, 班级 FROM students WHERE 年龄 < 20;```执行以上SQL语句后,我们可以得到年龄小于20岁的学生的姓名和班级。
d. 查询学生按照年龄降序排列的结果:```sqlSELECT * FROM students ORDER BY 年龄 DESC;```执行以上SQL语句后,我们可以得到按照年龄降序排列的学生信息。
e. 查询学生按照班级分组,并统计每个班级的人数:```sqlSELECT 班级, COUNT(*) AS 人数 FROM students GROUP BY 班级;```执行以上SQL语句后,我们可以得到每个班级的人数统计结果。
数据库实验报告课程:数据库原理及应用正文:一、实验目的1.理解索引和视图的概念。
2.掌握索引的使用方法。
3.掌握视图的定义和使用方法。
4.理解存储过程的概念,掌握存储过程的使用方法。
5.学习触发器的使用,体会触发器执行的时机,加深对触发器功能和作用的理解。
6.理解SQL Server2000验证用户身份的过程,掌握设置身份验证模式的方法。
7.理解登陆账号的概念,掌握混合认证模式下登陆账号的建立与取消方法。
8.掌握混合认证模式下数据库用户的建立与取消。
9.掌握数据库用户权限的设置方法。
10.理解角色的概念,掌握管理角色技术。
11.学会配制ODBC数据源。
了解使用ODBC来进行数据库应用程序设计,通过ODBC接口访问数据库并对数据库进行操作。
学习在Visual Basic中使用ADO控件访问后台的SQL Server数据库。
二、实验内容1.建立索引。
对JWGL数据库的学生选课表SC建立索引,要求按照Cno升序、Grade降序建立一个名为SC_ind的索引。
USE JWGLIF EXISTS(SELECT name FROM sysindexes WHERE name = 'SC_ind')DROP INDEX SC.SC_ind;GOUSE JWGLCREATE INDEX SC_ind ON SC (Cno,Grade DESC);2.视图的定义和操作,(1)在JWGL数据库里,完成第三章例3.54~例3.61例题中视图的定义和视图上的查询、更新操作。
(2)在Market数据库中,完成第三章习题11中(1)中建立视图的操作,然后在视图上完成第三章习题11(2)的查询操作。
3.在数据库JWGL中,完成第四章例1,例3~7中例题的创建存储过程的操作,并使用EXEC语句调用这些存储过程执行,观察他们的执行结果。
4.在Market数据库中,完成第四章习题5中(1)~(4)创建存储过程的操作。
数据库运维课程实训报告实验3 数据库安全性与完整性控制实验实训名称:成绩教师评语教师签字日期学生姓名学号一、实训目标练习安全性授权方法、安全性和完整性查看的操作方法。
二、实训内容【实验3-1】使用create user创建用户,创建单个用户teacher,创建两个用户teacher1和student。
【实验3-2】通过直接操作MySQL用户表创建用户,创建单个用户teacher2,创建两个用户teacher3和student2(请注意,新版的MySQL可能不支持使用此方法创建新用户)。
【实验3-3】新建一个terminal窗口,使用mysql –u –h -p方式登录teacher。
【实验3-4】再次新建一个terminal窗口,使用mysql –u –h -p方式登录student。
【实验3-5】使用GRANT语句对用户student赋予所有数据库所有表的insert权限和update权限。
【实验3-6】使用GRANT语句对用户student赋予school数据库所有表的select权限。
【实验3-7】使用GRANT语句对用户student赋予school数据库stuinfo表的create 访问权限。
【实验3-8】使用GRANT语句对用户student赋予school数据库stuinfo表的stuno 列上的select访问权限。
【实验3-9】使用GRANT语句对用户student赋予s所有数据库所有表的select访问权限,并设定student每小时最多可使用select操作访问数据库的次数。
【实验3-10】查看表INFORMATION_ER_PRIVILEGES中有关student的信息,查看user表中的内容信息。
【实验3-11】查看表INFORMATION_SCHEMA.SCHEMA_PRIVILEGES,找到student在school数据库下拥有的权限。
【实验3-12】查看表INFORMATION_SCHEMA.TABLE_PRIVILEGES,查找school数据库中stuinfo数据表相关的表权限。
实验3 数据库完整性目录实验1.1 实体完整性 (1)实验1.2参照完整性 (1)实验1.3 触发器的应用 (1)实验1.1 实体完整性1)在数据库School中建立表Stu_Union,进行主键约束,在没有违反实体完整性的前提下插入并更新一条记录2)演示违反实体完整性的插入操作3)演示违反实体完整性的更新操作实验1.2参照完整性1)为演示参照完整性,建立表Course,令cno为其主键,并在Stu_Union中插入数据。
为下面的实验步骤做预先准备。
2)建立表sc,另sno和cno分别为参照Stu_Union表以及Course表的外键,设定为级连删除,并令(sno, cno)为其主键。
在不违反参照完整性的前提下,插入数据。
3)演示违反参照完整性的插入数据4)在Stu_Union中删除数据,演示级连删除。
5)Course中删除数据,演示级连删除。
6)为了演示多重级连删除,建立Stu_Card表,令stu_id为参照Stu_Union表的外键,令card_id 为其主键,并插入数据。
7)为了演示多重级连删除,建立ICBC_Card表,令stu_card_id为参照Stu_Card表的外键,令bank_id为其主键,并插入数据。
8)通过删除students表中的一条记录,演示三个表的多重级连删除。
实验1.3 触发器的应用重要提示:在做以下练习前,先删除sc对stu_union的外键引用1)在表sc中演示触发器的insert操作,当学生成绩低于60分时,自动改为60,并在事先创建的记录表中插入一条学生成绩低于60的记录。
提示:另外创建一个表记录成绩低于60分的学生的真实记录。
2)在表stu_union中创建行级触发器,触发事件是UPDATE。
当更新表stu_union的Sid时,同时更新sc中的选课记录。
提示:这个触发器的作用实际上相当于具有CASCADE参数的外键引用。
3)在表stu_union中删除一学生的学号(演示触发器的delete 操作),使他在sc中关的信息同时被删除。
一、实验目的1.掌握Windows 认证模式下数据库用户帐号的建立与取消方法;2.掌握混合模式下数据库用户帐号的建立与取消方法;3.掌握数据库用户权限的设置方法;4.熟悉数据库数据库用户帐号的权限分配、回收等方法;5.了解数据库角色的分类、作用及使用方法。
二、实验环境SQL Server 企业版三、实验学时2学时三、实验原理:1. Microsoft® SQL Server™可以在两种安全(身份验证)模式:(1)Windows 身份验证模式(Windows 身份验证)Windows 身份验证模式使用户得以通过Microsoft Windows NT® 4.0 或Windows® 2000 用户帐户进行连接。
(2)混合模式(Windows 身份验证和SQL Server 身份验证)混合模式使用户得以使用Windows 身份验证或SQL Server 身份验证与SQL Server 实例连接。
在页脚内容1Windows 身份验证模式或混合模式下,通过Windows NT 4.0 或Windows 2000 用户帐户连接的用户可以使用信任连接。
2. SQLServer的安全机制(1)服务器级别所包含的安全对象主要有登录名、固定服务器角色等。
其中登录名用于登录数据库服务器,而固定服务器角色用于给登录名赋予相应的服务器权限。
SQL Server 中的登录名主要有两种:第一种是Windows登录名,第二种是SQL Server登录名。
Windows登录名对应Windows验证模式,该验证模式所涉及的账户类型主要有Windows本地用户账户、Windows域用户账户、Windows组。
SQL Server 登录名对应SQL Server验证模式,在该验证模式下,能够使用的账户类型主要是SQL Server账户。
(2)数据库级别所包含的安全对象主要有用户、角色、应用程序角色、证书、对称密钥、非对称密钥、程序集、全文目录、DDL事件、架构等。
实验三SQL数据查询(简单查询)姓名:学号:专业:网络工程班级:20网络工程同组人:无实验日期:【实验目的与要求】1、熟练掌握SELECT 语句的基本语法格式;2、熟练掌握使用SQL语句进行单表查询,掌握GROUP BY子句、HA VING 子句和集函数;3、熟练掌握使用SQL标准语句和T-SQL扩展语句进行连接查询。
【实验内容】3.0. 实验准备与说明本实验将用到实验二中数据库SalesDB和相应的表及数据,若该数据库及表尚未创建,或数据尚未录入,则请先完成之。
请根据前面实验创建的表结构和数据,完成如下查询。
本实验及后面实验中所用测试数据库中表的字段及含义如下表:表-1 测试数据库表的字段及含义3.1.简单查询(1).查询各种产品的产品编号、产品名称和价格。
请给出相应语句:USE SalesDB;SELECT Pno,Pname,Price FROM Product;请给出运行结果:(2).查询所在城市为“厦门”的客户编号和客户名称,结果中各列的标题分别指定为:“客户编号”和“客户名称”显示。
请给出相应语句:SELECT Cno as客户编号,Cname as客户名称FROM Customer WHERE City='厦门';请给出运行结果:(3).查询各产品编号、名称、库存量和产品总值。
(总值:价格与库存数量的积)请给出相应语句:SELECT Pno,Pname,Price ,Stocks FROM Product;SELECT SUM(Price*Stocks)as产品总值FROM Product;请给出运行结果:(4).查询曾购买过产品的客户编号(不重复)。
请给出相应语句:SELECT Cno FROM Customer;请给出运行结果:(5).查询价格在1000-2000的产品信息,并依价格由低到高的顺序排序。
(请使用Between…and和算术比较运算符分别实现)a.使用Between…and比较实现:请给出相应语句:use SalesDB;select*from Productwhere Price between 1000 and 2000order by Price;请给出运行结果:b.使用算术比较实现:请给出相应语句:use SalesDB;select*from Productwhere Price >= 1000 and Price<=2000order by Price;请给出运行结果:(6).查询产品名称含有“热水器”的产品信息。
:课程名称:数据库原理院(系):计算机学院专业/年级:2014计算机科学与技术(嵌入式班)2)执行两次相同的插入操作(’0001’,’01csc’,’cs’),结果如何;insert into classvalues(’0001’,’01csc’,’cs’);2.使用SQL命令创建一学生互助表,要求:包括学生编号、学生、学生帮助对象的编号,每个学生有且仅有一个帮助对象,帮助的对象必须是已存在的学生。
create table studenthelp(sid char(10),sname char(30),shid char(10)unique,foreign key(sid)references students(sid));3.使用STC数据库,修改设置,完成以下2种不同的要求,请写出对应的语句或简述操作过程:1)当更新、删除STU表中记录时,若SC表中有此学生的记录,则拒绝;alter table scdrop FK_SC_STU;alter table scadd constraint fk_sno foreign key (sno) references stu (sno)sex char(1),sage int constraint u2 check(sage<=28), deparment char(20),constraint pk_worker primary key(number))2)插入一条合法记录;insert into workervalues('20161','王丽','n','23','科技部');3)插入一条违反U2约束的记录,简述观察到的结果如何?并分析原因;insert into workervalues('20162','民','n','30','办公部');4)去除U1约束;alter table workerdrop u1;5)修改约束U2,令sage的值大于等于0;alter table workerdrop u2;alter table workeradd constraint u2 check (sage>=0);6)创建规则rule_sex,规定更新或插入的值只能是M或F,并绑定到Worker的sex字段;create rule rule_sexas value in ('F','M')goexec sp_bindrule rule_sex,'worker.[sex]';7)插入2条记录,一条满足规则rule_sex,一条违反规则,观察结果。
实验三SQL简单查询
一、实验目的:
1. 掌握SQL查询语句的一般格式
2. 掌握简单数据查询操作。
3. 熟练掌握各种查询条件的表示。
4. 掌握排序和分组操作在SQL语句中的实现。
5. 掌握聚集函数的使用。
二、实验内容和主要步骤:
1. 实验一中的数据为基础
2. 对各表中的数据进行不同条件的查询;
1)查询全体学生的学号和姓名
2)查询全体学生的详细记录
3)查询所有选修过课程的学生学号
4)查询考试有不及格的学生学号
5)查询不是信息系(IS)、计算机系(CS)的学生性别、年龄、系别
6)查询选修了4号课的学生学号和成绩,结果按成绩降序排列
7)查询每个课程号和相应的选课人数
8)查询计算机系(CS)的学生姓名、年龄、系别
9)查询年龄18-20岁的学生学号、姓名、系别、年龄;
10)查询姓刘的学生情况
11)查询学生的姓名和出生年份(今年2003年)
12)查询没有成绩的学生学号和课程号
13)查询总成绩大于200分的学生学号
14)查询每门课程不及格学生人数
15)查询不及格课程超过3门的学生学号
16)查询年龄在10到19岁之间的学生信息
17)查询全体学生情况,按所在系升序排列,同一个系的学生按年龄降序排列
18)查询选了1号课程的学生平均成绩
19)查询选了3号课程的学生的最高分
20)查询每个同学的总成绩。
第1篇实验名称:数据库设计与实现实验日期:2023年4月15日实验班级:计算机科学与技术专业1班实验学号:12345678一、实验目的1. 理解数据库设计的基本原理和方法。
2. 掌握数据库概念结构、逻辑结构和物理结构的设计。
3. 学会使用数据库设计工具进行数据库设计。
4. 能够使用SQL语句进行数据库的创建、查询、更新和删除等操作。
二、实验内容1. 数据库概念结构设计- 分析需求,确定实体和实体间的关系。
- 设计E-R图,表示实体、属性和关系。
2. 数据库逻辑结构设计- 将E-R图转换为关系模式。
- 设计关系模式,确定主键、外键等约束。
3. 数据库物理结构设计- 选择合适的数据库管理系统(DBMS)。
- 设计数据库表结构,包括字段类型、长度、索引等。
- 设计存储策略,如数据文件、索引文件等。
4. 数据库实现- 使用DBMS创建数据库。
- 创建表,输入数据。
- 使用SQL语句进行查询、更新和删除等操作。
三、实验步骤1. 数据库概念结构设计- 分析需求,确定实体和实体间的关系。
- 设计E-R图,表示实体、属性和关系。
2. 数据库逻辑结构设计- 将E-R图转换为关系模式。
- 设计关系模式,确定主键、外键等约束。
3. 数据库物理结构设计- 选择合适的数据库管理系统(DBMS)。
- 设计数据库表结构,包括字段类型、长度、索引等。
- 设计存储策略,如数据文件、索引文件等。
4. 数据库实现- 使用DBMS创建数据库。
- 创建表,输入数据。
- 使用SQL语句进行查询、更新和删除等操作。
四、实验结果与分析1. 数据库概念结构设计- 实体:学生、课程、教师、成绩。
- 关系:学生与课程之间有选课关系,教师与课程之间有授课关系。
2. 数据库逻辑结构设计- 学生表(学号,姓名,性别,年龄,班级号)。
- 课程表(课程号,课程名,学分,教师号)。
- 教师表(教师号,姓名,性别,年龄,职称)。
- 成绩表(学号,课程号,成绩)。
第1篇一、实验目的本次实验旨在通过实际操作,加深对数据库基础知识的理解,掌握数据库的基本操作,包括数据库的创建、表的设计、数据的插入、查询、修改和删除等。
通过本次实验,提高对SQL语言的实际应用能力,为后续深入学习数据库知识打下坚实的基础。
二、实验环境1. 操作系统:Windows 102. 数据库管理系统:MySQL 5.73. 开发工具:MySQL Workbench三、实验内容1. 数据库的创建与删除2. 表的设计与数据类型3. 数据的插入、查询、修改和删除4. 索引与视图的应用四、实验步骤1. 数据库的创建与删除(1)创建数据库```sqlCREATE DATABASE db_student;```(2)删除数据库```sqlDROP DATABASE db_student;```2. 表的设计与数据类型(1)创建学生表```sqlCREATE TABLE student (id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50),age INT,gender ENUM('男', '女'),class VARCHAR(50));```(2)创建课程表```sqlCREATE TABLE course (id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50),credit INT);```3. 数据的插入、查询、修改和删除(1)插入数据```sqlINSERT INTO student (name, age, gender, class) VALUES ('张三', 20, '男', '计算机科学与技术');INSERT INTO course (name, credit) VALUES ('高等数学', 4);```(2)查询数据```sql-- 查询所有学生信息SELECT FROM student;-- 查询年龄大于20岁的学生信息SELECT FROM student WHERE age > 20;-- 查询课程名称为“高等数学”的课程信息SELECT FROM course WHERE name = '高等数学';```(3)修改数据```sql-- 修改学生张三的年龄为21岁UPDATE student SET age = 21 WHERE name = '张三';-- 修改课程“高等数学”的学分UPDATE course SET credit = 5 WHERE name = '高等数学';```(4)删除数据```sql-- 删除学生张三的信息DELETE FROM student WHERE name = '张三';-- 删除课程“高等数学”的信息DELETE FROM course WHERE name = '高等数学'; ```4. 索引与视图的应用(1)创建索引```sql-- 创建学生表id字段的索引CREATE INDEX idx_student_id ON student(id); -- 创建课程表name字段的索引CREATE INDEX idx_course_name ON course(name); ```(2)创建视图```sql-- 创建包含学生姓名和课程名称的视图CREATE VIEW student_course_view ASSELECT , FROM studentJOIN course ON student.class = course.id;```(3)查询视图数据```sql-- 查询视图中的数据SELECT FROM student_course_view;```五、实验总结通过本次实验,我深入了解了数据库的基本操作,掌握了SQL语言的运用。
数据库实验三
实验三交互式SQL(二):数据查询
【实验目的】
1.掌握SELECT语句的基本语法。
2.掌握集合函数的作用及使用方法。
3.熟悉普通连接、外连接和自身连接的概念。
4.能够熟练使用连接查询从多个表中查询数据。
5.能够熟练地使用子查询查询数据。
【实验学时】
2学时
【实验内容】
以下题目均在STUxxxx(学生管理)数据库中完成。
一、简单查询
1.查询年龄最小的前3个同学的姓名、专业和年龄(使用top、year()等相关语句)
2.查询XS表中所有同学的学号、姓名和总学分,结果中各列的标题分别指定为num,name
和mark。
3.查询XS表中的学生数据来自哪些专业(使用DISTINCT子句消除结果集中的重复行)。
4.查询XS表中专业为“计算机”的同学的情况。
5.查询XS表中1992年出生的学生姓名和专业情况。
6.查询XS表中姓“张”或“王”或“李”且单名的学生的情况。
7.查询XS表中专业为“计算机”且总学分尚未确定的学生情况。
8.从XS表中查询学生的基本信息,要求按照总学分从高到低排序,学分相同时,按学号
由低到高排序。
二、数据汇总
1.求选修了“101”课程的学生的平均成绩。
2.求选修了“102”课程的学生的最高分和最低分。
3.求学号为“*******”学生的总成绩。
4.求专业为“计算机”的学生的总人数。
5.求选修了“101”课程的学生的人数。
6.求选修了任意一门课程的学生的人数。
7.统计各个专业的学生数。
(按专业分组)
8.统计各个专业的男女生人数。
格式如下:
专业性别人数
………………
9.查找平均成绩在80分以上的学生的学号和平均成绩。
10.查找选修的课程中超过2门成绩在80分以上的学生的学号和成绩高于80分的门数。
格式如下:
学号成绩高于80分的门数
…………
三、连接查询
1.查询每个学生的基本情况及选修的课程情况,格式如下:
学号姓名专业课程号成绩
…………………………
2.查询选修了课程号为101的每个学生的姓名及成绩。
3.查询“计算机”专业且选修了“计算机基础”课程的学生的学号、姓名及成绩。
4.查询选修了课程号为101的每个学生的基本情况及成绩,若学生未选修101号课程,
也包括其情况。
5.查询生日相同的学生的姓名和出生日期。
格式如下
姓名1 姓名2 出生日期
………………
其中:“姓名1”和“姓名2”中的姓名不能相同。
6.显示每门课程的平均成绩并显示总平均成绩。
格式如下:(添
加总平均的数据使用with
roolup 语句)
课程名平均成绩
…………
(总平均)……
7.查询各个专业各门课程的平均成绩。
格式如下
专业课程名平均成绩
………………
8.查询“计算机”专业平均成绩在85分以上的学生的学号、姓名和平均成绩。
四、子查询的使用
1.查询平均成绩高于101号课程平均分的课程号及平均成绩。
2.查找比所有计算机专业的学生年龄都大的学生的情况。
3.查找未选修“C语言”课程的学生的情况。
4.查询每个专业年龄最小的学生的基本信息。
5.查询“计算机基础”成绩高于“计算机基础”平均分的学生的学号,姓名和成绩,并
按“计算机基础”成绩从高到低排序。
6.查询选修全部课程的学生的基本信息。
7.查询至少选修了“4102102”同学选修课程的学生的基本信息。