版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
国家开放大学MySQL数据库应用实验
实验1:在MySQL创建数据库及表
【实训目的与要求
1、安装MySQL系统,了解MySQL环境;
2、利用MySQL命令行窗口创建数据库及表;
3、利用界面工具创建数据库及表;
4、完整性约束设计。
【实训原理】
DBMS环境的使用
【实训步骤】
一、熟悉MySQL环境
1.检查软硬件配置是否达到MySQL的安装要求。
(1)硬件
(2)软件
2.安装数据库管理系统MySQL服务器
hntei*password:
3.练习用不同的方法启动MySQL服务。
4.⑴.通过Windows服务管理器启动MYSQL服务
□
文件电海作mhv)W«H)
«
MyfQl逊
■';血
?«
1先
脂
:本:
NetTcpPortSharwS«fvk«IM,统
劭
如
QNrtogon5WU卜M
皿
本
QHetworkConnectedDe^c_—
»«-统
«■
方
本
—a
NftwortrConnecbanBrok*f向
Iff.饶
动
本
卜
&HetwortConnectm
w皖
本
兽
—i
GNetwoAConnectivityAwn
v«符
本
手
QHrtwortlistService皿正在•.劭A
网
门
动M
QNetwoALouttonAMiwne.eta",
本
手
兽
◎NetwortcSetupServiceRS皿ttt
本
白
6NetwoAStotvMUEM.$•.itsJE8..动
本fl
统
黑
H访
@HVKXADispl^DriverSeePrwL.Iff-
如
统
牛
ROific,SourceEngine到d动
本
统
丁
黑
4^OptimiMdrives酗动
本
为
手
Q^eerNaneResok/DonPm»动
本
力
季0
QRwrNefmxtongGroupsitm动
本
努
手
◎酿rNetwortongIdentity_动:
本
必
手
&Bofnwx.CoumerDU-flMk面
知
务
手0
aMonruncelogi&Alemu工
f本M
xro
产届E/
⑵.通过DOS命令启动MYSQL服务
Qd管理员:命令提示符-□X
:\>netstartmysql
ySQL服务正在启动..
ySQL服务己经启动成功.
5.登录MySQL服务器。
闻管理员:命令提示符-mysql-hlocalhost-uroot-p-□X
C:\>mysql-hlocalhost-uroot-p
Enterpassword:****
WelcometotheMySQLmonitor.Commandsendwith:or\g.
YourMySQLconnectionidis1
Serverversion:5.5.57MySQLCommunityServer(GPL)
Copyright(c)2000,2017,Oracleand/oritsaffiliates.Allrightsreserved.
OracleisaregisteredtrademarkofOracleCorporationand/orits
affiliates.Othernamesmaybetrademarksoftheirrespective
owners.
Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatemen
mysql>/qq_3939426
6.认识MySQL界面工具:NavicatforMySQL客户端工
再
,Navicat8forMySQL
文件©M(V)TJICD®C(W)电助(W
6.利用MySQL客户端访问数据库
(1)使用SHOW语句查看系统中已有的数据库:
命令:showdatabases;
Sd管理员:命令提示符-mysql-hlocalhost-uroot-p□X
mysql>showdatabases;
Database
information_schema
mysql
performance_schema
test
4rowsinset(0.05sec)
nvsql>./qq_3939426
(2)使用USE语句选择MySQL数据库为当前数据库:
命令:usemysql;
励管理员:命令提示符-mysql-hlocalhost-uroot-p-□X
mysql>usemysql;
Databasechanged
mysql>.
(3)使用SHOWTABLES语句查看当前数据库中的表:
命令:showdatabases;
国1管理员:命令提示符-mysql-hlocalhost-uroot-p—□X
mysql>SHOWTABLES;
Tables_in_root
tb_grade
1rowinset(0.02sec)
二利用MySQL命令行窗口创建数据库及表
1.使用命令行方式创建数据库SM
以管理身份登录MySQL客户端,使用CREATE语句创建SM数据库。
命令:
3S管理员:热令提符-mysql-hlocalhost-uroot-□X
mysql>CREATEDATABASESM;
QueryOK,1rowaffected(0.04sec)
mysql>SHOWDATABASES:
Database
information_schema
itcast
mysql
performance_schema
root
sm
test
7rowsinset(0.00sec)
mysql>/qq_3939426
2.建表结构并设计完整性
SM数据库中包含3个数据表:学生表(student)、课程表(course)、学生选课表(SC)
各表的结构分别如下:
student表结构;
字段名称数据类型是否允许空值约束说明
SNOchar(8)X主键学号
SNamevarchar(8)X唯一值姓名
SSexchar(2)X检查约束性别(男或女)
SBirdatetimeV出生日期
ScreditsintV总学分
course表结构:
字段名称数据类型是否允许空值约束说明
CNOchar(5)X主键课程编号
CNamevarchar(30)X唯一值课程名称
CPnochar(5)V外码先修课程
CTimedecimal(3,0)V总学时
CCreditsintV默认值4学分
CTermchar(l)X学期
SC表结构:
字段名称数据类型是否允许空值约束说明
SNOchar(8)X外码学号
CNOchar(5)X外码课程编号
Scoredecimal(3,l)V0^100戌绩
(1)创建student表
(2)命令:
(3)mysql>createtablestudent
(4)->(
(5)->SNochar(8)NOTNULLPRIMARYKEV;
(6)->SNamevarchar(8)NOTNULLUNIQUE,
(7)->SSexchar(2)NOTNULLCHECK(SSexIN(,男)女()),
(8)->SBirdatetime,
(9)->Screditsint
(10)->);
(11)截图:
mysql>showcreatetablestudent;
Table|CreateTable
Istudent|CREATETABLEstudent(
SNo'char(8)NOTNULL,
'SName'varchar(8)NOTNULL,
'SSex'char(2)NOTNULL,
SBir'datetimeDEFAULTNULL,
'Scredits'int(11)DEFAULTNULL,
PRIMARYKEY('SNo'),
UNIQUEKEY'SName'('SName')
)ENGINE=InnoDBDEFAULTCHARSET=latinl
1rowinset(0.00sec)/qq_39394264
nysql>DESCstudent;
卜一一一一一一一一一十一一一一一一一一一十一―一一一一+一—一一+一一一一—一■-+--------+
1
IFieldTypeINullIKey|DefaultExtra
1___________1______________________1
L-1L1I1
丁丁1
SNochar(8)XOPRINULL
SNamevarchar(8)NOUNINULL
SSexchar(2)XONULL
SBirdatetimeYESNULL
Screditsint(11)YESINULL
1___________1______________________1L
丁丁1
5rowsinset(0.03sec)/qq_39394264
(2)创建course表
命令:
mysql>CREATETABLEcourse
->(
->CNochar(5)NOTNULLPRIMARYKEY
->CNamevarchar(30)NOTNULLUNIQUE,
->CPnochar⑸,
->CTimedecima1(3,0),
->CCreditsintDEFAULT4,
->CTermchar⑴,
->FOREIGNKEY(CPno)REFERENCEScourse(CNo)
->);
截图:
mysql>showcreatetablecourse;
TableCreateTable
courseCREATETABLEcourse(
CNo'char(5)NOTNULL,
CName'varchar(30)NOTNULL,
CPnochar(5)DEFAULTNULL,
CTime'decimal(3,0)DEFAULTNULL,
CCredits'int(ll)DEFAULT'4',
CTerm-char(l)DEFAULTNULL,
PRIMARYKEY(CNo),
UNIQUEKEYCName'(CName),
KEYCPno(CPno),
CONSTRAINTcourse_ibfk_lFOREIGNKEY(CPno)REFERENCEScourse'(CNo)
EXGINE=InnoDBDEFAULTCHARSET=latinl
rowinset(0.00sec)/qq_39394264
mysql?DEbCcourse;
■I------------------------1---------------------------------1--------------H------------H--------------------H-----------------F
FieldType|Null|KeyDefaultExtra
1-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-J1-_-_-_-_-_-_-_1r,1111nJlr
CNochar(5)NOPRI1NULL
CNamevarchar(30)NOUNINULL
CPnochar(5)YESMULNULL
CTimedecimal(3,0)YESNULL
CCreditsint(ll)YES4
CTermchar(l)|YESINULL
++
二/八ci\/qq393^4264
rowsmset(0.01sec)”
(3)创建SC表
命令:
mysql>CREATETABLESC
->(
->SNochar(8)NOTNULL,
->CNochar(5)NOTNULL,
->Scoredecimal(3,l)CHECK(Score>=0ANDScore<=100)/
->PRIMARYKEYfSNo^Noh
曰
->FORGNKEY(SNo)REFERENCESstudent(SNo)z
->FOREIGNKEY(CNo)REFERENCEScourse(CNo)
->);
截图:
hysql>SHOWCREATETABLESC;
TableCreateTable
SCCREATETABLEsc*(
SNochar(8)NOTNULL,
CNo'char(5)NOTNULL,
Scoredecimal(3,1)DEFAULTNULL,
PRIMARYKEY(SNo*,CNo*),
KEYCNo*('CNo'),
CONSTRAINTsc_ibfk_lFOREIGNKEY(SNo)REFERENCESstudent(SNo),
CONSTRAINT、sc_ibfk_2'F0REI(MKEY(CNo)REFERENCEScourse'(CNo)
)ENGINE=InnoDBDEFAULTCHARSET=latinl
1rowinset(0.00sec)/qq_39394264
nysql>DESCSC;
Field1TypeINullKeyDefaultExtra
J________1J1J
十r-r十
SNochar(8)NOPRINULL
CNochar(5)NOPRINULL
Scoredecimal(3,1)YESNULL
+______-----------------------j---------+____--------------+______+
|3rowsinset(0.01sec)
二、利用界面工具创建数据库及表
利用NavicatforMySQL客户端工具创建数据库SM1,并根据上面给出的表结构在SM1中创
建各表。
1.建库SM1
截图:
创建新数据库X
键入颊据库名:
确定取消
2.建表
(1)创建student表
截图:
中[Dock]•母设计]student@>sm1(localhost_3306),□X
陵设诩皿FtiM“7儒设计】螂表
文件"
彳酮口保存*另存为门创■仁位口底入秋位«*除烂位,主・畲上移,不移.
栏位索引外K破发3S选项注记SQL陵览
名类型长度十避位允许空值。|
SNochar80□人
SNamevardw80□
►SSex20
SBrdatetime00
—Saedtsrt110
值:
默认:
注记:
事
整理
=WU5:5
(2)创建course表
截图:
截图:
7蝌口保存器只存为厂1创温*二位问插入世位司删除怨位“;主跳畲上移♦下移
把位索引外通触发3送喷注记SQL长货
名1类经1长度1十H位1允许空值d____1
SNochar80
CNocharS0□
►Scoredeonai3
"J[Bifttt]sc@sm1(k)C3lhost_3306),—□X
文件例*□
7稣®口保存令另存为彳添加侬署软找SS
它位素引夕围法项注记SQLfftg
忤I总发I播入I厢I您I
•|scoreBefbre
定义
Begn
ifnew.Score<Oornew.Score>100
then
setnew.ScorexuJ;
end出
end
【实训总结】
1.初期时在安装老师给的MYSQL5.5时出现问题,安装成功但不能通过DOS命令行启动,然
后通过同学的帮忙,安装了MYSQL5.0并成功启动。
2.在创建表时,对表的完整性约束条件表达不够清楚,通过查阅书籍逐渐尝试而建表成功。
主码PRIMARYKEY
唯一值UNIQUE
不为空NOTNULL
外码FOREIGNKEY
默认值DEFAULT
取值范围CHECK(Score>=0ANDSccre<=100)
3.使用Navicat时不够熟练,要多加练习,遇到问题要及时解决,并从中吸取经验。
实验训练2:数据查询操作
一.实验目的
1.观察查询结果,体会SELECT语句实际应用;
2.要求学生能够在查询分析器中使用SELECT语句进行简单查询。
3.熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。
4.掌握子查询的表示。
5.熟练掌握数据查询中的分组、统计、计算和组合的操作方法。
二.实验准备
完成数据库的创建,在数据库中建立教材3.2节的三个表,并为每个表输入一定数量的记录。
三.实验内容
用SQL语句完成以下查询
3.杳询选修1号课程的学生学号和成绩,并要求对查询结果按成绩的降序排列,如果成绩
相同则按学号的升序排列:
selectStudent.Sno,Grade
fromStudent,Sc
whereStudent.Sno=Sc.SnoandCno='l'
ORDERBYGradeDESC
6.查询缺少了成绩的学生的学号和课程号。
selectStudent.Sno,Cno
fromStudent,Sc
whereStudent.Sno=Sc.SnoandGrade=null
7.查询每个学生的学号,姓名,选修的课程名,成绩;
selectStudent.Sno,Course.Cno.SnameXname,Grade
fromStudent,Sc,Course
whereStudent.Sno=Sc.SnoandCourse.Cno=Sc.Cno
10.查询每门课程的先行课程的课程名称,学分;
selectCname,Ccredit
fromCourse
12.查询每一门课的间接先行课的课程名称:
selectFirst.Cno,Second.Cpno
fromCourseFirst,CourseSecond
WhereFirst.Cpno=Second.Cno
13.查询所在系部为“MA”且选修了高等数学课程的学生姓名,年龄,性别;
selectSname,Sage,Ssex
fromStudent
WhereSdept='MA'andExists(
select
fromcourse,sc
wherecname='数学'ando=sc.eno
)
15.查询选修了数据结构课程,且成绩在90分以上的学生姓名,年龄;
selectSname,Sage
fromStudent,course,sc
WhereSo=oandStudent.sno=Sc.snoandcname='数据结构'andgrade>90
20.查询选修了全部课程的学生的姓名;
selectsname
fromstudent
wherenotexists
(select*
fromcourse
wherenotexists
(select*
fromsc
wheresno=student.sno
andcno=o));
21.查询至少选修了学号为“201215121”的学生所选修的全部课程的学生学号和姓名;
selectsno,sname
fromstudent
wheresnoin(selectscx.sno
fromscscx
wherenotexistsfselect*
fromscscy
wherescy.sno='201215121'and
notexists(select*
fromscscz
wherescz.sno=scx.snoand
o=o)))
25.查询选修了操作系统课程的学生人数;
selectcount(distinctsc.sno)
fromstudent,course,sc
whereo=sc.eno
andstudent.sno=sc.sno
andcname=,操作系统,
29.查询选修了数据库课程的最高分
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 眼科白内障手术医师考试试卷及答案
- 胭脂鱼人工繁育管护技师考试试卷及答案
- 2025年黑龙江省五大连池市高二生物下册期末考试模拟卷必考附答案
- 2026年四川省都江堰市高二生物下册期末考试考试卷带答案(能力提升)
- 2026年江西省瑞昌市高二生物下册期末考试模拟卷附答案(满分必刷)
- 2025年江西省樟树市高二生物下册期末考试模拟卷及一套答案
- 2026年湖南省醴陵市高二生物下册期末考试模拟卷及完整答案【各地真题】
- 2026年河北省霸州市高二生物下册期末考试测试卷(精练)附答案
- 2026年吉林省珲春市高二生物下册期末考试测试卷含答案【夺分金卷】
- 九年级语文阅读理解万能答题公式专项练习题及参考答案(中考专用)
- 西安铁路局集团有限公司招聘笔试题库2026
- 2025福建福州市闽侯县水务投资发展有限公司招聘3人笔试历年参考题库附带答案详解
- 2026年生物制药疫苗研发关键技术知识考察试题及答案解析
- 街道办公室工作制度
- 无废工厂培训资料
- 岳飞传课件教学课件
- 液晶显示器件阵列制造工8S执行考核试卷含答案
- 企业档案管理实务指南
- 耳鼻喉科三基培训课件
- 2026贵州旅游产业发展集团秋招试题及答案
- 国有林场2025年工作自查报告范文
评论
0/150
提交评论