210153 廖小均文档格式.docx
- 文档编号:15196073
- 上传时间:2022-10-28
- 格式:DOCX
- 页数:11
- 大小:25.08KB
210153 廖小均文档格式.docx
《210153 廖小均文档格式.docx》由会员分享,可在线阅读,更多相关《210153 廖小均文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
硬件:
投影仪、每位同学分配已连接校园网PC机一台。
软件:
本机已安装MySQL5.5
三.实验步骤及代码:
1.启动NavicatforMySQL,在MySQL–新建连接中完成连接参数配置。
2.登录到本地数据库服务器后,连接到test数据库上。
3.用CreateTable建立Student表
createtablestudent
(SNOvarchar(20),
Namevarchar(10),
Ageinteger,
Collegevarchar(30))
4.用CreateTable建立Course表
createtableCourse
(CourseIDVARCHAR(15),
CourseNamevarchar(30),
CourseBeforeIDVARCHAR(15))
5.用CreateTable建立Choose表
CREATETABLEChoose
(SNOVARCHAR(20),
CourseIDvarchar(30),
ScoreDECIMAL(5,2))
6.用INSERT语句向Student表中插入3个元组:
注意:
每条元组一个完整的INSERT语句,3个元组需要写3个INSERT语句
insertintostudent(SNO,Name,Age,College)values('
S00001'
'
张三'
20,'
计算机学院'
);
S00002'
李四'
19,'
通信学院'
S00003'
王五'
21,'
7.用INSERT语句向Course表中插入3个元组:
每条元组一个完整的INSERT语句,3个元组需要写3个INSERT语句。
insertintoCourse(CourseID,CourseName,CourseBeforeID)VALUES('
c1'
计算机导论'
NULL'
c2'
c语言'
c3'
数据结构'
8.用INSERT语句向Choose表中插入7个元组:
每条元组一个完整的INSERT语句,7个元组需要写7个INSERT语句。
insertintoChoose(SNO,CourseID,Score)values('
95);
80);
84);
85);
78);
70);
9.用SELECT语句,查询计算机学院学生的学号和姓名。
selectSNO,NamefromstudentwhereCollege='
;
10.用SELECT语句的between…and…表示查询条件,查询年龄在20~23岁的学生信息。
select*fromstudentwhereAgebetween20and23;
11.用SELECT语句的COUNT()聚集函数,统计Student表中学生总人数。
selectcount(*)fromstudent;
12.分别用SELECT语句的max()、min()、sum()、avg()四个聚集函数,计算Choose表中C1课程的最高分、最低分、总分、平均分。
selectmax(Score)fromchoosewhereCourseID='
C1'
selectmin(Score)fromchoosewhereCourseID='
selectsum(Score)fromchoosewhereCourseID='
selectavg(Score)fromchoosewhereCourseID='
13.用SELECT语句对空值(NULL)的判断条件,查询Course表中先修课称编号为空值的课程编号和课程名称。
selectCourseID,CourseNamefromCoursewhereCourseBeforeID='
14.用SELECT语句的连接查询,查询学生的学号、姓名、选修的课程名及成绩。
SELECTstudent.Sno,student.`Name`,choose.CourseID,choose.Score
fromstudent,chooseWHEREstudent.Sno=choose.Sno
15.用SELECT的存在量词EXISTS,查询与“张三”在同一个学院学习的学生信息。
selectsno,name,collegefromstudentA
Whereexists(selectcollegefromstudentB
WhereB.name=`张三`anda.collegeanda.name!
=`张三`);
16.用SELECT语句的嵌套查询,查询选修C1课程的成绩低于“张三”的学生的学号和成绩。
代码:
SELECTSno,ScoreFROMchoosewherechoose.CourseID='
ANDchoose.Score<
(
SELECTScorefromstudent,choose
WHEREstudent.Sno=choose.Snoandstudent.`Name`='
andchoose.CourseID='
)
结果:
17.用SELECT语句的组合查询(UNION),查询选修了C1课程或者选修了C3课程的学生学号。
SELECTSno,CourseIDFROMchooseWHERECourseID='
UNION
SELECTSno,CourseIDfromchoosewhereCourseID='
C3'
结果:
18.用SELECT语句的组合查询(UNION)与DISTINCT短语,查询选修了C1课程或者选修了C3课程的学生学号,并取消重复数据。
SELECTDISTINCTSnoFROMchooseWHERECourseID='
SELECTDISTINCTSnofromchoosewhereCourseID='
四.实验总结:
1、Where与Having语句有何差别?
答:
区别在于作用对象不同。
Where子句基本表或者视图,从中选择满足条件的元组。
Having短语作用于组,从中选择满足条件的组。
2、Count(*)与Count(字段名)有何差别?
Count(*)统计元组个数,Count(字段名)统计一列中的数值
3、LIKE‘[^s][^y][^s]%’与NOTLIKE‘sys%’有无区别?
请加以验证?
有区别
4、全连接、左连接、右连接有什么不同?
若全连接则左右表中的所有记录都会被选出来
若左连接则选出左边表的所有记录和右边表中没有和它匹配的纪录
若右连接则选出右边表的所有记录和左边表中没有和他匹配的值
5、IN与Exists语句有何区别?
6、不相关子查询、相关子查询有何区别?
不相关子查询的条件不依赖与父查寻而相关子查询的条件依赖于父查寻。
求解相关子查询不像求解不相关子查询那样,一次将子查询求解出来,然后去求解父查寻。
内层查询与外层查询有关,因此必须反复求值
7、UNION与UNIONALL有何差别,谁的性能高?
UNION和UNIONALL的区别在于UNION将多个查询的结果合并起来时,系统将会自动去掉重复的元组而unionall则保留重复的元组。
UNIONALL的性能更高,因为UNION要删除重复的元组。
实验六MySql的存储过程
一、实验目的
存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。
存储过程分为两类:
1.系统提供的存储过程;
2.用户自定义存储过程。
存储过程具有的优点:
1.存储过程允许标准组件式编程;
2.存储过程能够实现较快的执行速度;
3.存储过程能够减少网络流量;
4.存储过程可被作为一种安全机制来充分利用。
存储过程是可复用的组件!
想象一下如果你改变了主机的语言,这对存储过程不会产生影响,因为它是数据库逻辑而不是应用程序。
存储过程是可以移植的!
本次实验了解MySQL存储过程的创建、修改和删除的方法和步骤,掌握在NavicatforMySQL中对存储过程的进行创建、修改和删除,掌握在MySQLCommandLineClient中调用带参数和不带参数的存储过程。
二、实验要求
1、实验前:
预习实验内容,学习相关知识。
2、实验中:
按照实验内容要求进行实验,实验时注意每种SQL语句的基本命令及各个关键字的含义,做好实验记录。
3、实验后:
分析实验结果,总结实验知识,得出结论,按格式写出实验报告。
4、在整个实验过程中,要独立思考、独立按时完成实验任务,不懂的要虚心向教师或同学请教。
5、要求按指定格式书写实验报告,且报告中应反映出对上次试验报告总结
三.实验步骤
1.启动NavicatforMySQL,在MySQL–新建连接中完成连接参数配置。
CREATEDATABASEdb5536;
USEdb5536;
2.登录到本地数据库服务器后,连接到db5536数据库上。
CREATETABLEcqupt(s1INTEGER);
INSERTINTOcquptVALUES(5);
3.执行五、教学过程中(三)实验内容的1部分的
(2)、(3)步骤创建及调用不带参数的存储过程,验证不带参数的存储过程的创建和调用方法。
CREATEprocedurefirst
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 210153 廖小均