MySQL数据库应用实验训练参考答案_第1页
MySQL数据库应用实验训练参考答案_第2页
MySQL数据库应用实验训练参考答案_第3页
MySQL数据库应用实验训练参考答案_第4页
MySQL数据库应用实验训练参考答案_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

国家开放大学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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论