國家開放大學(xué)電大《MySQL數(shù)據(jù)庫應(yīng)用》網(wǎng)絡(luò)核心課實(shí)驗(yàn)訓(xùn)練1及2答案
《國家開放大學(xué)電大《MySQL數(shù)據(jù)庫應(yīng)用》網(wǎng)絡(luò)核心課實(shí)驗(yàn)訓(xùn)練1及2答案》由會(huì)員分享,可在線閱讀,更多相關(guān)《國家開放大學(xué)電大《MySQL數(shù)據(jù)庫應(yīng)用》網(wǎng)絡(luò)核心課實(shí)驗(yàn)訓(xùn)練1及2答案(7頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、最新國家開放大學(xué)電大《MySQL數(shù)據(jù)庫應(yīng)用》網(wǎng)絡(luò)核心課實(shí)驗(yàn)訓(xùn)練1及2答案 盜傳必究 本課程分為形成性考核和終結(jié)性末考兩種考核形式,形成性考核占50% (滿分100分),末考為網(wǎng)絡(luò)考試占 50% (滿分100),其中形成性考核為完成課程網(wǎng)站上的形考作業(yè)任務(wù),形考作業(yè)均為主觀題,包括四個(gè)實(shí) 訓(xùn):實(shí)訓(xùn)一:在MYSQL創(chuàng)建數(shù)據(jù)庫和表,25分;實(shí)訓(xùn)二:數(shù)據(jù)查詢操作,25分;實(shí)訓(xùn)三:數(shù)據(jù)增刪改操 作,25分;實(shí)訓(xùn)四:數(shù)據(jù)庫系統(tǒng)維護(hù),25分。 實(shí)驗(yàn)訓(xùn)練1在MySQL中創(chuàng)建數(shù)據(jù)庫和表 答案: 步驟: 1、 使用show語句找出在服務(wù)器上當(dāng)前存在什么數(shù)據(jù)庫: mysql>show database
2、s; Fiysql> show databases ; ? Database i infornation_schena i nysql i perfornance_schena i sakila i sns ;world 板 rows in set <0.00 sec> 2、 創(chuàng)建一個(gè)數(shù)據(jù)庫test : mysql>create database test; mysql> create database test; Query 0K> 1 row affected <0.00 sec> 3、 選擇你所創(chuàng)建的數(shù)據(jù)庫: mysql>use test; nysql> use
3、test; database changed 4創(chuàng)建一個(gè)數(shù)據(jù)表: 首先查看剛才創(chuàng)建的數(shù)據(jù)庫中存在什么表: mysql>show tables; uysql> show tables; Empty set <0.00 sec> (說明剛才創(chuàng)建的數(shù)據(jù)庫中還沒有數(shù)據(jù)庫表) 接著我們創(chuàng)建一個(gè)關(guān)于students的數(shù)據(jù)表:包括學(xué)生的學(xué)號(hào)(id),姓名(name),性別(sex),年 齡(age) o mysql>create table students(id int unsigned not null auto_increment primary key, name char(8) not
4、 null,sex char(4) not null, age tinyint unsigned not null,);
nysql> create table students
5、ment primary key"行進(jìn)行介紹: "id”為列的名稱; "int”指定該列的類型為int(取值范圍為-8388608到8388607),在后而我們又用"unsigned” 加以修飾,表示該類型為無符號(hào)型,此時(shí)該列的取值范圍為0到16777215; "not null"說明該列的值不能為空,必須要填,如果不指定該屬性,默認(rèn)可為空; /?auto_incrementz/需在整數(shù)列中使用,其作用是在插入數(shù)據(jù)時(shí)若該列為NULL, MySQL將自動(dòng)產(chǎn)生 一個(gè)比現(xiàn)存值更大的唯一標(biāo)識(shí)符值。在每張表中僅能有一個(gè)這樣的值旦所在列必須為索引列。 primary key”表示該列是表的主鍵,
6、本列的值必須唯一,MySQL將白動(dòng)索引該列。 下而的char(8)表示存儲(chǔ)的字符長度為8, tinyint的取值范圍為-127到128, default屬性指 定當(dāng)該列值為空時(shí)的默認(rèn)值。 創(chuàng)建一個(gè)表后,用show tables顯示數(shù)據(jù)庫中有哪些表: mysql>show tables ; nysql> show tables; 4 ■ I Tables_in_test i 4 ■ I students I ?< ■ 1 row in set <0.00 sec> 5、 顯示表結(jié)構(gòu): mysql>describe students; ?>ysql> describe stu
7、dents ; ! Field : Type ; Null ; Key : Default : Extra I id i int<10> unsigned ; NO ; PRI ; NULL ; auto_increment ; ;name ; char<8> : NO I ; NULL : ! ;sex ; char<4> : NO : ; NULL : ; ;age ; tinyint<3> unsigned ; NO ; ; NULL ; ; I rows in set <0.04 sec> 6、 在表中添加記錄: 首先用select命令來查看表中的數(shù)據(jù): mysql>
8、select*from students;
select*fron students; Empty set <0.00 sec>
(說明剛才創(chuàng)建的數(shù)據(jù)庫表中還沒有任何記錄)
接著加入一條新紀(jì)錄:
mysql>insert into students value( ‘01’, Tom , F , 18);
iysql> insert into students ualue
9、 7、 用文本方式將數(shù)據(jù)裝入一個(gè)數(shù)據(jù)庫表: 創(chuàng)建一個(gè)文本文件“ student, sql 每行包括一個(gè)記錄,用TAB鍵把值分開,并且以在create table 語句中列出的次序,例如: 02 Tony F 18 03 Amy M 18 04 Lisa M 18 將文本文件“student, sql ”裝載到students表中: mysql>load data local infile” e:\\student. sql" into table students; lmysql> load data local inf ile,fe: Wstudents .sqlMinto
10、table students ; IQuerv OK. 0 rows affected (0.00 sec> (Records: 3 Deleted: 0 Skipped: 3 Warnings: 0 再使用select命令來查看表中的數(shù)據(jù)的變化: mysql>select*from students; mysql> select fro n i students; , +- 夫 ■—— — ;id ; nane ; sex i age ; , +- 夫 ■—— —+— ;1 ; Ton i F i i 18 : :2 : To
11、ny ! F i i 18 : :3 : Any i M i i 18 : ;4 ; Lisa ; M i i 18 : ;5 ; 1 0 i i 0 ! , ■ .. .. —.一 + 5 rows in set <0 .00 sec> 實(shí)驗(yàn)訓(xùn)練2:數(shù)據(jù)查詢操作 答案: 實(shí)驗(yàn)?zāi)康模? 基于實(shí)驗(yàn)1創(chuàng)建的汽車用品網(wǎng)上商城數(shù)據(jù)庫Shopping ,理解MySQL運(yùn)算符、函數(shù)、謂詞,練習(xí)Select 語句的操作方法。 實(shí)驗(yàn)內(nèi)容: 1. 單表查詢 【實(shí)驗(yàn)2.1】字段查詢 (1 )查詢商品名稱為“擋風(fēng)玻璃"的商品信息。
12、 分析:商品信息存在于商品表,而且商品表中包含商品名稱此被查詢信息,因此這是只需要涉及一個(gè)表就 可以完成簡單單表查詢。 (2 )查詢ID為1的訂單。 分析:所有的訂單信息存在于訂單表中,而且訂單用戶ID也存在于此表中,因此這是只需要查詢訂單表 就可以完成的查詢。 【實(shí)驗(yàn)2.2】多條件查詢 查詢所有促銷的價(jià)格小于1000的商品信息。 分析:此查詢過程包含兩個(gè)條件,第一個(gè)是是否促銷,第二個(gè)是價(jià)格,在商品表中均有此信息,因此這是 一個(gè)多重條件的查詢。 【實(shí)驗(yàn)2.3】DISTINCT (1 )查詢所有對商品ID為1的商品發(fā)表過評論的用戶ID o 分析:條件和查詢對象存在于評論表中,對此
13、商品發(fā)表過評論的用戶不止一個(gè),而且一個(gè)用戶可以對此商 品發(fā)表多個(gè)評論,因此,結(jié)果需要進(jìn)行去重,這里使用DISTINCT實(shí)現(xiàn)。 (2 )查詢此汽車用品網(wǎng)上商城會(huì)員的創(chuàng)建時(shí)間段,1年為一段。 分析:通過用戶表可以完成查詢,每年可能包含多個(gè)會(huì)員,如果把此表中的創(chuàng)建年份都列出來會(huì)有重復(fù), 因此使用DISTINCT去重。 【實(shí)驗(yàn)2.4】ORDER BY (1 )查詢類別ID為1的所有商品,結(jié)果按照商品ID降序排列。 分析:從商品表中可以查詢出所有類別ID為1的商品信息,結(jié)果按照商品ID的降序排列,因此使用 ORDER BY語句,降序使用DESC關(guān)鍵字。 (2 )查詢今年新增的所有會(huì)員,結(jié)果按
14、照用戶名字排序。 分析:在用戶表中可以完成查詢,創(chuàng)建日期條件設(shè)置為今年,此處使用語句ORDER BY。 【實(shí)驗(yàn) 2.5 ] GROUP BY (1 )查詢每個(gè)用戶的消費(fèi)總金額(所有訂單)。 分析:訂單表中包含每個(gè)訂單的訂單總價(jià)和用戶ID?,F(xiàn)在需要將每個(gè)用戶的所有訂單提取出來分為一類, 通過SUMO函數(shù)取得總金額。此處使用GROUP BY語句和SUM()函數(shù)。 (2 )查詢類別價(jià)格一樣的各種商品數(shù)量總和。 分析:此查詢中需要對商品進(jìn)行分類,分類依據(jù)是同類別和價(jià)格,這是“多列分組”,較上一個(gè)例子 更為復(fù)雜。 2. 聚合函數(shù)查詢 【實(shí)驗(yàn) 2.6 ] COUNT () (1 )查詢類
15、別的數(shù)量。 分析:此查詢利用COUNT()函數(shù),返回指定列中值的數(shù)目,此處指定列是類別表中的ID (或者名稱均 可)。 (2 )查詢汽車用品網(wǎng)上商城的每天的接單數(shù)。 分析:訂單相關(guān),此處使用聚合函數(shù)COUNT()和Group by子句。 【實(shí)驗(yàn)2.7 ] SUMO 查詢該商城每天的銷售額。 分析:在訂單表中,有一列是訂單總價(jià),將所有訂單的訂單總價(jià)求和,按照下單日期分組,使用SUMO函 數(shù)和Group by子句。 【實(shí)驗(yàn)2.8】AVGO (1 )查詢所有訂單的平均銷售金額。 分析:同上一個(gè)相同,還是在訂單表中,依然取用訂單總價(jià)列,使用AVGO函數(shù),對指定列的值求平均 數(shù)。 【
16、實(shí)驗(yàn)2.9 ] MAXO (1 )查詢所有商品中的數(shù)量最大者。 分析:商品的數(shù)量信息存在于商品表中,此處查詢應(yīng)該去商品表,在商品數(shù)量指定列中求值最大者。使用 MAXO函數(shù)。 (2 )查詢所有用戶按字母排序中名字最靠前者。 分析:MAX()或者M(jìn)IN()也可以用在文本列,以獲得按字母順序排列的最高或者最低者。同上一個(gè)實(shí)驗(yàn) 一樣,使用MAX()函數(shù)。 【實(shí)驗(yàn) 2. 10 ] MIN () (1)查詢所有商品中價(jià)格最低者。 分析:同MAX ()用法相同,找到表和列,使用MINO函數(shù)。 3. 連接查詢 【實(shí)驗(yàn)2.11 ]內(nèi)連接查詢 (1)查詢所有訂單的發(fā)出者名字。 分析:此處
17、訂單的信息需要從訂單表中得到,訂單表中主鍵是訂單號(hào),外鍵是用戶ID ,同時(shí)查詢需要得 到訂單發(fā)出者的姓名,也就是用戶名,因此需要將訂單表和用戶表通過用戶ID進(jìn)行連接。使用內(nèi)連接的 (INNER) JOIN 語句。 (2 )查詢每個(gè)用戶購物車中的商品名稱。 分析:購物車中的信息可以從購物車表中得到,購物車表中有用戶ID和商品ID兩項(xiàng),通過這兩項(xiàng)可以 與商品表連接,從而可以獲得商品名稱。與上一個(gè)實(shí)驗(yàn)相似,此查詢使用(INNER) JOIN語句。 【實(shí)驗(yàn)2. 12】外連接查詢 (1 )查詢列出所有用戶ID ,以及他們的評論,如果有的話。 分析:此查詢首先需列出所有用戶ID ,如果參與過評論
18、的話,再列出相關(guān)的評論。此處使用外查詢中的 LEFT (OUTER) JOIN語句,注意需將全部顯示的列名寫在JOIN語句左邊。 (2 )查詢列出所有用戶ID ,以及他們的評論,如果有的話。 分析:依然是上一個(gè)實(shí)驗(yàn),還可以使用RIGHT (OUTER) JOIN語句,注意需將全部顯示的列名寫在JOIN語 句右邊。 【實(shí)驗(yàn)2. 13】復(fù)合條件連接查詢 (1 )查詢用戶ID為1的客戶的訂單信息和客戶名。 分析:復(fù)合條件連接查詢是在連接查詢的過程中,通過添加過濾條件,限制查詢的結(jié)果,使查詢的結(jié)果更 加準(zhǔn)確。此查詢需在內(nèi)查詢的基礎(chǔ)上加上另一個(gè)條件,用戶iD為1 ,使用AND語句添加精確條件。
19、 (2 )查詢每個(gè)用戶的購物車中的商品價(jià)格,并旦按照價(jià)格順序排列。 分析:此查詢需要先使用內(nèi)連接對商品表和購物車表進(jìn)行連接,得到商品的價(jià)格,在使用ORDER BY語句 對價(jià)格進(jìn)行順序排列。 4. 嵌套查詢 【實(shí)驗(yàn)2. 14 ] IN (1 )查詢訂購商品ID為1的訂單ID ,并根據(jù)訂單ID查詢發(fā)出此訂單的用戶ID o 分析:此查詢需要使用IN關(guān)鍵字進(jìn)行子查詢,子查詢是通過SELECT語句在訂單明細(xì)表中先確定此訂單 ID ,在通過SELECT在訂單表中查詢到用戶ID。 (2 )查詢訂購商品ID為1的訂單ID ,并根據(jù)訂單ID查詢未發(fā)出此訂單的用戶ID o 分析:此查詢和前一個(gè)實(shí)驗(yàn)
20、相似,只是需使用NOT IN語句。 【實(shí)驗(yàn)2. 15 ]比較運(yùn)算符 (1 )查詢今年新增會(huì)員的訂單,并且列出所有訂單總價(jià)小于100的訂單ID。 分析:此查詢需要使用嵌套,子查詢需先查詢用戶表得到今年創(chuàng)建的用戶信息,在將用戶ID匹配找打訂 單信息,其中使用比較運(yùn)算符提供訂單總價(jià)小于100的條件。 (2 )查詢所有訂單商品數(shù)量總和小于100的商品ID ,并將不在此商品所在類別的其他類別的ID列 出來。 分析:此查詢需要進(jìn)行嵌套查詢,子查詢過程需要使用到SUM()函數(shù)和GROUP BY求出同種商品的所有 被訂數(shù)量,使用比較運(yùn)算符得到數(shù)量總和小于100的商品ID ,再使用比較運(yùn)算符“不等于”得
21、到 非此商品所在類的類別ID o 【實(shí)驗(yàn) 2. 16 ] EXISTS (1 )查詢表中是否存在用戶ID為100的用戶,如果存在,列出此用戶的信息。 分析:EXISTS關(guān)鍵字后面的參數(shù)是一個(gè)任意的子查詢,系統(tǒng)對于查詢進(jìn)行運(yùn)算以判斷它是否返回行,如 果至少返回一行,那以EXISTS的結(jié)果為TRUE,此時(shí)外層查詢語句將進(jìn)行查詢。此查詢需要對用戶ID進(jìn) 行EXIST操作。 (2 )查詢表中是否存在類別ID為100的商品類別,如果存在,列出此類別中商品價(jià)格小于5的商 品ID。 分析:與上一個(gè)實(shí)驗(yàn)相似,此實(shí)驗(yàn)在外查詢過程添加了比較運(yùn)算符。 【實(shí)驗(yàn)2.17 ] ANY 查詢所有商品表中價(jià)格比
22、訂單表中商品ID對應(yīng)的價(jià)格大的商品ID o 分析:ANY關(guān)鍵字在一個(gè)比較操作符的后面,表示若與子查詢返回的任何值比較為TRUE ,則返回TRUE。 此處使用ANY來引出內(nèi)查詢。 【實(shí)驗(yàn)2. 18 ] ALL 查詢所有商品表中價(jià)格比訂單表中所有商品ID對應(yīng)的價(jià)格大的商品ID o 分析:使用ALL時(shí)需要同時(shí)滿足所有內(nèi)層查詢的條件。ALL關(guān)鍵字在一個(gè)比較操作符的后而,表示與子 查詢返回的所有值比較為TRUE ,則返回TRUE。此處使用ALL來引出內(nèi)查詢。 【實(shí)驗(yàn)2. 19】集合查詢 (1 )查詢所有價(jià)格小于5的商品,查詢類別ID為1和2的所有商品,使用UNION連接查詢結(jié)果。 分析:由
23、前所述,UNION將多個(gè)SELECT語句的結(jié)果組合成一個(gè)結(jié)果集合,第1條SELECT語句查詢價(jià) 格小于5的商品,第2條SELECT語句查詢類別ID為1和2的商品,使用UNION將兩條SELECT語 句分隔開,執(zhí)行完畢之后把輸出結(jié)果組合為單個(gè)的結(jié)果集,并刪除重復(fù)的記錄。 (2 )查詢所有價(jià)格小于5的商品,查詢類別ID為1和2的所有商品,使用UNION ALL連接查詢 結(jié)果。 分析:使用UNION ALL包含重復(fù)的行,在前而的例子中,分開查詢時(shí),兩個(gè)返回結(jié)果中有相同的記錄, 使用UNION會(huì)自動(dòng)去除重復(fù)行。UNION ALL從查詢結(jié)果集中自動(dòng)要返回所有匹配行,而不進(jìn)行刪除。 實(shí)驗(yàn)要求: 1 .所有操作必須通過MySQL Workbench完成; 2?每執(zhí)行一種查詢語句后,均要求通過MySQL Workbench查看執(zhí)行結(jié)果; 3 .將操作過程以屏幕抓圖的方式拷貝,形成實(shí)驗(yàn)文檔。
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 110中國人民警察節(jié)(筑牢忠誠警魂感受別樣警彩)
- 2025正字當(dāng)頭廉字入心爭當(dāng)公安隊(duì)伍鐵軍
- XX國企干部警示教育片觀后感筑牢信仰之基堅(jiān)守廉潔底線
- 2025做擔(dān)當(dāng)時(shí)代大任的中國青年P(guān)PT青年思想教育微黨課
- 2025新年工作部署會(huì)圍繞六個(gè)干字提要求
- XX地區(qū)中小學(xué)期末考試經(jīng)驗(yàn)總結(jié)(認(rèn)真復(fù)習(xí)輕松應(yīng)考)
- 支部書記上黨課筑牢清廉信念為高質(zhì)量發(fā)展?fàn)I造風(fēng)清氣正的環(huán)境
- 冬季消防安全知識(shí)培訓(xùn)冬季用電防火安全
- 2025加強(qiáng)政治引領(lǐng)(政治引領(lǐng)是現(xiàn)代政黨的重要功能)
- 主播直播培訓(xùn)直播技巧與方法
- 2025六廉六進(jìn)持續(xù)涵養(yǎng)良好政治生態(tài)
- 員工職業(yè)生涯規(guī)劃方案制定個(gè)人職業(yè)生涯規(guī)劃
- 2024年XX地區(qū)黨建引領(lǐng)鄉(xiāng)村振興工作總結(jié)
- XX中小學(xué)期末考試經(jīng)驗(yàn)總結(jié)(認(rèn)真復(fù)習(xí)輕松應(yīng)考)
- 幼兒園期末家長會(huì)長長的路慢慢地走