999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

SQL語言在數據庫實踐課程中的應用

2024-04-29 00:00:00李璋陳龍陳逸凡程翔高琪媛
科技風 2024年8期

摘""要:本文介紹了SQL語言的主要含義,給出了SQL語言在數據庫實踐課程中的一些應用,如查詢單表的某公司職員綜合信息表、多表的某高校十一人制男子組足球比賽賽事數據分析表,依托這些實例從基礎的單表查詢操作到能夠進行多表之間的數據查詢分析,掌握SQL語言的SELECT功能及其有關查詢關鍵字的用法。

關鍵詞:SQL語言;"數據庫實踐課程;"數據庫操作

中圖分類號:TP311.1"""""文獻標識碼:A

Application"of"SQL"Language"in"Database"Practice"Course

Li"Zhang1""""Chen"Long1""""Chen"YiFan1"""Cheng"Xiang1"""Gao"QiYuan2

  • School"of"Artificial"Intelligence","Hubei"University"""HubeiWuhan""""430062;""2.Manchester"Metropolitan"Joint"Institute","Hubei"University"""HubeiWuhan"""430062

Abstract:"This"article"introduces"the"main"meaning"of"SQL"language,"provides"some""applications"of"SQL"language"in"databasenbsp;practice"courses,"such"as"the"comprehensive"information"table"of"a"company's"employees"in"a"single"query"table,"and"the"multi"table"data"analysis"table"of"a"university's"eleven"player"men's"football"match."Based"on"these"examples,"from"basic"single"table"query"operations"to"the"ability"to"query"and"analyze"data"between"multiple"tables,"Master"the"SELECT"function"implemented"by"SQL"language"and"its"usage"related"to"query"keywords.

Keywords:"Structured"Query"Language;"Database"Practice"Course;"Database"Operation

如今計算機應用系統得到了很大發展,其中數據庫是每個應用不可或缺的部分。因為對該方面的技術需求日益增多,故各個高等教育院校都已將數據庫系統概論課程增加到其計算機相關專業的培養計劃中且為必修課。并且在數據庫系統概論課程中,SQL語句實踐處于首要的部位,由于它可以實現數據庫系統的增、刪、改、查的重要功能[1]。想要滿足相應的查詢、修改等需求,就應該正確理解和實踐SQL語言,這是每個計算機就業者所必須的基礎技能。

本文首先說明SQL語言“是什么”,隨后將給出兩個貼合實際的SQL語言使用的場景實例,通過“問”與“答”的方式來使學生能夠深入自主的思考所需的答案邏輯,從而寫出相應的語句腳本,著重加強對語句含義的理解與使用,尤其是一些常用查詢操作的關鍵字用法及涵義。在經過獨立完成這些實踐課程的具體應用后,使學生對SQL語言的具體使用有一定的理解并能學會基礎的腳本設計。

1"SQL語言介紹

結構化查詢語言SQL(Structured"Query"Language)是并非過程化的高級編程語言,它讓使用者凌駕于數據結構上進行有關操作。其既不要求使用人設定對數據的存放途徑,也不需要操作人知曉詳細的數據儲存渠道,故帶有幾乎不同底層構造的不同數據庫系統,允許利用一樣的SQL語言作為數據添加與管理的接口。SQL語句可以嵌套,這帶來有巨大的靈活性和功能性[2]。

SQL是一種集數據庫查詢和程序設計的語言,專門作用于關系型數據庫,它允許用戶與數據庫之間相互作用,具有定義數據、查找數據、更新數據、訪問控制﹑數據共享、數據統一、管理關系數據庫系統等功能。此處只著重介紹它的數據查詢功能,也就是SELECT語句[3]。SELECT語句包括8個子句,其中SELECT和FROM子句是必須存在的,剩下的6個子句僅在特定需求時使用。

2"單表的某公司職員綜合信息表

所謂查詢即為檢索,數據本身并不會因為檢索而會發生任何改變,而是從已經存在的數據表或者視圖中提取所符合要求的數據,最后得到的結果仍然是一個數據表[4]。本文首先從單表的某公司職員綜合信息表開始介紹SELECT語句的查詢功能及所需邏輯,由于單表的查詢會比較簡單,故在本實際應用中會對其中部分問題進行分析。某公司部分職員綜合信息表如下:

Q1.找出工資高于李四的職員,并按照工資從多到少進行排名。

SELECT"Name,Wages"FROM"clerk

WHERE"Wages"gt;"(SELECT"Wages"FROM"clerk"WHERE"Name"="'李四')"ORDER"BY"Wages"DESC;

Q2.找出工齡多于10年且工資高于兩萬的職員,找出該員工所在省份、部門和計算出其年終獎與單月工資的比重(以元為單位,小數點保留兩位)。

SELECT"Name,"Province,"ROUND((`Bonus`*10000)/(Wages),2)"AS"Proportion,Department""FROM"clerk

WHERE"Seniority"gt;"10"AND"Wages"gt;"2;

思路:由于年終獎與單月工資的比重為年終獎除以工資,再加上最后要求以元為單位,故需要進行變換單位即(`Bonus`*10000)/(Wages)。

Q3.顯示出同在桂八和王五所在的部門中的職工,列出這些員工的名字及所屬部門,并按照工作年限Seniority升序排名。

SELECT"Name,Department,Seniority

FROM"clerk

WHERE"Department"IN"(SELECT"DISTINCT"Department"FROM"clerk"WHERE"Name"="'桂八'"OR"Name"="'王五')

ORDER"BY"Seniority"ASC;

思路:SQL語句中,DISTINCT表示去掉重復的行,作用是針對包含重復值的數據表,用于返回唯一不同的值。語法是SELECT"DISTINCT列名稱FROM表名稱。如果指定了SELECT"DISTINCT,那么ORDER"BY子句中的項就必須出現在選擇列表中,否則會出現錯誤。對于DISTINCT關鍵字,如果后面有多個字段,則代表著是多條件去重,只有當這幾個條件都相同時才算是重復記錄。

Q4.找出clerk表中工資最高的職員。

SELECT"Name,Wages"FROM"clerk

①WHERE"Wages"gt;="ALL(SELECT"Wages"FROM"clerk"WHERE"Wages"gt;"0);

②WHERE"Wages"gt;="ANY(SELECT"Wages"FROM"clerk"WHERE"Wages"gt;"0);

思路:all表示所有,any表示任意一個,即

any表示有任何一個結果滿足條件就返回true,all表示全部結果都滿足條件才返回true,在本題中兩種表述條件都符合答案;使用Wages"gt;"0的原因為避免有些職員的工資沒有數據為1,而報錯。

Q5.趙六的工資為82402元,是clerk表中工資最多的員工,李九的月薪為5146元,占趙六工資的6%。要求找出年終獎Bonus大于2萬元的員工姓名和每個員工的月薪。以趙六的工資百分比作工資占比展示(保留一位小數)。

SELECT"Name,CONCAT(ROUND(Wages/(SELECT"Wages"FROM"clerk"WHERE"Name"="'趙六')*100,1),'%')"AS"percentage

FROM"clerk"WHERE"`Bonus`"gt;"2;

思路:CONCAT()函數用于將多個字符串拼接成一個字符串,ROUND()函數用于把數值字段舍入為指定的小數位數,如ROUND(X,d),X指將要處理的數,d為指需要保留幾位小數,其中d可以為負數,當d為-3時表示保留整數到千位。

3"多表的某高校十一人制男子組足球比賽賽事數據分析表

多表聯合查詢是針對兩個及以上表的查詢,把存儲在不同表中的數據根據不同查詢需求進行有關操作。關系型數據庫中最主要且在實際中最常用的查詢就是多表聯合查詢,該查詢的實現方式可分為連接查詢和嵌套查詢來實現。以下通過一個具體多表查詢的應用來介紹連接查詢和嵌套查詢的作用及其特點。某高校部分賽事、球員進球和球隊信息表2。

Q1.找出名字有“朱”的球員全部進球數據。

SELECT"*"FROM"goal

WHERE"Scorer"LIKE"'%朱%';

思路:SQL語言中使用關鍵詞LIKE+%/_來進行模糊查找,“%”(代表0到任意個字符),而“_”(代表一個字符)。

Q2.由Q1可知,小朱在比賽編號為3的比賽取得進球,請找出是哪個球隊與其比賽,并顯示這場比賽具體信息。

SELECT"GameID,Data,Venue,HomeTeam,"AwayTeam,score"FROM"course"WHERE"GameID"="'3';

思路:goal表中的MatchID字段對應course表中的GameID字段。

Q3.結合Q1、Q2,找出姓名中有“奧”的球員全部進球數據,并顯示出這些比賽的具體信息。

解法1:SELECT"Scorer,TeamAbbreviation,"Gtime,GameID,Data,Venue,HomeTeam,AwayTeam,score"FROM"course"JOIN"goal"ON"(GameID"="MatchID)"WHERE"Scorer"LIKE"'%奧%';

思路:通過結合以上兩個問題的結果,我們可以使用聯表查詢Join...ON來解決Q3。

解法2:SELECT"Scorer,"TeamAbbreviation,"Gtime,GameID,Data,Venue,HomeTeam,AwayTeam,score"FROM"(SELECT"MatchID,"Scorer,"TeamAbbreviation,Gtime"FROM"goal"WHERE"Scorer"LIKE"'%奧%')"AS"g"LEFT"JOIN

(SELECT"GameID,Data,"Venue,HomeTeam,"AwayTeam,score"FROM"course)"AS"c"ON"GameID"="MatchID

思路:根據子查詢,先在goal表中找出名字中有“奧”的球員全部進球數據,然后左連接到course表的查詢,由GameID"="MatchID條件,篩選出最佳解。

Q4.通過Q3,列出每一位在物理與電子科學學院進球(不包括點球大戰)的球員名稱,進球的主客隊,及比賽具體信息。

解法1:

SELECT"Scorer,TeamAbbreviation,Gtime,"GameID,Data,Venue,HomeTeam,AwayTeam,score

FROM"course"JOIN"goal"ON"(GameID"="MatchID)

WHERE"TeamAbbreviation"="'PES'"AND"IsPenalty"IS"NULL;

解法2:

SELECT"Scorer,TeamAbbreviation,Gtime,"GameID,Data,Venue,HomeTeam,AwayTeam,score

FROM(SELECT"MatchID,"Scorer,"TeamAbbreviation,"Gtime,IsPenalty"FROM"goal"WHERE"TeamAbbreviation"="'PES')"AS"g"LEFT"JOIN(SELECT"GameID,Data,Venue,"HomeTeam,AwayTeam,score"FROM"course)"AS"c"ON"GameID"="MatchID

WHERE"IsPenalty"IS"NULL;

思路:根據子查詢即嵌套查詢來進行查詢,先分別從goal表和course表中得到所需要的字段,再將結果進行左連接(LEFT"JOIN),最后根據條件得出答案。

Q5.找出在前10分鐘取得進球的球員,并顯示出球員名字、所在隊伍、主教練以及得分時間。

SELECT"Scorer,TeamAbbreviation,Gtime,"TeamName,Manager"FROM"goal"JOIN"team

ON"(TeamAbbreviation"="TeamCode)

WHERE"Gtime"lt;="10;

思路:同Q3,由于team表中包含球隊的名字、主教練的需要的關鍵字段,所以可以用"goal"JOIN"team"ON"(TeamAbbreviation"="TeamCode),將goal表與team表進行聯系,最后用Gtime"lt;="10"篩出結果。

Q6."找出全部比賽中攻入計算機學院球門的球員。

SELECT"DISTINCT"MatchID,"TeamAbbreviation,"Scorer,Gtime"FROM"goal"JOIN"course"ON"MatchID"="GameID"WHERE"TeamAbbreviation"!="'MOR'"AND"(HomeTeam"="'計算機學院'OR"AwayTeam"="'計算機學院');

思路:首先在goal表中排除計算機學院隊自己的球員(自己不能踢進自己的球門),然后在course表中找到與計算機學院進行比賽的比賽編號,再由定位到對方進球球員。

結語

本文通過兩個具體場景的應用介紹了SQL語言最關鍵的查詢功能,同時將其使用方法和特點進行了詳細說明。該語言是一種專用于關系型數據庫查詢與程序設計語言,適用于存取、查詢、更新數據和管理有關數據庫系統;而且也是數據庫腳本文件的擴展名。SQL語言不管是種類還是數量都是較為繁多的,大多數語句經常要被用到,SELECT語句就是一個典型的工具,無論是高級查詢還是低級查詢,它的運用需求是最頻繁的,熟練掌握數據庫查詢功能及技巧是學好SQL語言的基礎。

參考文獻:

[1]吳軍,張琳.數據庫SQL語言中的難點討論[J].信息與電腦(理論版),2021,33(18):53-55.

[2]趙光亮,舒小松."Navicat"for"MySQL平臺中的SQL語言分析與應用[J].無線互聯科技,2017(19):74-75.

[3]李力,程嚴,王麗霞."SQL語言在醫院信息查詢和統計中的應用[J].中國藥房,2002(12):23-24.

[4]陳長海.Visual"Foxpro"SQL查詢語句探討[J].中國人民公安大學學報(自然科學版),2008(02):89-91.

基金項目:教育部產學合作協同育人項目(編號:220503612183643)“電子信息工程實踐創新實驗室建設的研究”;湖北大學2022年度教學改革研究項目(編號:2022078)“電子信息類專業課程思政教學設計”資助

作者簡介:李璋(1976-""),男,博士,教授,主要研究方向:信息與通信系統;陳龍(1995-),男,碩士研究生,主要研究方向:數據處理。

主站蜘蛛池模板: 久久久久国产精品嫩草影院| 欧美日韩午夜| 国产人妖视频一区在线观看| 午夜少妇精品视频小电影| 亚洲天堂久久| 国产日韩欧美黄色片免费观看| 欧美日韩91| 久草视频福利在线观看| 国产激情影院| 青青草原国产av福利网站| 国产欧美日韩va另类在线播放| 97av视频在线观看| 超清无码熟妇人妻AV在线绿巨人| 国产交换配偶在线视频| 在线视频亚洲色图| 免费在线看黄网址| 精品国产成人三级在线观看| 欧美三级自拍| 国产手机在线小视频免费观看| 啪啪永久免费av| 极品国产在线| 国产三级国产精品国产普男人| 亚洲精品爱草草视频在线| 激情六月丁香婷婷| 国产成人一区二区| 亚洲an第二区国产精品| 中文字幕乱码中文乱码51精品| 国产尤物在线播放| 91久久国产热精品免费| 中文字幕 欧美日韩| 色视频国产| 精品91在线| 人妖无码第一页| 无码有码中文字幕| 国产精品亚洲一区二区在线观看| 老司国产精品视频| 四虎影视永久在线精品| 毛片视频网| 精品国产免费观看| 亚洲日本中文综合在线| 国产在线精品美女观看| 亚洲中字无码AV电影在线观看| 色噜噜中文网| 丁香六月激情婷婷| 三上悠亚一区二区| 亚洲男人的天堂网| 亚洲福利一区二区三区| 国产精品9| 久久精品人妻中文系列| 国产成人艳妇AA视频在线| 成人国内精品久久久久影院| 无码人中文字幕| 国产精品久久久久久搜索| 亚洲无线国产观看| 98超碰在线观看| 亚洲午夜福利精品无码不卡| 91午夜福利在线观看精品| 国产在线观看成人91| 国产精品亚洲五月天高清| 国产性精品| 午夜毛片福利| 丁香五月亚洲综合在线| 国产成人啪视频一区二区三区| 色九九视频| 婷婷开心中文字幕| 欧美国产综合色视频| 国产自在自线午夜精品视频| 97国产在线播放| 国产真实自在自线免费精品| 国产毛片高清一级国语| 无码久看视频| 国产91视频观看| 播五月综合| 久久久久久尹人网香蕉| 久久亚洲天堂| 成人国产精品一级毛片天堂| 色综合天天视频在线观看| 欧美激情视频二区| 91午夜福利在线观看| 免费看美女毛片| 在线播放精品一区二区啪视频| 亚洲天堂成人|