MySQL數(shù)據(jù)庫應(yīng)用實(shí)驗(yàn)訓(xùn)練參考答案_第1頁
MySQL數(shù)據(jù)庫應(yīng)用實(shí)驗(yàn)訓(xùn)練參考答案_第2頁
MySQL數(shù)據(jù)庫應(yīng)用實(shí)驗(yàn)訓(xùn)練參考答案_第3頁
MySQL數(shù)據(jù)庫應(yīng)用實(shí)驗(yàn)訓(xùn)練參考答案_第4頁
MySQL數(shù)據(jù)庫應(yīng)用實(shí)驗(yàn)訓(xùn)練參考答案_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

國家開放大學(xué)MySQL數(shù)據(jù)庫應(yīng)用實(shí)驗(yàn)

實(shí)驗(yàn)1:在MySQL創(chuàng)建數(shù)據(jù)庫及表

【實(shí)訓(xùn)目的與要求

1、安裝MySQL系統(tǒng),了解MySQL環(huán)境;

2、利用MySQL命令行窗口創(chuàng)建數(shù)據(jù)庫及表;

3、利用界面工具創(chuàng)建數(shù)據(jù)庫及表;

4、完整性約束設(shè)計(jì)。

【實(shí)訓(xùn)原理】

DBMS環(huán)境的使用

【實(shí)訓(xùn)步驟】

一、熟悉MySQL環(huán)境

1.檢查軟硬件配置是否達(dá)到MySQL的安裝要求。

(1)硬件

(2)軟件

2.安裝數(shù)據(jù)庫管理系統(tǒng)MySQL服務(wù)器

hntei*password:

3.練習(xí)用不同的方法啟動MySQL服務(wù)。

4.⑴.通過Windows服務(wù)管理器啟動MYSQL服務(wù)

文件電海作mhv)W?H)

?

MyfQl遜

■';血

??

1先

:本:

NetTcpPortSharwS?fvk?IM,統(tǒng)

QNrtogon5WU卜M

QHetworkConnectedDe^c_—

??-統(tǒng)

?■

—a

NftwortrConnecbanBrok*f向

Iff.饒

&HetwortConnectm

w皖

—i

GNetwoAConnectivityAwn

v?符

QHrtwortlistService皿正在?.劭A

網(wǎng)

動M

QNetwoALouttonAMiwne.eta",

◎NetwortcSetupServiceRS皿ttt

6NetwoAStotvMUEM.$?.itsJE8..動

本fl

統(tǒng)

H訪

@HVKXADispl^DriverSeePrwL.Iff-

統(tǒng)

ROific,SourceEngine到d動

統(tǒng)

4^OptimiMdrives酗動

Q^eerNaneResok/DonPm?動

季0

QRwrNefmxtongGroupsitm動

◎釀rNetwortongIdentity_動:

&Bofnwx.CoumerDU-flMk面

務(wù)

手0

aMonruncelogi&Alemu工

f本M

xro

產(chǎn)屆E/

⑵.通過DOS命令啟動MYSQL服務(wù)

Qd管理員:命令提示符-□X

:\>netstartmysql

ySQL服務(wù)正在啟動..

ySQL服務(wù)己經(jīng)啟動成功.

5.登錄MySQL服務(wù)器。

聞管理員:命令提示符-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.認(rèn)識MySQL界面工具:NavicatforMySQL客戶端工

,Navicat8forMySQL

文件?M(V)TJICD?C(W)電助(W

6.利用MySQL客戶端訪問數(shù)據(jù)庫

(1)使用SHOW語句查看系統(tǒng)中已有的數(shù)據(jù)庫:

命令: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數(shù)據(jù)庫為當(dāng)前數(shù)據(jù)庫:

命令:usemysql;

勵(lì)管理員:命令提示符-mysql-hlocalhost-uroot-p-□X

mysql>usemysql;

Databasechanged

mysql>.

(3)使用SHOWTABLES語句查看當(dāng)前數(shù)據(jù)庫中的表:

命令:showdatabases;

國1管理員:命令提示符-mysql-hlocalhost-uroot-p—□X

mysql>SHOWTABLES;

Tables_in_root

tb_grade

1rowinset(0.02sec)

二利用MySQL命令行窗口創(chuàng)建數(shù)據(jù)庫及表

1.使用命令行方式創(chuàng)建數(shù)據(jù)庫SM

以管理身份登錄MySQL客戶端,使用CREATE語句創(chuàng)建SM數(shù)據(jù)庫。

命令:

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.建表結(jié)構(gòu)并設(shè)計(jì)完整性

SM數(shù)據(jù)庫中包含3個(gè)數(shù)據(jù)表:學(xué)生表(student)、課程表(course)、學(xué)生選課表(SC)

各表的結(jié)構(gòu)分別如下:

student表結(jié)構(gòu);

字段名稱數(shù)據(jù)類型是否允許空值約束說明

SNOchar(8)X主鍵學(xué)號

SNamevarchar(8)X唯一值姓名

SSexchar(2)X檢查約束性別(男或女)

SBirdatetimeV出生日期

ScreditsintV總學(xué)分

course表結(jié)構(gòu):

字段名稱數(shù)據(jù)類型是否允許空值約束說明

CNOchar(5)X主鍵課程編號

CNamevarchar(30)X唯一值課程名稱

CPnochar(5)V外碼先修課程

CTimedecimal(3,0)V總學(xué)時(shí)

CCreditsintV默認(rèn)值4學(xué)分

CTermchar(l)X學(xué)期

SC表結(jié)構(gòu):

字段名稱數(shù)據(jù)類型是否允許空值約束說明

SNOchar(8)X外碼學(xué)號

CNOchar(5)X外碼課程編號

Scoredecimal(3,l)V0^100戌績

(1)創(chuàng)建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)創(chuàng)建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)創(chuàng)建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)

二、利用界面工具創(chuàng)建數(shù)據(jù)庫及表

利用NavicatforMySQL客戶端工具創(chuàng)建數(shù)據(jù)庫SM1,并根據(jù)上面給出的表結(jié)構(gòu)在SM1中創(chuàng)

建各表。

1.建庫SM1

截圖:

創(chuàng)建新數(shù)據(jù)庫X

鍵入頰據(jù)庫名:

確定取消

2.建表

(1)創(chuàng)建student表

截圖:

中[Dock]?母設(shè)計(jì)]student@>sm1(localhost_3306),□X

陵設(shè)詡皿FtiM“7儒設(shè)計(jì)】螂表

文件"

彳酮口保存*另存為門創(chuàng)■仁位口底入秋位?*除爛位,主?畬上移,不移.

欄位索引外K破發(fā)3S選項(xiàng)注記SQL陵覽

名類型長度十避位允許空值。|

SNochar80□人

SNamevardw80□

?SSex20

SBrdatetime00

—Saedtsrt110

值:

默認(rèn):

注記:

整理

=WU5:5

(2)創(chuàng)建course表

截圖:

截圖:

7蝌口保存器只存為廠1創(chuàng)溫*二位問插入世位司刪除怨位“;主跳畬上移?下移

把位索引外通觸發(fā)3送噴注記SQL長貨

名1類經(jīng)1長度1十H位1允許空值d____1

SNochar80

CNocharS0□

?Scoredeonai3

"J[Bifttt]sc@sm1(k)C3lhost_3306),—□X

文件例*□

7穌?口保存令另存為彳添加儂署軟找SS

它位素引夕圍法項(xiàng)注記SQLfftg

忤I總發(fā)I播入I廂I您I

?|scoreBefbre

定義

Begn

ifnew.Score<Oornew.Score>100

then

setnew.ScorexuJ;

end出

end

【實(shí)訓(xùn)總結(jié)】

1.初期時(shí)在安裝老師給的MYSQL5.5時(shí)出現(xiàn)問題,安裝成功但不能通過DOS命令行啟動,然

后通過同學(xué)的幫忙,安裝了MYSQL5.0并成功啟動。

2.在創(chuàng)建表時(shí),對表的完整性約束條件表達(dá)不夠清楚,通過查閱書籍逐漸嘗試而建表成功。

主碼PRIMARYKEY

唯一值UNIQUE

不為空NOTNULL

外碼FOREIGNKEY

默認(rèn)值DEFAULT

取值范圍CHECK(Score>=0ANDSccre<=100)

3.使用Navicat時(shí)不夠熟練,要多加練習(xí),遇到問題要及時(shí)解決,并從中吸取經(jīng)驗(yàn)。

實(shí)驗(yàn)訓(xùn)練2:數(shù)據(jù)查詢操作

一.實(shí)驗(yàn)?zāi)康?/p>

1.觀察查詢結(jié)果,體會SELECT語句實(shí)際應(yīng)用;

2.要求學(xué)生能夠在查詢分析器中使用SELECT語句進(jìn)行簡單查詢。

3.熟練掌握簡單表的數(shù)據(jù)查詢、數(shù)據(jù)排序和數(shù)據(jù)連接查詢的操作方法。

4.掌握子查詢的表示。

5.熟練掌握數(shù)據(jù)查詢中的分組、統(tǒng)計(jì)、計(jì)算和組合的操作方法。

二.實(shí)驗(yàn)準(zhǔn)備

完成數(shù)據(jù)庫的創(chuàng)建,在數(shù)據(jù)庫中建立教材3.2節(jié)的三個(gè)表,并為每個(gè)表輸入一定數(shù)量的記錄。

三.實(shí)驗(yàn)內(nèi)容

用SQL語句完成以下查詢

3.杳詢選修1號課程的學(xué)生學(xué)號和成績,并要求對查詢結(jié)果按成績的降序排列,如果成績

相同則按學(xué)號的升序排列:

selectStudent.Sno,Grade

fromStudent,Sc

whereStudent.Sno=Sc.SnoandCno='l'

ORDERBYGradeDESC

6.查詢?nèi)鄙倭顺煽兊膶W(xué)生的學(xué)號和課程號。

selectStudent.Sno,Cno

fromStudent,Sc

whereStudent.Sno=Sc.SnoandGrade=null

7.查詢每個(gè)學(xué)生的學(xué)號,姓名,選修的課程名,成績;

selectStudent.Sno,Course.Cno.SnameXname,Grade

fromStudent,Sc,Course

whereStudent.Sno=Sc.SnoandCourse.Cno=Sc.Cno

10.查詢每門課程的先行課程的課程名稱,學(xué)分;

selectCname,Ccredit

fromCourse

12.查詢每一門課的間接先行課的課程名稱:

selectFirst.Cno,Second.Cpno

fromCourseFirst,CourseSecond

WhereFirst.Cpno=Second.Cno

13.查詢所在系部為“MA”且選修了高等數(shù)學(xué)課程的學(xué)生姓名,年齡,性別;

selectSname,Sage,Ssex

fromStudent

WhereSdept='MA'andExists(

select

fromcourse,sc

wherecname='數(shù)學(xué)'ando=sc.eno

)

15.查詢選修了數(shù)據(jù)結(jié)構(gòu)課程,且成績在90分以上的學(xué)生姓名,年齡;

selectSname,Sage

fromStudent,course,sc

WhereSo=oandStudent.sno=Sc.snoandcname='數(shù)據(jù)結(jié)構(gòu)'andgrade>90

20.查詢選修了全部課程的學(xué)生的姓名;

selectsname

fromstudent

wherenotexists

(select*

fromcourse

wherenotexists

(select*

fromsc

wheresno=student.sno

andcno=o));

21.查詢至少選修了學(xué)號為“201215121”的學(xué)生所選修的全部課程的學(xué)生學(xué)號和姓名;

selectsno,sname

fromstudent

wheresnoin(selectscx.sno

fromscscx

wherenotexistsfselect*

fromscscy

wherescy.sno='201215121'and

notexists(select*

fromscscz

wherescz.sno=scx.snoand

o=o)))

25.查詢選修了操作系統(tǒng)課程的學(xué)生人數(shù);

selectcount(distinctsc.sno)

fromstudent,course,sc

whereo=sc.eno

andstudent.sno=sc.sno

andcname=,操作系統(tǒng),

29.查詢選修了數(shù)據(jù)庫課程的最高分

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論