数据库实验二复杂SQL数据操作
- 格式:doc
- 大小:603.54 KB
- 文档页数:12
实验一数据定义操作●实验目的1.掌握数据库和表的基础知识2.掌握使用创建数据库和表的方法3.掌握数据库和表的修改、查看、删除等基本操作方法●实验内容和要求一、数据库的创建在开始菜单中,启动SQl Server 程序中的“SQL Server Management Studio”,在对象资源管理器窗口中,右键单击“数据库”,选择“新建数据库”,创建成绩管理数据库Grademanager,要求如下表所示:Grademanager数据库参数表二、表的创建、查看、修改和删除1.表的创建在Grademanager数据库中,右键单击“表”,选择“新建表”命令,创建如下表所示的表:(1)Student表的表结构特别注意:为属性Ssex设置约束,需选中属性Ssex行,然后单击菜单中的“表设计器”,选择“CHECK 约束”命令,然后按照图1进行设置。
图1 设置性别的约束(2)Course表(课程名称表)的表结构(3)SC表(成绩表)的表结构特别注意:①为属性Degree 约束,可参照属性Ssex进行设置,“CHECK约束对话框”中的表达式为Degree>=1 And Degree<=100②为SC表设置外键Sno和Cno的方法:右键单击表SC,选择“设计”命令,然后选择菜单“表设计器”中的“关系”命令,打开“外键关系”窗口,选择“添加”按钮,然后单击“表和列规范”后的按钮,按照图2进行设置,即可将SC表中的Cno属性设置为外键。
按照相同的方法,将属性Sno也设置为外键。
图2为SC表设置外键Cno2.向上述表中输入如下数据记录学生关系表Student (右键单击表Student ,选择“编辑前200行”)课程关系表Course 成绩表SC3.修改表结构(找到操作的方法即可,不需要真正地修改表中的属性) (1)向student 表中增加“入学时间”列,其数据类型为日期型 (2)将student表中的sdept 字段长度改为20 (3)将student 表中的Speciality 字段删除思考题1. SQL Server 的数据库文件有几种?扩展名分别是什么? 2. 如何实现数据库的备份和还原?2.在定义基本表语句时,NOT NULL 参数的作用是什么? 3.主码可以建立在“值可以为NULL ”的列上吗?实验二 简单查询● 实验目的1. 掌握SELECT 语句的基本用法2. 使用WHERE 子句进行有条件的查询3. 掌握使用IN 和NOT IN ,BETWEEN …AND 和NOT BETWEEN …AND 来缩小查询范围的方法4. 掌握聚集函数的使用方法5. 利用LIKE 子句实现字符串匹配查询6. 利用ORDER BY 子句对查询结果排序7. 利用GROUP BY 子句对查询结果分组● 实验内容和要求一、表结构修改1.在实验一的所建立的数据库中增加Teacher 表,结构如下:2.在实验一的所建立的数据库中增加Teaching 表,表结构如下: Teaching 表(授课表)的表结构3.向上述两表中输入如下数据记录教师表Teacher 授课表Teaching二、完成下面查询 1.查询所有男生信息2.查询年龄大于24岁的女生学号和姓名3.查询所有教师的Tname、Tdept4.查询“电子商务”专业的学生姓名、性别和出生日期5.查询成绩低于90分的学生学号及课号,并按成绩降序排列6.查询Student表中所有的系名7.查询“C01”课程的开课学期8.查询成绩在80分至90之间的学生学号及课号9.统计有学生选修的课程门数10.查询成绩为77,88或99的记录11.计算“C02”课程的平均成绩12.输出有成绩的学生学号13.查询所有姓“刘”的学生信息14.统计输出各系学生的人数15.查询选修了“C03”课程和学生的学号及其成绩,查询结果按分数的降序排列16.查询各个课程号及相应的选课人数,并为选课人数取别名为“人数”17.统计每门课程的选课人数和最高分,并为选课人数和最高分分别取别名为“人数”、“最高分”18.统计每个学生的选课门数和考试总成绩,并为选课门数和总成绩分别取别名为“门数”、“总成绩”,并按选课门数降序排列。
《数据库系统概论》实验报告题目:实验二(3)交互式SQL 语言姓名 Vivian 日期 2005-1-1实验内容及完成情况:(写出每一种类型的SQL测试用例)本实验中的表名、属性名全部用中文。
(一)数据定义一、基本表操作1.建立基本表1)创建仓库表,由以下属性组成:仓库号(CHAR型),城市(CHAR型),面积(INT型)。
其中仓库号为主码,并且有面积>0的限定条件。
CREATE TABLE 仓库(仓库号 CHAR(5) PRIMARY KEY,城市 CHAR(10),面积 INT CHECK(面积>0));2)创建职工表,由以下属性组成:仓库号(CHAR型),职工号(CHAR型),工资(INT 型)。
其中职工号为主码,仓库号为外码,工资的限定条件为1000<=工资<=5000,并且设定缺省值为1200。
CREATE TABLE 职工(仓库号 CHAR(5) REFERENCES 仓库(仓库号),职工号 CHAR(5) PRIMARY KEY,工资 INT CHECK (工资>=1000 AND 工资<=5000) DEFAULT 1200);或者:CREATE TABLE 职工(仓库号 CHAR(5) ,职工号 CHAR(5) PRIMARY KEY,工资 INT CHECK (工资>=1000 AND 工资<=5000) DEFAULT 1200,FOREIGN KEY (仓库号) REFERENCES 仓库(仓库号));3)创建供应商表,由以下属性组成:供应商号(CHAR型),供应商名(CHAR型),地址(CHAR型)。
其中供应商号为主码。
CREATE TABLE 供应商(供应商号 CHAR(5) PRIMARY KEY,供应商名 CHAR(20),地址 CHAR(20));4)创建订购单表,由以下属性组成:职工号(CHAR型),供应商号(CHAR型),订购单号(CHAR型),订购日期(CHAR型)。
数据库原理实验报告实验名称:实验二使用SQL语句操作数据实验时间:2013.4.16学生姓名:班级:软件学号:一、实验目的1、熟悉SQL Server 2005的基本环境2、使用对象资源管理器管理数据库、基本表、视图、索引等对象3、锻炼学生对SQL Server 2005基本操作能力二、实验内容1、使用对象资源管理器创建SPJ数据库(1)更改主数据库文件的增长模式,改为按5MB自动增长;(2)更改事务日志文件的增长模式,改为按1MB自动增长。
2、在数据库中创建S, P, J, SPJ四个关系模式:S ( SNO, SNAME, STATUS, CITY )P(PNO, PNAME, COLOR, WEIGHT)J(JNO, JNAME, CITY)SPJ(SNO, PNO, JNO, QTY)【说明:供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成;零件表P由零件代码(SNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成;工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成;供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成。
】3、建立数据库关系图。
将建好的数据库和表转化为SQL语句,以sql脚本方式保存。
4、使用对象资源管理器向表中插入下列数据。
SP表5、使用SQL语言完成如下操作:1)求供应工程J1零件的供应商号码SNO。
2)求供应工程J1零件P1的供应商号码SNO。
3)求供应工程J1零件为红色的供应商号码SNO。
4)求没有使用天津供应商生产的红色零件的工程号JNO。
5)求至少用了供应商S1所供应的全部零件的工程号JNO。
6)找出所有供应商的姓名和所在城市。
7)找出所有零件的名称、颜色、重量。
8)找出使用供应商S1所供应零件的工程号码。
数据库sql 实验报告数据库SQL实验报告1. 引言数据库是现代信息系统中不可或缺的组成部分,它提供了有效地存储和管理数据的能力。
结构化查询语言(SQL)是一种用于管理和操作关系型数据库的标准化语言。
本实验报告旨在通过实际操作和实验结果的分析,探讨SQL在数据库中的应用和效果。
2. 实验目的本次实验的主要目的是熟悉和掌握SQL语言的基本操作,包括数据的查询、插入、更新和删除等。
通过实验,我们可以进一步了解SQL语言的特点和使用方法,加深对数据库管理系统的理解。
3. 实验环境本次实验使用的数据库管理系统为MySQL,它是一种开源的关系型数据库管理系统。
MySQL提供了强大的功能和灵活的配置选项,被广泛应用于各种规模的应用程序中。
4. 实验步骤4.1 数据库连接在实验开始之前,我们首先需要建立与数据库的连接。
通过使用MySQL提供的连接函数,我们可以指定数据库的主机地址、用户名和密码等信息,以便进行后续的操作。
4.2 数据库创建在连接成功后,我们可以使用SQL语句创建一个新的数据库。
通过指定数据库的名称和字符集等属性,我们可以灵活地创建适合自己需求的数据库。
4.3 数据表创建数据库中的数据以表的形式进行组织和存储。
在本次实验中,我们将创建一个名为"students"的数据表,用于存储学生的基本信息。
通过指定表的字段和属性,我们可以定义每个字段的数据类型和约束条件。
4.4 数据插入在数据表创建完成后,我们可以使用SQL语句向表中插入数据。
通过指定插入的字段和对应的值,我们可以将具体的数据添加到表中。
在插入数据时,我们还可以使用事务来确保数据的完整性和一致性。
4.5 数据查询数据查询是SQL语言的核心功能之一。
通过使用SELECT语句,我们可以从表中检索所需的数据。
SELECT语句可以使用不同的条件和运算符进行过滤和排序,以满足不同的查询需求。
4.6 数据更新和删除除了查询,SQL语言还提供了更新和删除数据的功能。
SQL实验二:数据库查询实验报告实验二数据库的查询实验实验目的和要求(1)掌握SQL Server查询分析器的使用方法,加深对SQL和Transact-SQL语言的查询语句的理解。
(2)熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。
(3)熟练掌握数据查询中的分组、统计、计算和组合的操作方法。
实验内容和原理在实验一定义的“学生成绩数据库”中,使用T-SQL 语句完成以下查询:(1 )求计算机系学生的学号和姓名。
(2)求选修了数学的学生学号、姓名和成绩。
(3)求选修01 课程的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。
(4)查找选修课程的平均成绩位于前三名的学生的学号。
(5)查询计算机系的姓刘且单名的学生的信息。
(6)查询至少选修两门课程的学生学号。
(7)查询学生的学号、课程号以及对应成绩与所有学生所有课程的最高成绩的百分比。
(8)查询选修“数据库”课程,且成绩在80 分以上的学生的学号和成绩。
(9)查询所有姓“王”的同学没有选修的课程名。
(请分别用exists 和in完成该查询) (10)查询选修了全部课程的学生的姓名。
(请至少写出两种查询语句)(11)求选修了学生“ *****”所选修的全部课程的学生学号和姓名。
(12)查询每一门课的间接先修课。
(13)列出所有学生所有可能的选课情况。
(14)列出每个学生的学号及选修课程号,没有选修的学生的学号也一并列出。
(15)输出与“张三”同性别并位于同一个系的所有同学的姓名。
(请至少写出两种查询语句)(16)查询至少被两名男生选修的课程名。
(17)对被两名以上学生所选修的课程统计每门课的选课人数。
要求输出课程号和选修人数,查询结果按人数降序排列;若人数相同,按课程号升序排列。
(18)列出选修课程超过 3 门的学生姓名及选修门数。
(19)检索至少选修课程号为01 和03 的学生姓名。
(20)检索至少选修课程“数学”和“操作系统”的学生学号。
《数据库原理与应用》实验指导第二讲:实验二:SQL进行数据库操作一、实验目的理解SQL的基本概念和特点;掌握在SQL Server Management Studio环境中编写SQL语句的方法;理解通过SQL语句进行数据库管理维护和数据操作的方法;熟练掌握SQL的数据定义子句的具体使用方法;熟练掌握SQL的数据查询子句Select的具体使用方法,包含单表查询、连接查询、嵌套查询和集合查询四种方式;熟练掌握SQL的数据更新子句Insert、Update和Delete的具体使用方法。
二、实验环境安装有MS SQL Server 2008的服务器和本地客户机;安装有MS SQL Server 2008的服务器;基于TCP/IP协议的局域网网络环境,并且使用固定IP地址(私有IP地址,开放1433端口)。
三、实验要求1、掌握通过SQL Server Management Studio连接数据库服务器中的数据库的方法;2、掌握通过SQL Server Management Studio,使用Create、Alter、Drop子句进行数据库、数据表的定义的方法;2、掌握通过SQL Server Management Studio,使用Select子句完成单表查询、连接查询、潜逃查询和集合查询的方法;4、掌握通过SQL Server Management Studio,使用Insert、Update、Delete子句进行数据的更新操作的方法。
四、实验原理1、SQL的基本概念和原理;SQL全称是“结构化查询语言(Structured Query Language)”,最早的是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE语言。
SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言,得到了广泛的应用。
如今无论是像Oracle ,Sybase,Informix,SQL server这些大型的数据库管理系统,还是像Visual Foxporo,PowerBuilder这些微机上常用的数据库开发系统,都支持SQL语言作为查询语言。
实验二SQL语言——数据定义操作一、实验时间:二、实验地点:实训楼402室三、实验条件与环境1.通用PC机2.PC机必须安装Windows 2000系列、Windows XP系列或Windows NT操作系统平台3.PC机还须安装Microsoft SQL Server 2000 任意一版本(个人版、标准版、企业版)4.最好有一台公用的SQL Server 2000 服务器四、实验目的1.通过上机实验掌握Transact-SQL语句的编写及运行过程2.通过上机实验掌握数据库的建立与删除过程3.通过上机实验掌握数据表的建立与删除过程4.通过上机实验掌握数据表的相关修改操作(如为表创建新列,建立及删除数据约束条件等)5.通过上机实验掌握为数据表创建索引以及删除索引的操作6.通过上机实验了解Transact-SQL与DB2-SQL两种SQL语言在语法结构及功能上的异同五、实验要求:1.实验内容中涉及到的具体操作均通过SQL语言来实现2.实验完成后需要书写实验报告,本次实验报告需在下次实验课堂上上交六、实验内容:1.熟悉SQL Server 2000软件界面、构架及其基本操作使用环境2.在本地SQL服务器上分别建立名为MyDB和MyDB1的数据库3.在数据库MyDB1中建立数据表MyTab(a:int,b:float)4.在数据库MyDB中建立以下四个数据表(S,P,J,SPJ)S表(SNO:字符串类型SNAME:字符串类型STA TUS:整数类型CITY:变长字符串类型)P表(PNO:字符串类型PNAME:变长字符串类型COLOR:字符串类型WEIGHT:实数类型)要求:PNO属性值必须不重复且不允许取空值,PNAME属性值不允许取空值J表(JNO:字符串类型JNAME:变长字符串类型CITY:变长字符串类型)JNAME属性值不允许取空值JNO:字符串类型QTY:整数类型)QTY属性值不能为空值5分别删除数据表MyTab和数据库MyDB16.数据表的修改操作(1)为S表新建一属性名为PHONE的列,其数据类型为字符串类型(2)为J表的JNAME属性列创建一个该属性列值不为空的约束条件NotnullJname (3)删除J表中JNAME属性列上取值不为空的约束条件NotnullJname(4)为P表的PNO属性列创建一个该属性列值互不重复的约束条件UnqPno(5)删除P表中PNO属性列上取值不重复的约束条件UnqPno(6)为SPJ表的QTY属性列建立取值必须是100的整数的约束条件QTYNum7.索引的创建操作(1)在S表的SNO属性列上建立一个名为SnoIndex的唯一索引(2)为P表的PNO属性列创建一个名为PnoIndex的唯一索引,索引值按降序排列(3)为J表的JNAME属性列创建一个名为JnameIndex的聚簇索引(4)为SPJ表的SNO、PNO、JNO三属性列创建一个名为SPJIndex的聚簇索引8.索引的删除操作(1)删除S表上的SnoIndex索引(2)删除P表上的PnoIndex索引(3)删除J表上的JnameIndex索引(4)删除SPJ表上的SPJIndex索引七、实验总结:数据定义功能是关系数据库管理系统对数据操作的一个主要功能。
实验二复杂的数据查询
一、实验目的
掌握利用select语句进行复杂的数据查询。
二、实验要求
写出实训时碰到的问题以及解决问题的办法,完成本次实训的体会。
三、实验内容
1.检索限选人数小于平均限选人数的课程名称和教师
2.检索班级号为20000003的学生的学号、姓名、班级代码、班级名称
3.检索学生选课为第1志愿(WILLORDER)的学号、姓名、课程号、课程名称
4.按部门统计课程的平均报名人数,要求显示部门名称、平均报名人数。
5.统计各部门的班级数,要求显示部门编号、部门名称和班级数量。
6.查看“00电子商务”版的选修报名情况。
要求显示学号、姓名、课程编号、课程名称、志愿号,并按学号(升序)、志愿号(降序)排列。
7.查看“甘蕾”同学选修的课程名、学分、上课时间、志愿号,按志愿号(升序)排序查询结果。
8.按系部统计各系的最少报名人数、最多报名人数、平均报名人数和报名总数,并汇总显示所有系部的报名总数。
要求平均报名人数保留两位小数位。
四、实验作业
严格按照各题要求做实验,在实训报告中,需要对知识点进行描述,撰写实验过程及过程中遇到的难点,并给出解决办法或新的心得体会。
数据库实验sql语法实验报告数据库实验SQL语法实验报告本次数据库实验主要涉及SQL语法的学习和应用,通过对实验指导书中所给出的数据库进行操作,对SQL语法有了更加深入的理解和掌握。
以下是本次实验的具体内容和结果。
一、实验环境实验环境为Windows 10操作系统,使用MySQL Workbench 8.0作为数据库管理工具。
二、实验步骤1.创建数据库和表格首先需要创建一个新的数据库,使用以下命令:CREATE DATABASE experiment;然后,创建一个新的表格,使用以下命令:CREATE TABLE students (id INT PRIMARY KEY,name VARCHAR(50),age INT,gender VARCHAR(10));2.插入数据接下来,插入一些数据到students表格中,使用以下命令:INSERT INTO students (id, name, age, gender) VALUES (1, '张三', 18, '男'),(2, '李四', 19, '女'),(3, '王五', 20, '男'),(4, '赵六', 21, '女');3.查询数据现在,我们可以查询students表格中的数据,使用以下命令:SELECT * FROM students;这个命令将会返回students表格中的所有数据,包括id,name,age和gender。
4.更新数据如果需要更新students表格中的某一条数据,可以使用以下命令:UPDATE students SET age=22 WHERE id=4;这个命令将会将id为4的数据的age字段更新为22。
5.删除数据如果需要删除students表格中的某一条数据,可以使用以下命令:DELETE FROM students WHERE id=3;这个命令将会删除id为3的数据。
数据库系统实验报告专业班级学生姓名及学号课程教学班号任课教师实验指导教师实验地点2012 ~2013 学年第二学期实验一使用向导创建和删除数据库一.实验目的1.熟悉SQL Server 中SQL Server Management Studio的环境2.了解SQL Server 数据库的逻辑结构和物理结构3.掌握使用向导创建和删除数据库的方法二.实验要求1.熟练使用SSMS进行数据库的创建和删除操作。
2.完成实验报告。
三.实验内容设有一学籍管理系统,其数据库名为“EDUC”。
初始大小为 10MB,最大为50MB,数据库自动增长,增长方式是按5%比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。
数据库的逻辑文件名为“student_data”, 物理文件名为“student_data.mdf,存放路径为“E:\sql_data”(注意:此文件名必须已经建立的前提下才可以此操作)。
日志文件的逻辑文件名为“student_log”, 物理文件名为“student_log.ldf”,存放路径为“E:\sql_data”。
四.实验步骤1.使用SQL Server Management Studio(简称SSMS)创建数据库。
(1)启动SSMS在开始菜单中:所有程序-SQL Server 2005 -SQL Server Management Studio单击“连接”按钮,便可以进入【SQL Server Management Studio】窗口。
如果身份验证选择的是“混合模式”,则要输入sa的密码。
(2)建立数据库在“对象资源管理器”窗口,建立上述数据库EDUC。
在数据库节点上右击选择新建。
同时建立一个同样属性的数据库EDUC1。
2. 使用向导删除上面建立的数据库。
用SSMS删除建立的数据库EDUC。
3、数据库的分离将刚建好的数据库分离出来,即点击新建的EDUC——任务——分离,将删除连接和更新打一个钩,然后点击确定。
实验报告学院(系)名称:计算机与通信工程学院
2.必作题
(1) 将学习了数据库课程的学生成绩加5分。
(2) 将计算机系学习了2号课程的学生成绩置0。
(3)将李勇的数据库成绩改为85。
(4) 将选修了2号课程且成绩为空的选课记录删除。
2号课程成绩无控制,下图为原始Course 表
(5) 从课程表中删除在选课表中没有选课记录的课程记录。
(6) 删除计算机系学生选修了数据库课程的选课记录。
(7) 求各系的系名及男女生人数并将结果保存到另一个表中。
(8) 将平均成绩80分以上的学生的学号,选学的课程数和平均成绩保存到另一个表中。
(9)创建一个视图,查询没有选修课程的学生学号、姓名和所在系,并利用该视图查询所有没有选修课程的学生信息。
(10) 创建一个给出学生的姓名、课程名和成绩的视图,并利用该视图查询某个学生学习的课程名和成绩。
有的课程有两个先行课;
11)创建一个视图,求各门课程的课程号、选课人数、平均分、最高分,并利用该视图查询1号课程的选课人数、平均分、最高分。
(12) 创建一个视图,求选修了2号课程且成绩高于该门课程平均分的学生学号和成绩。
(13)创建用户user1,将学生表的select权限赋给用户user1,然后以user1登录,检查权限情况。
(14)收回用户user1的对学生表的select权限,然后以user1登录,检查权限情况。
3.自拟题
五、问题及体会。