SQL Server数据库实践教程 实验报告汇 王雪梅 实验1-12 SSMS图形界面创建数据库和学生表-权限设置_第1页
SQL Server数据库实践教程 实验报告汇 王雪梅 实验1-12 SSMS图形界面创建数据库和学生表-权限设置_第2页
SQL Server数据库实践教程 实验报告汇 王雪梅 实验1-12 SSMS图形界面创建数据库和学生表-权限设置_第3页
SQL Server数据库实践教程 实验报告汇 王雪梅 实验1-12 SSMS图形界面创建数据库和学生表-权限设置_第4页
SQL Server数据库实践教程 实验报告汇 王雪梅 实验1-12 SSMS图形界面创建数据库和学生表-权限设置_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库实验报告实验名称实验1SSMS图形界面创建数据库和学生表实验日期班级学号姓名实验报告要求:1.实验目的2.实验内容3.实验步骤4.实验小结一、实验目的熟悉MicrosoftSQLServerManagementStudio(简称SSMS)平台的操作。能够在图形化界面创建和维护数据库,建立对数据库的感性认识。能够在图形化界面创建表,进行数据的增、删、改、查。能够在图形化界面分离数据库。实验内容按照要求完成如下操作。如果有不会的操作,可以扫描书上二维码看操作演示视频。在SSMS平台创建数据库,命名为stu+姓名简拼,存在C盘根目录。(视频1创建数据库)打开新创建的数据库,创建一个学生表,表名也加上自己姓名的简拼,命名为:Student+姓名简拼,加主键、非空约束、检查约束和默认值。表结构如表2-4所示。(视频2建student表-主键、非空、默认值、检查约束)表2-4学生表列名数据类型宽度为空性说明Snointnotnull学号,主键Snamevarchar8notnull姓名Ssexchar2性别,限制只能输入“男”和“女”Sagesmallint年龄Sdeptvarchar4所在系,默认“CS”增加、修改数据(在表名上单击右键,选择【编辑前200行】)。录入正确的数据,也录入错误的数据检验主键、非空约束、默认值和外键的作用,看懂错误提示之后,修改为正确数据存入,数据如表2-5所示。最后再增加一行你自己的姓名、性别、年龄等信息。表2-5学生表数据SnoSnameSsexSageSdept说明200215121200215122200215123200515125200215126200215122李勇刘晨王敏张立萧山李世民男女女男F男20191819CSMAIS正确数据正确数据,Sdept默认CS正确数据正确数据错误数据,性别错错误数据,学号重复说明:CS计算机科学系,MA数学系,IS信息系分离数据库。(视频3分离附加数据库)截图填写实验报告,交作业包括三个文档:实验报告、数据文件和日志文件。并在实验小结中回答思考题。三、实验步骤(粘贴几张运行结果截图,截图上必须能看到你的姓名简拼)四、实验小结思考题:字段设置为NotNull是什么意思,在录入数据时有什么影响。例如student表中的学生姓名设置为NotNull,在录入数据的时候是否可以不录入学生姓名。性别列的检查约束的作用是什么。所在系默认值的效果是什么?如果不分离数据库,能否拷贝数据库文件。成绩优良中及格不及格教师签名:日期:数据库实验报告实验名称实验2SSMS图形界面管理数据库和课程表、成绩表实验日期班级学号姓名实验报告要求:1.实验目的2.实验内容3.实验步骤4.实验小结一、实验目的熟悉MicrosoftSQLServerManagementStudio(简称SSMS)平台的操作。能够在图形化界面创建和维护数据库,建立对数据库的感性认识。能够在图形化界面创建表,进行数据的增、删、改、查。能够理解各种约束的作用。能够在图形化界面分离和附加数据库。实验内容按照要求完成如下操作。如果有不会的操作,可以扫描书上二维码看操作演示视频。下载上次课数据文件和日志文件,附加数据库。(视频3分离附加数据库)打开数据库,继续创建课程表和成绩表,分别命名为Course+姓名简拼和SC+姓名简拼,加主键(含联合主键)、外键、非空约束等。表结构如表2-6和表2-7所示。(视频4建SC表-联合主键、外键)表2-6Course+姓名简拼列名数据类型宽度为空性说明Cnointnotnull课程号,主键Cnamevarchar50notnull课程名Cpnoint先行课Ccreditsmallint学分表2-7SC+姓名简拼列名数据类型宽度为空性说明Snointnotnull学号,联合主键,外键Cnointnotnull课程号,联合主键,外键Gradeint成绩增加、修改数据(在表名上单击右键,选择【编辑前200行】)。(1.3插入、修改、删除数据、1.4查询数据)录入正确的数据,也录入错误的数据,检验主键、联合主键、非空约束和外键的作用,看懂错误提示之后,修改为正确数据存入,数据如表2-8和表2-9所示。2-8课程表数据CnoCnameCpnoCcredit说明12345668数据库数学信息系统操作系统数据结构数据处理PASCAL语言516764243424正确数据正确数据正确数据正确数据正确数据正确数据错误数据,课程号重复错误数据,课程名不可以空表2-9成绩表数据SnoCnoGrade说明2002151212002151212002151212002151222002151211232292908099正确数据正确数据,成绩可以空正确数据错误数据,学号不可以空错误数据,课程号不可以空错误数据,主键冲突修改表结构。在课程表增加一列存课程学时hourint。注意:修改表结构后一定要保存修改。查询数据(表名上单击右键,选择【选择前1000行】),查看表结构变化。(1.4查询数据)分离数据库。(1.1.5分离数据库)截图填写实验报告,交作业包括三个文档:实验报告、数据文件和日志文件。三、实验步骤(粘贴几张运行结果截图,截图上必须能看到你的姓名简拼)四、实验小结思考题:主键约束的效果是什么,学生表、课程表上的主键和成绩表上的联合主键效果有什么不同。习题解析第1章习题解析第1章成绩优良中及格不及格教师签名:日期:数据库实验报告实验名称实验3数据定义实验日期班级学号姓名实验报告要求:1.实验目的2.实验内容3.实验步骤4.实验小结一、实验目的能够熟练使用SQL语句创建、修改和删除数据库。能够熟练使用SQL语句创建、修改和删除表。能够熟练使用SQL语句创建和维护表中约束。实验内容销售数据库中有四张表:员工表、商品表、客户表和订单表。员工表、商品表和客户表三个表之间没有联系,三个表都与订单表有一对多的联系,订单表中记载每一笔销售订单信息,包括哪位员工将哪种商品销售给了哪个客户,并记录销售数量和销售日期。四个表之间的联系如图2-5所示:图2-5销售数据库四个表之间的联系使用SQL语句创建销售数据库,数据库名字为Sales+你的姓名简拼,保存在C盘根目录,数据文件初始大小3MB,增长率10%。使用USE命令打开刚创建的数据库。使用SQL语句在刚创建的数据库中创建四张表,并增加约束,表结构如表2-4~表2-7所示,创建的表名字上都要加上你的姓名简拼。表2-4员工表表名:Employee+你的姓名简拼字段名称类型宽度约束字段说明EIDintnotnull主键员工号ENamevarchar(50)notnull员工姓名Sexchar(2)notnull,约束为‘男’或‘女’性别HireDatesmalldatetime

聘任日期Salarymoney

工资表2-5商品表表名:Product+你的姓名简拼字段名称类型宽度约束字段说明PIDintnotnull主键商品编号PNamevarchar(50)notnull商品名称PriceDecimal(8,2)单价StockNumberint

现有库存量SellNumberint

已销售数量表2-6客户表表名:Customer+你的姓名简拼字段名称类型宽度约束字段说明CIDintnotnull主键客户编号CNamevarchar(50)notnull客户名称,唯一Phonevarchar(20)联系电话Addressvarchar(100)客户地址Emailvarchar(50)客户Email表2-7订单表表名:Orders+你的姓名简拼字段名称类型宽度约束字段说明IDintnotnull主键订单编号EIDint来自员工表的外键员工号PIDint来自商品表的外键商品编号CIDint来自客户表的外键客户编号Numberint订货数量Datesmalldatetime订货日期,默认当前日期在你的数据库名字上右击,在弹出菜单中选择【刷新】命令,在【表】中查看你创建的四张表。使用SQL语句删除员工表,查看语句运行效果。三、实验步骤(粘贴几张运行结果截图,截图上能看到数据库名、表名和表的结构)四、实验小结思考题:说一说四个表之间的联系是如何体现的。建表时是否有顺序的要求,哪个表必须最后创建。删除表时是否有顺序要求。成绩优良中及格不及格教师签名:日期:----《初识数据库》实验4数据更新环境代码----说明:先将WWW替换为你的姓名简拼,然后整体执行代码--创建数据库(判断数据库如果存在,先删除后创建)USEmasterGOIFEXISTS(SELECT*FROMsysdatabasesWHEREname='Saleswww')DROPDATABASESaleswwwGOcreatedatabaseSaleswwwon(name=Saleswww_data,filename='c:\Saleswww_data.mdf',size=3,filegrowth=10%)logon(name=Saleswww_log,filename='c:\Saleswww_log.ldf')go--使用USE命令打开刚创建的数据库。useSaleswww--使用SQL语句在刚创建的数据库中创建四张表,并增加约束createtableEmployeewww--员工表(EID int notnullprimarykey,--主键 员工号EName varchar(50) notnull,--员工姓名Sex char(2) notnullcheck(Sex='男'orSex='女'),--性别HireDate smalldatetime ,--

聘任日期Salary money--工资)createtableProductwww--商品表(PID int notnullprimarykey,--主键 商品编号PName varchar(50) notnull,--商品名称Price Decimal(8,2),--单价StockNumber int,--现有库存量SellNumber int--已销售数量)createtableCustomerwww--客户表(CID int notnullprimarykey,--主键 客户编号CName varchar(50) notnullunique,--客户名称,唯一Phone varchar(20) ,--联系电话Address varchar(100) ,--客户地址Email varchar(50) --客户Email)createtableOrderswww--订单表(ID int notnullprimarykey,--主键 订单编号EID int foreignkeyreferencesEmployeewww(Eid),--来自员工表的外键 员工号PID int foreignkeyreferencesProductwww(Pid),--来自商品表的外键 商品编号CID int foreignkeyreferencesCustomerwww(Cid),--来自客户表的外键 客户编号Number int ,--订货数量Date smalldatetimedefault(getdate()) --订货日期,默认当前日期)数据库实验报告实验名称实验4数据更新实验日期班级学号姓名实验报告要求:1.实验目的2.实验内容3.实验步骤4.实验小结一、实验目的熟练使用SQL语句进行数据的增、删、改操作。通过不同的数据检验约束的效果,进一步理解完整性约束的作用。实验内容销售数据库中有四张表:员工表、商品表、客户表和订单表。四个表之间的联系如图2-5所示,表结构如表2-4~表2-7所示:图2-5销售数据库四个表之间的联系表2-4员工表表名:Employee+你的姓名简拼字段名称类型宽度约束字段说明EIDintnotnull主键员工号ENamevarchar(50)notnull员工姓名Sexchar(2)notnull,约束为‘男’或‘女’性别HireDatesmalldatetime

聘任日期Salarymoney

工资表2-5商品表表名:Product+你的姓名简拼字段名称类型宽度约束字段说明PIDintnotnull主键商品编号PNamevarchar(50)notnull商品名称PriceDecimal(8,2)单价StockNumberint

现有库存量SellNumberint

已销售数量表2-6客户表表名:Customer+你的姓名简拼字段名称类型宽度约束字段说明CIDintnotnull主键客户编号CNamevarchar(50)notnull客户名称,唯一Phonevarchar(20)联系电话Addressvarchar(100)客户地址Emailvarchar(50)客户Email表2-7订单表表名:Orders+你的姓名简拼字段名称类型宽度约束字段说明IDintnotnull主键订单编号EIDint来自员工表的外键员工号PIDint来自商品表的外键商品编号CIDint来自客户表的外键客户编号Numberint订货数量Datesmalldatetime订货日期,默认当前日期请使用SQL语句完成如下操作。将你和你的同组同学作为公司员工录入到员工表中,第一行录入你自己的信息,再录入至少两位同组同学的信息。提示:int型和money型数据直接写数字,不加引号,字符型和日期型数据要加单引号,例如日期型可写为'2024-4-23'的格式;自己设计数据验证主键、非空和检查约束的效果。公司新进打印纸和墨盒,各进货100件,其中打印纸定价5元,墨盒定价21.5元,请用SQL语句完成商品信息入库操作。构件厂是公司的一个客户,该客户想要购买10件打印纸,如果由你来接待这个客户,请你先沟通了解客户的信息,将信息记录到客户表中,然后生成销售订单,将打印纸的商品编号、客户编号、你的员工编号和销售数量等信息记录在订单表中。打印纸卖出了10件,不仅需要在订单表中记载,也需要更新商品表中该商品的现有库存量和已销售数量,请你修改表中数据,将打印纸的现有库存量减少10,已销售数量增加10。提示:销售商品既需要插入操作,也需要更新操作,涉及两张表。请你再进货几件商品,增加几个客户,进行信息入户操作和相应销售操作。有一名员工离职了,请你在员工表中将该员工删除。有的商品不再供货,需要在商品表中删除,请你选择一个未销售过的商品和一个已经有销售订单的商品分别删除,比较效果有什么不同。三、实验步骤(请粘贴全部SQL语句,并截取几张运行截图,截图上能看到数据库名、表名和表中数据)四、实验小结思考题:删除主键表数据会受外键表上的外键制约,不同的数据选择不同的处理方式,请你说说删除员工、商品和客户信息分别应该怎么处理。成绩优良中及格不及格教师签名:日期:数据库实验报告实验名称实验5单表查询(一)实验日期班级学号姓名实验报告要求:1.实验目的2.实验内容3.实验步骤4.实验小结一、实验目的熟练使用SQL语句完成选择、投影等单表查询语句。熟悉常见日期函数、字符串函数的使用方法。实验内容销售数据库中有四张表:员工表、商品表、客户表和订单表。表结构如表2-4~表2-7所示:表2-4员工表表名:Employee+你的姓名简拼字段名称类型宽度约束字段说明EIDintnotnull主键员工号ENamevarchar(50)notnull员工姓名Sexchar(2)notnull,约束为‘男’或‘女’性别HireDatesmalldatetime

聘任日期Salarymoney

工资表2-5商品表表名:Product+你的姓名简拼字段名称类型宽度约束字段说明PIDintnotnull主键商品编号PNamevarchar(50)notnull商品名称PriceDecimal(8,2)单价StockNumberint

现有库存量SellNumberint

已销售数量表2-6客户表表名:Customer+你的姓名简拼字段名称类型宽度约束字段说明CIDintnotnull主键客户编号CNamevarchar(50)notnull客户名称,唯一Phonevarchar(20)联系电话Addressvarchar(100)客户地址Emailvarchar(50)客户Email表2-7订单表表名:Orders+你的姓名简拼字段名称类型宽度约束字段说明IDintnotnull主键订单编号EIDint来自员工表的外键员工号PIDint来自商品表的外键商品编号CIDint来自客户表的外键客户编号Numberint订货数量Datesmalldatetime订货日期,默认当前日期查询语句格式SELECT[ALL|DISTINCT][TOPn|PERCENT]<目标列表达式>[,<目标列表达式>]…FROM<表>[WHERE<条件表达式>][GROUPBY<列名1>[HAVING<条件表达式>]][ORDERBY<列名2>[ASC|DESC]];日期函数:getdate()取系统当前时间,year()取日期中的年字符串函数:left(,n)请使用SQL语句完成如下查询操作,每个查询只涉及一张表中的数据。1、使用销售数据库的题目查询所有客户的详细信息。查询所有客户的客户编号、客户姓名、电话。查询所有员工的姓名及入职年限(使用日期函数)。查询员工入职年份分布在哪几年,不显示重复值(使用日期函数)。查询价格在100~300元之间的商品的编号、名称和价格。查询商品编号为1、3、5、7、9的商品的详细信息。查询哪些客户没有填写地址和Email。查询价格最高的前十个商品的编号、名称和价格。查询客户分布在哪几个城市(地址前三个字表示城市)。查询姓名第二个字是“恒”的客户,显示客户名称和电话的汉字别名。使用stuDB数据库的题目(6道题)【例题5-1】查询全体学生的姓名和民族。【例题5-2】查询全体学生的姓名、民族和性别。【例题5-3】查询全体学生的详细信息。【例题5-4】查询学生的姓名及年龄。【例题5-5】查询学生分布在哪些民族。【例题5-6】查询课程表中前两门课程的详细信息。【例题5-7】查询哪些学生是少数民族,显示学生姓名和民族。【例题5-8】查询年龄在19~21岁(包括19和21岁)之间的学生的学号、姓名、出生日期。【例题5-9】查询民族为“汉族”或者“满族”的学生详细信息。【例题5-10】查询哪些学生选课了还没有考试成绩,显示学号,课程号。【例题5-11】查询哪些学生姓名中含有“南”字。【例题5-12】查询名字中第二个字为“南”,并且名字为两个字的学生的详细信息。【例题5-13】找出所有姓“张”和姓“江”的员工信息。三、实验步骤(请粘贴全部SQL语句,并截取几张运行截图,截图上能看到数据库名、表名和表中数据)四、实验小结(你的收获和存在的问题)成绩优良中及格不及格教师签名:日期:数据库实验报告实验名称实验6单表查询(二)实验日期班级学号姓名实验报告要求:1.实验目的2.实验内容3.实验步骤4.实验小结一、实验目的熟练使用SQL语句完成选择、投影、排序等单表查询语句。熟悉常见聚合函数的使用方法,能够进行分组统计。实验内容销售数据库中有四张表:员工表、商品表、客户表和订单表。表结构如表2-4~表2-7所示:表2-4员工表表名:Employee+你的姓名简拼字段名称类型宽度约束字段说明EIDintnotnull主键员工号ENamevarchar(50)notnull员工姓名Sexchar(2)notnull,约束为‘男’或‘女’性别HireDatesmalldatetime

聘任日期Salarymoney

工资表2-5商品表表名:Product+你的姓名简拼字段名称类型宽度约束字段说明PIDintnotnull主键商品编号PNamevarchar(50)notnull商品名称PriceDecimal(8,2)单价StockNumberint

现有库存量SellNumberint

已销售数量表2-6客户表表名:Customer+你的姓名简拼字段名称类型宽度约束字段说明CIDintnotnull主键客户编号CNamevarchar(50)notnull客户名称,唯一Phonevarchar(20)联系电话Addressvarchar(100)客户地址Emailvarchar(50)客户Email表2-7订单表表名:Orders+你的姓名简拼字段名称类型宽度约束字段说明IDintnotnull主键订单编号EIDint来自员工表的外键员工号PIDint来自商品表的外键商品编号CIDint来自客户表的外键客户编号Numberint订货数量Datesmalldatetime订货日期,默认当前日期查询语句格式SELECT[ALL|DISTINCT][TOPn|PERCENT]<目标列表达式>[,<目标列表达式>]…FROM<表>[WHERE<条件表达式>][GROUPBY<列名1>[HAVING<条件表达式>]][ORDERBY<列名2>[ASC|DESC]];日期函数:getdate()取系统当前时间,year()取日期中的年,month()取日期中的月,day()取日期中的日字符串函数:left(字符串,n)请使用SQL语句完成如下查询操作,每个查询只涉及一张表中的数据。1、使用销售数据库的题目按照你的姓名在员工表查询你的详细信息。查询哪些员工姓名中含有“丽”字,显示员工姓名和性别。查询名字第二个字为“丽”,并且名字为两个字的员工详细信息。查询哪些客户名称含有“通”字,并且最后两个字是“公司”。统计一共有多少种商品。查询目前商品的库存总量,也就是所有商品的库存量之和。查询某一天的销售订单数,具体哪一天自己指定。查询每个月的销售订单数,显示年月、订单数,并按订单数降序排序。查询购买了5号商品的客户编号和订购总数量,查询结果按照订购总数量排列。查询有多少个客户购买了5号商品,多次购买的不重复计数。查询每种商品的订单数和总销售数量。查询订单数量大于3的商品编号。使用stuDB数据库的题目(11道题)【例题5-14】找出哪些学生不姓“南”。【例题5-15】查询哪些课程名含有“数据库_”。【例题5-16】查询选修了1号课程的学生学号及其成绩,查询结果按照成绩降序排列。【例题5-17】查询学生的学号、姓名、民族、出生日期,查询结果按照民族升序排列,同一民族的按照年龄降序排列。【例题5-18】统计有多少名学生。【例题5-19】查询学生学习所有课程获得的最高分、最低分和平均分。【例题5-20】查询有多少学生选修了课程。【例题5-21】查询课程表中有多少门必修课(选修课的开课学期是空值)。【例题5-22】查询每门课程的最高分、最低分和平均分,显示课程号和相应的分数。【例题5-23】查询选课人数大于2人的课程号和选课人数。【例题5-24】假设现在是12月份,学生会打算给当月过生日的同学准备个性化的礼物,请查询12月份各个民族男生和女生分别多少人,并将查询结果存入一个新表T_12。三、实验步骤(请粘贴全部SQL语句,并截取几张运行截图,截图上能看到数据库名、表名和表中数据)四、实验小结(你的收获和存在的问题)成绩优良中及格不及格教师签名:日期:实验6单表查询2参考答案--(1)查询哪些员工姓名中含有“丽”字,显示员工姓名和性别。selectEName,SexfromEmployeeWXMwhereenamelike'%丽%'--(2)查询名字第二个字为“丽”,并且名字为两个字的员工详细信息。select*fromEmployeeWXMwhereenamelike'_丽'--(3)查询哪些客户名称含有“通”字,并且最后两个字是“公司”。select*fromCustomerWXMwherecnamelike'%通%公司'--(4)统计一共有多少种商品。selectcount(*)fromproductwxm--(5)查询目前商品的库存总量,也就是所有商品的库存量之和。select*fromproductwxmselectsum(stocknumber)库存量和fromproductwxm--(6)查询某一天的销售订单数,具体哪一天自己指定。--第一步:将日期型转为字符型,查看有哪些日期,查看日期的格式selectCONVERT(char,Date,102)日期fromorderswxmorderbyCONVERT(char,Date,102)--第二步:统计某一天的订单数selectcount(*)订单数fromorderswxmwhereCONVERT(char,Date,102)='2024.03.05'--(7)查询每个月的销售订单数,显示年月、订单数,并按订单数降序排序。select*fromorderswxmselectyear(date)年,month(date)月,count(*)订单数fromorderswxmgroupbyyear(date),month(date)orderbycount(*)desc--(8)查询购买了号商品的客户编号和订购总数量,查询结果按照订购总数量排列。selectcid,sum(number)订购总数量fromorderswxmwherepid=5groupbycidorderbysum(number)--(9)查询有多少个客户购买了号商品,多次购买的不重复计数。selectcount(distinctcid)客户数fromorderswxmwherepid=5select*fromorderswxm--(10)查询每种商品的订单数和总销售数量。selectpid,count(*)订单数,sum(number)总销售数量fromorderswxmgroupbypid--(11)查询订单数量大于的商品编号。selectpid,count(*)订单数量fromorderswxmgroupbypidhavingcount(*)>3实验7连接查询1参考答案(1)请查询购买了号商品的客户名称、客户地址、订购时间、订购数量。--说明:本题涉及两张表,先查看两个表中的列名和数据select*fromOrderswxmselect*fromCustomerwxm--连接查询是将涉及的表都放在FROM后面,关联条件写在where后面selectCName客户名称,Address客户地址,Date订购时间,Number订购数量fromOrderswxm,CustomerwxmwhereOrderswxm.CID=Customerwxm.CID--订单表中有10行,查询结果就是10行,通过订单表的客户编号到客户表查询了客户名称、地址(2)请查询每种商品的订货总数量,显示商品名称,订货总数量,并按照订货总数量降序排列。--说明:本题涉及商品表和订单表,先查看两个表中的列名和数据select*fromProductwxmselect*fromOrderswxm--连接两张表之后按照商品名称分组selectPName,SUM(Number)订货总数量fromProductwxm,OrderswxmwhereProductwxm.PID=Orderswxm.PIDgroupbyPNameorderbySUM(Number)desc--订单表中10行数据涉及6种商品,其中5号商品是彩色纸,有5笔交易,5笔交易数量和是150(3)请查询订单情况,显示订单编号、订货日期、商品名称、客户名称、订货数量。--说明:本题涉及三张表:商品表、客户表和订单表select*fromProductwxmselect*fromCustomerwxmselect*fromOrderswxm--from后面三张表,需要两个连接条件selectID,Date,PName,CName,NumberfromProductwxmp,Customerwxmc,Orderswxmowherep.PID=o.PIDandc.CID=o.CID--三张表连接查询,订单表中有10行,查询结果就是10行(4)请继续查询订单情况,显示订单编号、订货日期、商品名称、客户名称、员工姓名、订货数量。--说明:本题涉及四张表select*fromProductwxmselect*fromCustomerwxmselect*fromEmployeewxmselect*fromOrderswxm--from后面四张表,需要三个连接条件,三个表分别和订单表连接selectID,Date,PName,CName,EName,NumberfromProductwxmp,Customerwxmc,Orderswxmo,Employeewxmewherep.PID=o.PIDandc.CID=o.CIDande.EID=o.EID--四张表连接查询,查询结果依旧10行,与订单表中一致,因为只做连接,没有筛选条件(5)请查询所有芜湖客户的客户编号、客户名称、联系电话、订单数量,并按照订单数量排序。--说明:本题涉及客户表和订单表select*fromCustomerwxmselect*fromOrderswxm--订单数量需要用count函数,订单表中有几行就是几个订单selectOrderswxm.CID,CName,Phone,COUNT(*)fromOrderswxm,CustomerwxmwhereOrderswxm.CID=Customerwxm.CIDgroupbyOrderswxm.CID,CName,Phone--订单表中10行数据只涉及3个客户,1、2号客户各有两笔订单,3号客户6笔订单数据库实验报告实验名称实验7连接查询1-内连接实验日期班级学号姓名实验报告要求:1.实验目的2.实验内容3.实验步骤4.实验小结一、实验目的熟练使用SQL语句编写各种多表连接查询语句。实验内容销售数据库中有四张表:员工表、商品表、客户表和订单表。表结构如表2-4~表2-7所示:表2-4员工表表名:Employee+你的姓名简拼字段名称类型宽度约束字段说明EIDintnotnull主键员工号ENamevarchar(50)notnull员工姓名Sexchar(2)notnull,约束为‘男’或‘女’性别HireDatesmalldatetime

聘任日期Salarymoney

工资表2-5商品表表名:Product+你的姓名简拼字段名称类型宽度约束字段说明PIDintnotnull主键商品编号PNamevarchar(50)notnull商品名称PriceDecimal(8,2)单价StockNumberint

现有库存量SellNumberint

已销售数量表2-6客户表表名:Customer+你的姓名简拼字段名称类型宽度约束字段说明CIDintnotnull主键客户编号CNamevarchar(50)notnull客户名称,唯一Phonevarchar(20)联系电话Addressvarchar(100)客户地址Emailvarchar(50)客户Email表2-7订单表表名:Orders+你的姓名简拼字段名称类型宽度约束字段说明IDintnotnull主键订单编号EIDint来自员工表的外键员工号PIDint来自商品表的外键商品编号CIDint来自客户表的外键客户编号Numberint订货数量Datesmalldatetime订货日期,默认当前日期四个表之间的联系如图2-5所示:图2-5销售数据库四个表之间的联系说明:员工表、商品表、客户表三个表之间没有任何联系,各自管理单一的数据。三张表分别与订单表关联。在订单表中记载哪位员工卖出了哪种商品,卖给了哪个客户,以及卖出的数量和时间。查询语句格式SELECT[ALL|DISTINCT][TOPn|PERCENT]<目标列表达式>[,<目标列表达式>]…FROM<表>[WHERE<条件表达式>][GROUPBY<列名1>[HAVING<条件表达式>]][ORDERBY<列名2>[ASC|DESC]];日期函数:getdate()取系统当前时间,year()取日期中的年,month()取日期中的月,day()取日期中的日字符串函数:left(字符串,n)请使用SQL语句完成如下查询操作,每个查询涉及多张表中的数据。1、使用销售数据库的题目(前五题有视频)请查询购买了3号商品的客户名称、客户地址、订购时间、订购数量。请查询每种商品的订货总数量,显示商品名称,订货总数量,并按照订货总数量降序排列。请查询订单情况,显示订单编号、订货日期、商品名称、客户名称、订货数量。请继续查询订单情况,显示订单编号、订货日期、商品名称、客户名称、员工姓名、订货数量。请查询所有芜湖客户的客户编号、客户名称、联系电话、订单数量,并按照订单数量排序。请查询每位员工的订单数量,显示员工编号、员工姓名、订单数量,并按照订单数量降序排序。请查询按照你的姓名查询你处理了哪些订单,显示员工姓名、订货日期、商品名称、客户名称。查询单笔订单订货数量大于500的商品信息,显示商品名称、单价、现有库存量,并按照现有库存量降序排列。使用stuDB数据库的题目(5道题)【例题1】查询选修了大数据导论课程的学生学号及其成绩,查询结果按照成绩降序排列。【例题2】查询每门课最高分、最低分和平均分,显示课程名和相应分数。【例题5-25】请查询选修了2号课程的学生姓名和成绩。(云教材例题6-1)【例题5-26】查询每门课程的平均分,显示课程名、平均分。(云教材例题6-2)【例题5-27】请查询学生选课情况,显示学生姓名、课程名、成绩。(云教材例题6-3)验证:如果不写表之间的连接条件,查询结果是多少行?三、实验步骤(请粘贴全部SQL语句,并截取几张运行截图,截图上能看到数据库名、表名和表中数据)四、实验小结(你的收获和存在的问题)成绩优良中及格不及格教师签名:日期:实验8连接查询2-外连接参考答案使用stuDB数据库的例题和新题目【例题5-28】请查询学生选课情况,显示学生姓名、课程号、成绩,没有选课的学生也要显示。SELECTName,Cno,GradeFROMStudentLEFTJOINSCONStudent.Sno=SC.Sno查询每一名学生的详细信息,及其选修的课程号和成绩。--说明:查询学生的详细信息可以把Student表的每一个列名否写上,也可以用Student.*SELECTStudent.*,Cno,GradeFROMStudentLEFTJOINSCONStudent.Sno=SC.Sno查询哪些学生没有选课,显示学号和姓名。--说明:以学生表为主做外连接,Cno或者SC表中Sno为空的是没选课的,不应该用成绩为空的条件,为什么?--说明:显示学号必须用Student.sno,不能用SC.sno,也不能直接写sno,为什么?SELECTStudent.sno,NameFROMStudentLEFTJOINSCONStudent.Sno=SC.SnowhereCnoisnull查询哪些课程没有学生选。selectCnamefromCourseleftjoinsconCourse.Cno=SC.CnowhereSnoisnull使用销售数据库的题目(4道题)请查询商品销售情况,显示商品名称、订货日期、订货数量,没有订单的商品也要显示。请查询哪些商品没有订单,显示商品编号和商品名称。请查询每种商品的订货总数量,显示商品名称,订货总数量,并按照订货总数量降序排列。没有订单的商品也要显示。请查询所有芜湖客户的客户编号、客户名称、联系电话、订单数量,并按照订单数量排序。没有订单的客户也要显示。--(1)请查询商品销售情况,显示商品名称、订货日期、订货数量,没有订单的商品也要显示。SELECTPName,DATE,NumberFROMProductWXMLEFTJOINOrdersWXMONProductWXM.PID=OrdersWXM.PID--(2)请查询哪些商品没有订单,显示商品编号和商品名称。selectp.PID,PNamefromProductWXMpleftjoinOrdersWXMoonp.PID=o.PIDwhereo.CIDisnull--(3)请查询哪些员工没有订单,显示员工编号和员工姓名。--(4)查询每种商品的订货总数量,显示商品名称,订货总数量,并按照订货总数量降序排列,--没有订单的商品显示订货数量为0。SELECT*FROMProductWXMSELECT*FROMOrdersWXMselectPName,isnull(SUM(Number),0)fromProductWXMpleftjoinOrdersWXMoonp.PID=o.PIDgroupbyPNameorderbyisnull(SUM(Number),0)desc--一、使用stuDB数据库的例题和新题目(4道题)--【例题5-28】请查询学生选课情况,显示学生姓名、课程号、成绩,没有选课的学生也要显示。--(1) 查询每一名学生的详细信息,及其选修的课程号和成绩。selectStudent.*,cno,gradefromStudentleftjoinsconStudent.Sno=sc.Snoselect*fromStudent--(2) 查询哪些学生没有选课,显示学号和姓名。selectStudent.Sno,namefromStudentleftjoinsconStudent.Sno=sc.SnowhereCnoisnull--(3) 查询哪些课程没有学生选。select*fromCourseselect*fromscselectCnamefromCourseleftjoinSConCourse.Cno=sc.CnowhereSnoisnull--二、使用销售数据库的题目(4道题)--(1) 请查询商品销售情况,显示商品名称、订货日期、订货数量,没有订单的商品也要显示。select*fromOrdersWXMselect*fromProductWXM--外连接selectPName,DATE,NumberfromProductWXMpleftjoinOrdersWXMoonp.PID=o.PID--内连接selectPName,DATE,NumberfromProductWXMpinnerjoinOrdersWXMoonp.PID=o.PID--(2) 请查询哪些商品没有订单,显示商品编号和商品名称。selectp.PID,PNamefromProductWXMpleftjoinOrdersWXMoonp.PID=o.PIDwhereNumberisnull--(3) 请查询每种商品的订货总数量,显示商品名称,订货总数量,并按照订货总数量降序排列。--没有订单的商品也要显示。selectPName,sum(Number)fromProductWXMp,OrdersWXM数据库实验报告实验名称实验8连接查询2-外连接实验日期班级学号姓名实验报告要求:1.实验目的2.实验内容3.实验步骤4.实验小结一、实验目的熟练使用SQL语句编写各种多表连接查询语句,掌握外连接的用法和作用。实验内容销售数据库中有四张表:员工表、商品表、客户表和订单表。表结构如表2-4~表2-7所示:表2-4员工表表名:Employee+你的姓名简拼字段名称类型宽度约束字段说明EIDintnotnull主键员工号ENamevarchar(50)notnull员工姓名Sexchar(2)notnull,约束为‘男’或‘女’性别HireDatesmalldatetime

聘任日期Salarymoney

工资表2-5商品表表名:Product+你的姓名简拼字段名称类型宽度约束字段说明PIDintnotnull主键商品编号PNamevarchar(50)notnull商品名称PriceDecimal(8,2)单价StockNumberint

现有库存量SellNumberint

已销售数量表2-6客户表表名:Customer+你的姓名简拼字段名称类型宽度约束字段说明CIDintnotnull主键客户编号CNamevarchar(50)notnull客户名称,唯一Phonevarchar(20)联系电话Addressvarchar(100)客户地址Emailvarchar(50)客户Email表2-7订单表表名:Orders+你的姓名简拼字段名称类型宽度约束字段说明IDintnotnull主键订单编号EIDint来自员工表的外键员工号PIDint来自商品表的外键商品编号CIDint来自客户表的外键客户编号Numberint订货数量Datesmalldatetime订货日期,默认当前日期四个表之间的联系如图2-5所示:图2-5销售数据库四个表之间的联系说明:员工表、商品表、客户表三个表之间没有任何联系,各自管理单一的数据。三张表分别与订单表关联。在订单表中记载哪位员工卖出了哪种商品,卖给了哪个客户,以及卖出的数量和时间。查询语句格式SELECT[ALL|DISTINCT][TOPn|PERCENT]<目标列表达式>[,<目标列表达式>]…FROM<表>[WHERE<条件表达式>][GROUPBY<列名1>[HAVING<条件表达式>]][ORDERBY<列名2>[ASC|DESC]];日期函数:getdate()取系统当前时间,year()取日期中的年,month()取日期中的月,day()取日期中的日字符串函数:left(字符串,n)1、使用销售数据库的题目请查询商品销售情况,显示商品名称、订货日期、订货数量,没有订单的商品也要显示。请查询哪些商品没有订单,显示商品编号和商品名称。请查询哪些员工没有订单,显示员工编号和员工姓名。查询每种商品的订货总数量,显示商品名称,订货总数量,并按照订货总数量降序排列,没有订单的商品显示订货数量为0。请查询所有芜湖客户的客户编号、客户名称、联系电话、订单数量,并按照订单数量排序。没有订单的客户也要显示。查询订货次数超过两次的客户信息,显示客户编号、客户名称、联系电话、订货次数。查询订单数量超过5笔的员工信息,显示员工编号、员工姓名,工资,订单数。提示:可以修改数据,验证查询效果。使用stuDB数据库的题目(6道题)(1)例题【例题5-28】查询学生选课情况,显示学生姓名、课程号、成绩,没有选课的学生也要显示。(云教材例题6-4)【例题5-29】没有学生选修的课程可能会取消,查询哪些课程没有学生选,显示课程号和课程名。(云教材例题6-5)【例题5-30】南荷花想认识同一民族的同学,请帮她查询有没有人和她同一个民族。(云教材例题6-6)(2)新题查询每一名学生的详细信息,及其选修的课程号和成绩。查询哪些学生没有选课,显示学号和姓名。查询哪些课程没有学生选。三、实验步骤(请粘贴全部SQL语句,并截取几张运行截图,截图上能看到数据库名、表名和表中数据)四、实验小结(你的收获和存在的问题)成绩优良中及格不及格教师签名:日期:--(1)请用嵌套查询语句查询哪些商品没有订单,显示商品编号和商品名称。select*fromProductWXMselect*fromOrdersWXMselectPID,PNamefromProductWXMwherePIDnotin(selectPIDfromOrdersWXM)--(2)请用嵌套查询语句查询处理订单最多的员工姓名、性别、工资,并给出汉字别名。select*fromEmployeeWXMselect*fromOrdersWXMselectEName,Sex,SalaryfromEmployeeWXMwhereEIDin(selecttop1EIDfromOrdersWXMgroupbyEIDorderbyCOUNT(*)desc)--(3)请用嵌套查询语句查询购买了3号商品的客户编号、客户名称、客户地址、联系电话,并按照客户地址排序。selectCID,CName,Address,PhonefromCustomerWXMwhereCIDin(selectcidfromOrdersWXMwherePID=3)orderbyAddress--(4)请用嵌套查询语句查询购买了墨盒的客户编号、客户名称、客户地址、联系电话,并按照客户地址排序。select*fromCustomerWXMwhereCIDin(selectCIDfromOrdersWXMwherePID=(selectPIDfromProductWXMwherePName='墨盒'))--(5)请用嵌套查询语句查询订单超过三笔的商品编号、商品名称、单价、库存量,并按库存量升序排列。selectPID,PName,Price,StockNumberfromProductWXMwherePIDin(selectPIDfromOrdersWXMgroupbyPIDhavingCOUNT(*)>=3)orderbyStockNumber--(6)请用嵌套查询语句查询同时购买了打印纸和墨盒的客户信息,包括客户编号、客户名称、联系电话。select*fromCustomerWXMwhereCIDin(selectCIDfromOrdersWXMwherePID=(selectPIDfromProductWXMwherePName='饮料'))andCIDin(selectCIDfromOrdersWXMwherePID=(selectPIDfromProductWXMwherePName='复印机'))数据库实验报告实验名称实验9嵌套查询实验日期班级学号姓名实验报告要求:1.实验目的2.实验内容3.实验步骤4.实验小结一、实验目的熟悉用SQL语句以编写连接查询(内连接、外连接)、嵌套查询的语句。实验内容销售数据库中有四张表:员工表、商品表、客户表和订单表。表结构如表2-4~表2-7所示:表2-4员工表表名:Employee+你的姓名简拼字段名称类型宽度约束字段说明EIDintnotnull主键员工号ENamevarchar(50)notnull员工姓名Sexchar(2)notnull,约束为‘男’或‘女’性别HireDatesmalldatetime

聘任日期Salarymoney

工资表2-5商品表表名:Product+你的姓名简拼字段名称类型宽度约束字段说明PIDintnotnull主键商品编号PNamevarchar(50)notnull商品名称PriceDecimal(8,2)单价StockNumberint

现有库存量SellNumberint

已销售数量表2-6客户表表名:Customer+你的姓名简拼字段名称类型宽度约束字段说明CIDintnotnull主键客户编号CNamevarchar(50)notnull客户名称,唯一Phonevarchar(20)联系电话Addressvarchar(100)客户地址Emailvarchar(50)客户Email表2-7订单表表名:Orders+你的姓名简拼字段名称类型宽度约束字段说明IDintnotnull主键订单编号EIDint来自员工表的外键员工号PIDint来自商品表的外键商品编号CIDint来自客户表的外键客户编号Numberint订货数量Datesmalldatetime订货日期,默认当前日期四个表之间的联系如图2-5所示:图2-5销售数据库四个表之间的联系说明:员工表、商品表、客户表三个表之间没有任何联系,各自管理单一的数据。三张表分别与订单表关联。在订单表中记载哪位员工卖出了哪种商品,卖给了哪个客户,以及卖出的数量和时间。查询语句格式SELECT[ALL|DISTINCT][TOPn|PERCENT]<目标列表达式>[,<目标列表达式>]…FROM<表>[WHERE<条件表达式>][GROUPBY<列名1>[HAVING<条件表达式>]][ORDERBY<列名2>[ASC|DESC]];日期函数:getdate()取系统当前时间,year()取日期中的年,month()取日期中的月,day()取日期中的日字符串函数:left(字符串,n)1、使用销售数据库的题目请用嵌套查询语句查询哪些商品没有订单,显示商品编号和商品名称。请用嵌套查询语句查询哪些员工没有订单,显示员工编号和员工姓名。请用嵌套查询语句查询单笔订单订货数量大于500的商品信息,显示商品名称、单价、现有库存量,并按照现有库存量降序排列。请用嵌套查询语句查询处理订单最多的员工姓名、性别、工资,并给出汉字别名。请用嵌套查询语句查询购买了3号商品的客户编号、客户名称、客户地址、联系电话,并按照客户地址排序。请用嵌套查询语句查询购买了打印纸的客户编号、客户名称、客户地址、联系电话,并按照客户地址排序。请用嵌套查询语句查询订单超过三笔的商品编号、商品名称、单价、库存量,并按库存量升序排列。请用嵌套查询语句查询同时购买了打印纸和墨盒的客户信息,包括客户编号、客户名称、联系电话。请用嵌套查询语句查询购买了打印纸但没有购买墨盒的客户信息,包括客户编号、客户名称、联系电话。请用嵌套查询语句查询单笔订单订购数量排列前十的客户的客户编号、客户姓名、联系电话。使用stuDB数据库的题目(6道题)【例题5-31】没有学生选修的课程可能会取消,请你查询哪些课程没有学生选,显示课程号和课程名。要求用嵌套查询。(云教材例题6-7)【例题5-32】南荷花想认识同一民族的同学,请帮她查询有没有人和她同一个民族。要求用嵌套查询实现。(云教材例题6-8)【例题5-33】查找年龄最小的学生的姓名、性别和出生日期。(云教材例题6-9)【例题5-34】查询比平均学时高的课程的课程号、课程名和学时。(云教材例题6-10)【例题5-35】查询选修了数据库课程的学生的姓名和性别。(云教材例题6-11)【例题5-36】查询每个学生超过他自己选修课程的平均成绩的课程号。(云教材例题6-12)三、实验步骤(请粘贴全部SQL语句,并截取几张运行截图,截图上能看到数据库名、表名和表中数据)四、实验小结(你的收获和存在的问题)成绩优良中及格不及格教师签名:日期:数据库实验报告实验名称实验10多种方式多表查询实验日期班级学号姓名实验报告要求:1.实验目的2.实验内容3.实验步骤4.实验小结一、实验目的熟悉用SQL语句编写集合查询、基于派生表、连接查询、嵌套查询等多表查询语句。实验内容销售数据库中有四张表:员工表、商品表、客户表和订单表。表结构如表2-4~表2-7所示:表2-4员工表表名:Employee+你的姓名简拼字段名称类型宽度约束字段说明EIDintnotnull主键员工号ENamevarchar(50)notnull员工姓名Sexchar(2)notnull,约束为‘男’或‘女’性别HireDatesmalldatetime

聘任日期Salarymoney

工资表2-5商品表表名:Product+你的姓名简拼字段名称类型宽度约束字段说明PIDintnotnull主键商品编号PNamevarchar(50)notnull商品名称PriceDecimal(8,2)单价StockNumberint

现有库存量SellNumberint

已销售数量表2-6客户表表名:Customer+你的姓名简拼字段名称类型宽度约束字段说明CIDintnotnull主键客户编号CNamevarchar(50)notnull客户名称,唯一Phonevarchar(20)联系电话Addressvarchar(100)客户地址Emailvarchar(50)客户Email表2-7订单表表名:Orders+你的姓名简拼字段名称类型宽度约束字段说明IDintnotnull主键订单编号EIDint来自员工表的外键员工号PIDint来自商品表的外键商品编号CIDint来自客户表的外键客户编号Numberint订货数量Datesmalldatetime订货日期,默认当前日期四个表之间的联系如图2-5所示:图2-5销售数据库四个表之间的联系说明:员工表、商品表、客户表三个表之间没有任何联系,各自管理单一的数据。三张表分别与订单表关联。在订单表中记载哪位员工卖出了哪种商品,卖给了哪个客户,以及卖出的数量和时间。查询语句格式SELECT[ALL|DISTINCT][TOPn|PERCENT]<目标列表达式>[,<目标列表达式>]…FROM<表>[WHERE<条件表达式>][GROUPBY<列名1>[HAVING<条件表达式>]][ORDERBY<列名2>[ASC|DESC]];日期函数:getdate()取系统当前时间,year()取日期中的年,month()取日期中的月,day()取日期中的日字符串函数:left(字符串,n)1、使用销售数据库的题目(1)请查询同时购买了打印纸和墨盒的客户信息,包括客户编号、客户名称、联系电话。(集合、嵌套、连接)(2)请查询购买了打印纸,但没有购买墨盒的客户信息,包括客户编号、客户名称、联系电话。(集合、嵌套)(3)查询哪些客户没有购买任何商品,显示客户编号、客户名称、联系电话。(集合、嵌套、外连接)(4)查询库存量低于600的商品订货信息,包括商品编号、商品名称、订货时间、订货数量,库存数量,并按照库存数量、商品编号排序。(连接、基于派生表)(5)查询某月(自己指定)订货超过两次的商品编号、商品名称、库存数量,并按照库存数量降序排列。(连接、基于派生表)(6)请统计每月销售报表,显示年月、订单数量、订单总金额(订单金额=商品单价×订货数量),并按照年月升序、订单数量降序排列。(连接、基于派生表)使用stuDB数据库的题目(6道题)【例题5-37】查询哪些学生同时选修了“大数据导论”和“数据库”课程,显示出学生的学号。(云教材例题6-13)【例题5-38】查询哪些学生选修了“大数据导论”但没有选修“数据库”课程,显示出学生的学号。(云教材例题6-14)【例题5-39】查询选修了“大数据导论”或者“数据库”的学生学号。(云教材例题6-15)【例题5-40】查找年龄最小的学生的姓名、性别和出生日期,请用基于派生表的查询实现。(云教材例题6-16)【例题5-36】查询每个学生超过他自己选修课程的平均成绩的课程号,请用基于派生表的查询实现。(云教材例题6-12)【例题5-34】查询比平均学时高的课程的课程号、课程名和学时。请用基于派生表的查询实现。(云教材例题6-10)三、实验步骤(请粘贴全部SQL语句,并截取几张运行截图,截图上能看到数据库名、表名和表中数据)四、实验小结(你的收获和存在的问题)成绩优良中及格不及格教师签名:日期:数据库实验报告实验名称实验11视图的使用实验日期班级学号姓

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论