




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
數據庫原理及應用(Access2021版)3.1Access概述3.2創建數據庫3.4表操作3.3創建數據表第3章
數據庫和表3.4.1調整表的外觀3.4.2數據的查找與替換3.4.3記錄排序3.4.4記錄篩選3.4.5數據表的更名、復制和刪除3.1.1Access的特點
3.1.2Access的啟動與退出
3.1.3Access數據庫的結構3.1.4Access設置3.1.5幫助系統3.2.1創建數據庫3.2.2數據庫的簡單操作3.3.1Access數據類型3.3.2創建表3.3.3設置字段屬性3.3.4修改表結構3.3.5輸入數據3.3.6創建索引與主鍵3.3.7建立表之間的關系
Access可以高效地完成各種類型中小型數據庫管理工作,它可以廣泛應用于財務、行政、金融、經濟、教育、統計和審計等眾多的管理領域,使用它可以大大提高數據處理的效率。3.1Access概述
3.1.1Access的特點
1.完備的數據庫窗口2.應用主題實現了專業設計3.更高的安全性4.強大的網絡功能5.新的數據類型和控件6.強化的智能特性7.更方便的宏設計8.
方便的用戶支持
3.1.2Access的啟動與退出
1.啟動Access
選擇“開始”菜單的“所有程序”→“MicrosoftOffice”→“MicrosoftAccess2010”命令啟動。
桌面快捷方式啟動。
雙擊已存在的Access數據庫文件啟動。2.關閉并退出Access單擊標題欄右側的“關閉”按鈕
,或選擇“文件”→“退出”命令,或按〈Alt+F4〉組合鍵,都可以退出Access系統。Access數據庫對象共有6類不同的子對象,它們分別是表、查詢、窗體、報表、宏和模塊。圖3-1為數據庫“設計”視圖窗口,其左側列出了Access數據庫的6類對象。
3.1.3Access數據庫的結構
3.1.3Access數據庫的結構
1.表對象表是數據庫中用來存儲數據的對象,是整個數據庫系統的基礎。Access允許一個數據庫包含多個表,通過在表之間建立“關系”,可以將不同表中的數據聯系起來,以供用戶使用。2.查詢對象通過查詢,可以按照一定的條件或準則從一個或多個表中篩選出需要的字段和記錄,并將它們集中起來,形成動態數據集。3.窗體對象窗體是用戶和數據庫聯系的一種界面,它是Access數據庫對象中最具靈活性的一個對象,其數據源可以是表或查詢。4.報表對象報表是用打印格式展示數據的一種有效方式。在Access中,如果要打印輸出數據或與數據相關的圖表,可以使用報表對象。5.宏對象宏是指一個或多個操作的集合,其中每個操作都可以實現特定的功能。使需要多個指令連續執行的任務能夠通過一條指令自動完成,這條指令就被稱為宏。6.模塊對象模塊是將VBA的聲明和過程作為一個單元進行保存的集合,即程序的集合。
3.1.3Access數據庫的結構
1.Access用戶界面
3.1.4Access設置
。
圖3-2Access工作窗口
3.1.4Access設置
2.選項設置
3.1.4Access設置
2.選項設置
3.1.5幫助系統
3.1.5幫助系統
Access是一個功能強大的關系數據庫管理系統,可以組織、存儲并管理大量各種類型的信息。數據庫管理系統的基礎是數據庫。
3.2創建數據庫1.創建空白數據庫
3.2.1創建數據庫打開Access,單擊選中“空白數據庫”選中數據庫文件要存放的位置,命名數據庫,單擊“創建”按鈕,即在指定位置創建數據庫2.使用模板創建數據庫
3.2.1創建數據庫選中數據庫模板選中數據庫存放位置,并為數據庫命名單擊“創建”按鈕,完成學生數據庫的創建1.打開數據庫
直接雙擊要打開的數據庫文件。
在Access環境中,單擊工具欄上的“打開”按鈕,或選擇“文件”→“打開”命令,在彈出的“打開”對話框中找到要打開的數據庫文件,單擊“打開”按鈕。
在“開始”菜單的“Access”級聯列表中有最近操作過的數據庫,單擊可打開。
3.2.2數據庫的簡單操作2.關閉數據庫數據庫使用完畢后需要關閉,可采用如下幾種操作方法。
單擊Access窗口的“關閉”按鈕
單擊“文件”菜單的“關閉數據庫”命令。
雙擊數據庫窗口的“控制”按鈕。
單擊“文件”菜單的“退出”命令。
按〈Alt+F4〉組合鍵。
數據表是Access數據庫的基礎,是存儲數據的地方,它在數據庫中占有重要的地位。在Access數據庫中,數據表包括兩個部分:表結構和表數據。在創建數據表時,需要先創建表結構,然后再輸入數據。表結構包括了數據表由哪些字段構成,這些字段的數據類型和格式是怎樣的等內容。
3.3創建數據庫1.文本文本數據類型所使用的對象是文本、數字和其他可顯示的符號及其組合。2.備忘錄備忘錄數據類型可以解決文本數據類型無法解決的問題,用于存儲長文本和數字的組合,或具有RTF格式的文本。例如注釋或說明等
3.3.1Access數據類型
數字類型值
范
圍小數位數字段長度字節0~255無1字節整型-32
768~32
767無2字節長整型-2147483648~2147483647無4字節單精度-3.4×1038~3.4×1038有效數值位為74字節雙精度-1.79734×10308~1.79734×10308有效數值位為158字節小數有效數值位為18位
12字節3.數字數字數據類型可以用來存儲需要進行算術運算的數據類型。4.日期/時間日期/時間數據類型是用于存儲日期、時間或日期時間組合。日期/時間字段的長度為8字節。5.貨幣貨幣數據類型是用于存儲貨幣值的。
3.3.1Access數據類型
6.自動編號自動編號數據類型是一個特殊的數據類型,用于在添加記錄時自動插入的唯一順序(每次遞增1)或隨機編號。7.是/否是/否數據類型是針對只包含兩種不同取值的字段而設置的。8.OLE對象OLE對象數據類型是指字段允許鏈接或嵌入其他應用程序所創建的文檔、圖片文件等。9.超鏈接超鏈接數據類型用于存放超級鏈接地址。超鏈接型字段包含作為超鏈接地址的文本或以文本形式存儲的字符與數字的組合。10.附件附件數據類型用于存放圖片、圖像、二進制文件、Office文件等。
3.3.1Access數據類型
11.計算計算數據類型用于顯示計算結果,計算時必須引用本表里的其他字段。12.查閱向導查閱向導數據類型用于為用戶提供一個字段內容列表,可以在組合框中選擇所列內容作為字段內容。
3.3.2創建表
1.表規范屬
性最
大
值屬
性最
大
值表名的字符個數64表中的索引個數32字段名的字符個數64索引中的字段個數10表中字段個數255有效性消息的字符個數255打開表的個數2048有效性規則的字符個數2048表的大小2GB減去系統對象需要的空間表或字段說明的字符個數255文本字段的字符個數255字段屬性設置的字符個數255
3.3.2創建表
2.字段命名規則1)由字母、漢字、數字、空格及其他非保留字符組成,不得以空格開頭。保留字符包括:圓點(.)、驚嘆號(!)、方括號([])、重音符號(`)和ASCII碼值在0~31的控制字符。2)字段名長度不得超過64個字符。3)同一個數據表的字段名稱不能相同。
3.3.2創建表
3.利用數據表視圖創建表①已創建的數據庫,在“創建”選項卡的“表格”組中單擊“表”按鈕②在數據庫對象窗格中生成一個新表③在表中單擊“ID”字段名,功能選項卡自動切換到“字段”選項卡,在“屬性”組中單擊“名稱和標題”按鈕④打開“輸入字段屬性”對話框,在“名稱”文本框中將“ID”更改為“課程編號”⑤在表視圖下單擊“單擊以添加”右側的下拉按鈕,打開字段類型列表,選中“短文本”⑥插入新字段,新字段名為選中狀態,輸入“課程名稱”
3.3.2創建表
3.利用數據表視圖創建表⑦在“屬性”組更改字段大小為20⑧按相同方式添加“課程性質”字段和“學分”字段,并將“學分”字段設置為“常規數字”⑨完成字段設置后,單擊快速訪問工具欄的“保存”按鈕,在彈出的“另存為”對話框中設置“表名稱”為“course”設置完成的course數據表
3.3.2創建表
4.利用設計視圖創建表
①在“創建”選項卡的“表格”組中單擊“表設計”按鈕,系統自動切換到“表的設計”選項卡,即可在設計視圖中創建數據表②在“字段名稱”列中輸入字段名,在下方的“字段屬性”中修改“字段大小”為9③系統默認的數據類型是“短文本”,如果要求的數據類型不一致,則需要單擊數據類型框右側的下拉按鈕,在列表中選擇相應的數據類型設計完成的表結構
3.3.2創建表
5.通過導入數據創建數據表
①
切換到“外部數據”選項卡,在“導入并鏈接”組中單擊“新數據源”-“從文件”-“Excel”命令②打開導入向導,通過“瀏覽”按鈕找到要導入的數據表所在的Excel文檔,其他采用默認設置③在顯示的工作表中選中要導入的工作表,查看下方的數據是否正確
3.3.2創建表
5.通過導入數據創建數據表
④單擊“下一步”按鈕,選中“第一行包含列標題”復選框⑤在此設置每一列字段的類型和索引方式以及是否導入等單擊“完成”按鈕完成導入
3.3.2創建表
6.查閱向導的使用
①在“數據類型”列表中選擇“查閱向導”②在打開的向導中選擇“自行鍵入所需的值”單選按鈕③在列表中輸入所有的值④指定標簽并設置值列表的使用范圍在表視圖下,輸入
數據時可通過列表選擇
3.3.2創建表
7.計算字段
①添加“應發工資”字段,設置數據類型為“計算”②彈出“表達式生成器”對話框,在對話框中輸入計算表達式③表達式設置完成后,單擊“確定”按鈕,生成計算字段的表達式
3.3.3設置字段屬性
1.字段大小
文本型字段:
數值型字段:
2.格式字段數據類型預定義格式說
明數字型常規數字貨幣歐元固定標準百分比科學記數按照用戶的輸入顯示。“小數位數”屬性無效顯示貨幣符號,使用分節符,“小數位數”屬性有效顯示歐元貨幣符號,“小數位數”屬性有效顯示數值不使用分節符,“小數位數”屬性有效顯示數值使用分節符,“小數位數”屬性有效數值使用百分數顯示,“小數位數”屬性有效數值用科學計數法顯示,“小數位數”屬性有效貨幣型常規數字
貨幣歐元固定標準百分比科學記數按用戶輸入顯示,如小數位數超過4位,只保留4位,第5位四舍五入,“小數位數”屬性無效顯示貨幣符號,使用分節符,“小數位數”屬性有效顯示歐元貨幣符號,“小數位數”屬性有效不顯示貨幣符號,顯示數值不使用分節符,“小數位數”屬性有效不顯示貨幣符號,顯示數值使用分節符,“小數位數”屬性有效不顯示貨幣符號,數值使用百分數顯示,“小數位數”屬性有效不顯示貨幣符號,用科學計數法顯示,“小數位數”屬性有效日期/時間型常規日期長日期中日期短日期長時間中時間短時間顯示:2018/9/1216:02:20(顯示日期、時間)顯示:2018年9月12日(顯示日期)顯示:18-09-12(顯示日期)顯示:2018-9-12(顯示日期)顯示:16:02:20(顯示時間,24小時制,顯示秒)顯示:4:02下午(顯示時間,12小時制,不顯示秒)顯示:16:02(顯示時間,24小時制,不顯示秒)是/否型是/否真/假開/關“是”表示真值,顯示“Yes”;“否”表示假值,顯示“No”“真”表示真值,顯示“True”;“假”表示假值,顯示“False”“開”表示真值,顯示“On”;“關”表示假值,顯示“Off
”
3.3.3設置字段屬性
2.格式①新建一個是/否型字段②在數據表視圖,顯示為復選框,選中狀態即為真③在設計視圖下,切換到“字段屬性”的“查閱”選項卡,在“顯示控件”列表中選擇“組合框”④切換到數據視圖,顯示格式變成Yes⑤將“格式”設置為“真/假”⑥切換到數據視圖,顯示格式變成Yes
3.3.3設置字段屬性
3.字段標題標題是字段的顯示名稱,在數據表視圖中,它是字段列標題處顯示的內容,在窗體、報表中,是字段標簽顯示的內容。
4.輸入掩碼掩碼字符功能說明0必須輸入一個數字(0~9)9可以輸入一個數字(0~9)#可輸入0~9的數字、空格、加號、減號。如果跳過,會輸入一個空格L必須輸入一個字母?可以輸入一個字母A必須輸入一個字母或數字a可以輸入一個字母或數字&必須輸入一個字符或空格C可以輸入字符或空格<
將“<”符號右側的所有字母轉換為小寫字母顯示并保存>
將“>”符號右側的所有字母轉換為大寫字母顯示并保存密碼(PASSWORD)輸入字符時不顯示輸入的字符,顯示“*”,但輸入的字符會保存在表中\逐字顯示緊隨其后的字符""逐字顯示括在雙引號中的字符.,:-小數分隔符、千位分隔符、日期分隔符和時間分隔符。這些符號原樣顯示
3.3.3設置字段屬性
4.輸入掩碼①創建一個數據表②添加“密碼”字段,將插入光標置于“輸入掩碼”文本框中,單擊右側的“生成器”按鈕,彈出提示對話框③單擊“是”按鈕,保存數據表,彈出“輸入掩碼向導”對話框,選中類型為“密碼”④單擊“完成”按鈕,為字段設置密碼掩碼
3.3.3設置字段屬性
5.小數位數只有數字型、貨幣型字段有“小數位數”。若“小數位數”屬性設置為“自動”,默認保留兩位小數。6.默認值字段的默認值即為在新增記錄時尚未輸入數據,就會出現在字段中的值。7.輸入法模式輸入法模式可以設置為隨意、開啟、關閉和其他特殊的輸入法狀態。8.有效性規則和有效性文本在輸入數據時,為了防止輸入錯誤,可進行“字段有效性規則”屬性的設置。①在“性別”字段的字段屬性中分別設置“有效性規則”和“有效性文本”②在輸入數據時,如果數據符合規則,正常輸入,如果輸入的數據不符合規則,則彈出有效性提示
3.3.3設置字段屬性
9.必填字段在數據表中,對于所設置的字段,如果要求某些字段的信息是必須要獲取的,則可將該字段的“是否必填字段”屬性設置10.索引創建索引,可以提高記錄的查找和排序的速度。11.Unicode壓縮當“Unicode壓縮”屬性值為“是”時,表示字段中數據可以存儲和顯示多種語言的文本。
3.3.4修改表結構
1.更改字段名(1)數據表視圖(2)表設計視圖2.增加或刪除字段(1)在設計視圖狀態(2)在數據表視圖狀態3.修改字段類型字段類型的修改必須在表設計視圖下實現。
3.3.5輸入數據
1.在“數據表視圖”下輸入數據④單擊“確定”按鈕,回到插入對象的對話框,再擊“確定”按鈕,即將該圖片插入到當前記錄中①在OLE對象字段上右擊,在彈出的快捷菜單中選擇“插入對象”命令②打開對話框,選擇“由文件創建”單選按鈕③單擊“瀏覽”按鈕,打開“瀏覽”對話框,選中要插入的圖片
3.3.5輸入數據
2.修改數據(1)增加記錄(2)刪除記錄(3)修改單元格中的數據3.獲取外部數據Access在輸入數據時,可以從其他已存在的數據文件中獲取數據,操作方式與利用外部數據創建表的方式是相同的,只是在“選擇數據源和目標”時,選擇“向表中追加一份記錄的副本”選項,并選中目標表,即可完成數據的導入操作。
3.3.6創建索引與主鍵
1.索引(1)單字段索引字段屬性列表中有一個“索引”屬性,設置為“有(有重復)”和“有(無重復)”,則該字段就設置了索引。(2)多字段索引如果經常需要同時搜索或排序兩個或更多個字段,可以為該字段組合創建索引。2.主鍵(1)“自動編號”主鍵每當向表中添加一條記錄時,可將“自動編號”字段設置為自動輸入連續數字的編號。(2)“單字段”主鍵如果字段中包含的都是唯一的值,例如學號或部件號碼,則可以將該字段指定為主鍵。只要某字段包含數據,且不包含重復值或Null值,就可以將該字段指定為主鍵。(3)“多字段”主鍵在多字段主鍵中,字段的順序非常重要。多字段主鍵中字段的次序按照它們在表“設計”視圖中的順序排列。如果需要改變順序,可以在“索引”窗口中更改主鍵字段的順序。
3.3.7建立表之間的關系
1.數據表間關系在Access中創建的數據表是相互獨立的,每一個表都有一個主題,是針對對象的不同特點和主題而設計的,同時它們又存在一定的關系。2.建立表之間的關系關系是參照兩個表之間的公共字段建立起來的。①單擊“關系”組的“關系”按鈕③將鼠標指針指向“student”的“學號”字段,按住鼠標左鍵并拖向“grade”的“學號”字段,松開鼠標左鍵④將需要建立聯系的表添加到“關系”窗口中②打開“顯示表”對話框單擊“創建”按鈕,建立兩表之間的關系
3.3.7建立表之間的關系
3.修改或刪除關系(1)修改關系關系創建完畢后,如果發現關系設定錯誤或未實施參照完整性,則需要對已經設定好的關系進行修改。(2)刪除關系當關系建立好以后發現錯誤時,可單擊連線,當連線變粗時表示選中,按〈Del〉鍵即可刪除關系。4.參照完整性與相關規則(1)建立關系后未實施參照完整性在主表中增加、刪除、修改關聯字段的值時不受限制;同樣,相關表中進行相同的操作時也不受影響。(2)建立參照完整性但未實施級聯更新和級聯刪除規則在主表中增加記錄不受限制;修改記錄時,若該記錄在表中有匹配記錄,則不允許修改;刪除記錄時,若該記錄在表中有匹配記錄,則不允許刪除。(3)建立參照完整性并實施了級聯更新和級聯刪除規則。3.4表操作
數據表建立后,可以根據需要對數據表進行外觀調整,并對數據表中的數據進行排序、篩選等。1.改變字段次序在默認情況下,數據表視圖中字段的顯示順序與表結構的順序相同,如果需要,可以將數據表視圖的字段顯示順序進行調整。
3.4.1調整表的外觀
2.調整字段顯示寬度和高度在數據表視圖下,有時會因為字段的數據過長而被切斷,不能在單元格中完全顯示,有時因為字體過大而不能在一行中顯示完全,此時,均可以通過調整列寬和行高來使數據正常顯示。(1)調整字段行高(2)調整字段列寬3.隱藏字段和顯示字段在數據表視圖下,可以根據需要將部分字段的數據暫時隱藏起來,在需要的時候再進行顯示。操作方法是:選定要隱藏的數據列,在選中區域右擊,在彈出的快捷菜單中選擇“隱藏字段”命令,選中的字段列將被隱藏起來。4.凍結列在使用較大的數據表時,有時整個數據表不能完全在屏幕上顯示出來,需要拖動滾動條將未顯示的數據顯示出來,在拖動滾動條時,一些關鍵字段的值也無法顯示,影響了數據的查看。
3.4.1調整表的外觀
5.設置數據表外觀在“數據表視圖”中,一般在水平和垂直方向顯示網格線。網格線、背景色和替換背景色均采用系統默認的顏色。如果需要,可以改變單元格的顯示效果,也可以選擇網格線的顯示方式和顏色,還可改變表格的背景顏色。6.數據表默認外觀設置
在“數據表”視圖下,數據表的單元格均是以網格的方式進行表示的,表格的顯示方式、色彩和字體等,均可以進行更改。操作方式是:選擇“文件”→“選項”命令,在打開的“Access選項”窗口的“數據表”選項卡下可以進行修改,如圖3-24所示。在對話框中可以對表格網格線顯示方式、單元格效果、列寬和字體等進行設置。Access可以幫助用戶在整個數據表中或某個字段中查找數據,并可將找到的數據替換為指定的內容或數據,也可將找到的數據刪除。數據的查找與替換操作是在數據表視圖下進行的。
3.4.2數據的查找與替換
1)“查找”選項卡在“查找”選項卡中,在“查找內容”文本框中輸入要查找的值。在“查找內容”文本框中輸入的數據,可以使用通配符。通配符使用如表3-5所示。
3.4.2數據的查找與替換
通
配
符功
能示
例*匹配任意字符串,可以是0個或任意多個字符hi*,可以找到hit、hi和hill#匹配一個數字符號20#8,可以找到2008、2018,找不到20A8?匹配任何一個字符w?ll,可以找到wall、well,找不到weell、wll[]匹配括號內任何一個字符t[ae]ll,可以找到tell和tall,找不到tbll!匹配任何不在括號內的字符f[!bc]ll,可以找到fall和fell,找不到fbll和fcll-匹配指定范圍內的任何一個字符,必須以遞增排序來指定區域(A-Z)b[a-c]d,可以找到bad和bed,找不到bud數據表使用時,可能希望表中的記錄按照一個字段、多個字段或表達式的值進行排序。排序可以按升序或降序排列。排序的規則如下。1)西文字符按ASCII碼值順序排序,英文字符不區分大小寫。2)中文按拼音字母的順序排序。3)數值按數字的大小排序。4)日期和時間字段按日期的先后順序排序,日期在前的小,日期在后的大。
3.4.3記錄排序
1.單字段排序按單字段排序時,可將插入光標置于要排序的字段,單擊“開始”選項卡→“排序和篩選”組→“升序排序”按鈕
,或“降序排序”按鈕
,或右擊,在彈出的快捷菜單中選擇“升序排序”或“降序排序”命令,則數據表就會按照相應的方式進行排序。
3.4.3記錄排序
3.4.3記錄排序
(2)“高級篩選/排序”窗口①在“排序和篩選”組中,選擇“高級”下拉列表中的“高級篩選/排序”命令②設置字段,“性別”為降序,“month(出生日期)”為升序切換回student,顯示
排序后的效果1.按選定內容篩選在數據表中,如果需要篩選出某特定條件的記錄,可按選定的內容進行篩選。
3.4.4記錄篩選
2.使用篩選器篩選Access的篩選器提供了一種較靈活的數據篩選的方法。①將“出生日期”作為當前字段,單擊“排序和篩選”組的“篩選器”按鈕,打開“篩選”面板②在級聯菜單中選擇“介于”命令,打開“始日期范圍”對話框③輸入起止日期,開始于1995年10月1日,截止日期為1996年4月30日④單擊“確定”按鈕,完成篩選3.按窗體篩選按窗體篩選時,系統會先將數據表變成一條記錄,且每個字段都是一個下拉列表,用戶可以在下拉列表中選取一個值作為篩選內容。如果當某個字段選取的值是兩個以上時,還可以通過窗體底部的“或”來實現;在同一個表單下不同字段的條件值的關系是“與”的關系。
3.4.4記錄篩選
4.高級篩選在前面的篩選方法中,實現的篩選條件相對都比較單一,如果要進行復雜條件的記錄篩選,則需要通過高級篩選來實現。①打開“高級篩選/排序”窗口,在“條件”行中設置相應的篩選條件②單擊“切換篩選”按鈕,顯示篩選結果1.數據表的更名在數據庫窗口導航窗格的表對象列表中,選中要更名的數據表,右擊表名處,從彈出的快捷菜單中選擇“重命名”命令,即可進行表名的更改。
3.4.5數據表的更名、復制和刪除
2.數據表的復制在表對象列表中選中要復制的表,將鼠標指針指向該表,同時按住〈Ctrl〉鍵,拖動到對象卡上的空白位置,松開鼠標,則產生一個表的副本,此方式即可為數據表復制一個副本。3.數據表的刪除如果數據庫的數據表不再需要,可單擊選中后按〈Del〉鍵刪除。在執行刪除操作時,系統會提示對刪除操作進行確認,單擊“是”按鈕則刪除,單擊“否”按鈕則放棄刪除操作。3.6習題1.選擇題1)表的組成部分包括(
)。A.字段和記錄 B.查詢和字段C.記錄和窗體 D.報表和字段2)Access數據庫中,為了保持表之間的關系,要求在子表(從表)中添加記錄時,如果主表中沒有與之相關的記錄,則不能在子表(從表)中添加該記錄。為此需要定義的關系是(
)。A.輸入掩碼 B.有效性規則C.默認值D.參照完整性3)可用來存儲圖片的字段類型是(
)。A.OLE B.備注C.超鏈接 D.查閱向導4)以下字符串符合Access字段命名規則的是(
)。A.!address! B.%address%C.[address] D.'address'5)在某表中,“姓名”字段的字段大小為10,在此列輸入數據時,最多可輸入的漢字數和英文字符數分別是(
)。A.55 B.510C.1010 D.10202.填空題1)若要查找某表中“姓氏”字段所有包含“sh”字符串的姓,則應在“查找內容”文本框中輸入
。2)在Access中的數據表視圖方式下,使用
菜單中的命令可以對數據表中的列重新命名。3)能夠唯一標識表中每一條記錄的字段稱為
。4)必須輸入0~9的符號的輸入掩碼是
。5)Access數據庫中,表與表之間的關系分為
、
和
。3.6習題數據庫原理及應用(Access2021版)4.3.1創建表
4.3.2刪除表
4.3.3修改表4.1數據查詢語言4.4習題4.2數據操縱語言4.3數據定義語言4.1.1簡單查詢
4.1.2多表查詢
4.1.3排序
4.1.4子查詢
4.1.5分組查詢
4.1.6連接查詢
4.1.7聯合查詢4.2.1追加
4.2.2更新
4.2.3刪除
第4章
結構化查詢語言SQL第4章
SQL(StructuredQueryLanguage)是DBMS提供的對數據庫進行操作的語言,稱為結構化查詢語言。SQL已經成為關系數據庫語言的國際標準。1986年美國國家標準協會(ANSI)公布了第一個SQL標準SQL-86,將SQL解釋為StructuredQueryLanguage。國際標準化組織通過了SQL并于1989年公布了經過增補的SQL-89,1992年公布了SQL-92,即SQL2。SQL支持數據操作,用于描述數據的動態特性。SQL包括4個主要功能:數據定義語言(DataDefinitionLanguage)、數據查詢語言(DataQueryLanguage)、數據操縱語言(DataManipulationLanguage)、數據控制語言(DataControlLanguage)。本章所用數據庫為學生管理數據庫,如下圖所示。
圖
學生管理數據庫第4章
SQL的核心是從一個或多個表中返回指定記錄集合的SELECT語句。SELECT命令的基本形式為:SELECT…FROM…WHERE。【命令格式】SELECT[predicate]{*|table.*|[table.]field1[ASalias1][,[table.]field2[ASalias2][,...]]}FROMtable_names[WHEREsearch_criteria][GROUPBYgroupfieldlist [HAVINGaggregate_criteria]][ORDERBYcolumn_criteria[ASC|DESC]]
4.1數據查詢語言第4章
值得強調的是,上述命令結構中包含了SQL子句,每一個子句執行一個SQL語句的功能,有些子句在SELECT語句中是必須出現的,如表4-1所示。SQL子句執行的操作是否必需SELECT列出查詢的字段是FROM列出包含查詢字段或查詢條件字段的表是WHERE指出查詢條件否ORDERBY對結果排序,指出排序的依據否GROUPBY在包含聚合函數的SQL語句中,列出未在SELECT子句中匯總的字段僅在存在這類字段時才是必需的HAVING在包含聚合函數的SQL語句中,指定應用于在SELECT語句中匯總的字段的條件否表4-1SQL命令子句第4章
4.1.1簡單查詢
1.選擇字段使用SELECT命令,可以選擇表中的部分字段,建立一個新表。相當于關系運算中的投影運算。SELECT語句的最短的語法是:SELECTfieldsFROMtable。第4章【例4-1】
查詢學生姓名、性別和所屬院系。SELECT姓名,性別,所屬院系FROMstudent;【例4-2】
查詢student中所有字段和記錄。SELECT*FROMstudent;
【例4-3】
查詢已經選課的學生的學號。SELECTDISTINCT學號FROMgrade;
4.1.1簡單查詢
第4章【例4-4】
查詢學生的姓名和年齡。SELECT姓名,year(now())-year(出生日期)AS年齡FROMstudent;【例4-5】
所有課程的學分數增加50%,重新計算各門課程的學分數并列出清單。SELECT課程名稱,INT(學分*(1+0.5))AS新學分FROMcourse;【例4-6】
查詢學生的姓名,所屬院系,出生日期和性別。SELECT姓名,所屬院系,出生日期,性別FROMstudent;
4.1.1簡單查詢
2.選擇記錄在SELECT命令中設定查詢條件,查找滿足條件的記錄,這就是關系運行中的選擇運算。SELECT命令中用于完成選擇記錄(查詢條件)的命令子句是:[WHEREsearch_criteria]第4章【例4-7】
查詢會計學院學生的學號、姓名和所屬院系屬性。SELECT學號,姓名,所屬院系FROMstudentWHERE所屬院系="會計學院";【例4-8】
查詢學分少于3(不含3學分)的課程名稱、課程性質和學分。SELECT課程名稱,課程性質,學分FROMcourseWHERE學分<3;【例4-9】
查詢會計學院的非黨員學生。SELECT學號,姓名,所屬院系,政治面貌FROMstudentWHERE所屬院系="會計學院"and政治面貌<>"黨員";
4.1.1簡單查詢
第4章【例4-10】
查詢成績在60分以下(不包括60分)、90分以上(含90分)學生的學號和成績。SELECT學號,成績FROMgradeWHERE成績<60or成績>=90;【例4-11】
查詢教師中所有黨員記錄。SELECT*FROMteacherWHERE是否黨員=true;【例4-12】
查詢所有信息學院和會計學院的學生信息。SELECT*FROMstudentWHERE所屬院系IN('信息學院','會計學院');【例4-12】
查詢所有信息學院和會計學院的學生信息。SELECT*FROMstudentWHERE所屬院系IN('信息學院','會計學院');【例4-13】
查詢所有選修了課程,但沒有參加考試(成績為“空”)的學生學號。SELECT學號FROMgradeWHERE成績ISNULL;4.1.2多表查詢【例
4-14】
查詢會計學院學生選修的課程及成績,要求查詢結果中含學號、姓名、課程名稱和成績。SELECTstudent.學號,姓名,課程名稱,成績FROMstudent,grade,course,scheduleWHEREstudent.學號=grade.學號ANDgrade.課程ID=schedule.課程IDANDcourse.課程編號=schedule.課程編號AND所屬院系='會計學院'AND成績ISNOTNULL;第4章關系不是孤立的,所以表也不是孤立的,表之間是有聯系的。多表查詢是指SELECT命令的查詢內容或查詢條件同時涉及數據庫中相關的多個表。第4章4.1.2多表查詢【例4-15】
查詢有不及格成績的學生的學號和姓名。SELECTDISTINCTstudent.學號,姓名FROMstudent,gradeWHEREstudent.學號=grade.學號
AND成績<60AND成績ISNOTNULL;注意:DISTINCT在這條命令中所起到的作用【例4-16】
查詢所有選修了的課程,但沒有參加考試的學生的所屬院系、姓名、課程名稱和成績。SELECT所屬院系,姓名,課程名稱,成績
FROMstudent,course,grade,schedule
WHEREstudent.學號=grade.學號
ANDgrade.課程ID=schedule.課程ID
ANDschedule.課程編號=course.課程編號
AND成績ISNULL;第4章4.1.2多表查詢【例4-17】
查詢成績在60分以上(含60分)、90分以下(含90分)學生的學號、姓名、課程名稱和成績。SELECTstudent.學號,姓名,課程名稱,成績FROMstudent,course,grade,scheduleWHEREstudent.學號=grade.學號ANDgrade.課程ID=schedule.課程IDANDschedule.課程編號=course.課程編號AND成績BETWEEN60AND90;【例4-18】
查詢經濟學院開設的學分為2~4(含2和4)的所有課程的課程名稱、學分和所屬院系。SELECTDISTINCT課程名稱,學分,所屬院系FROMteacher,course,scheduleWHEREteacher.教師編號=schedule.教師編號ANDschedule.課程編號=course.課程編號AND所屬院系="經濟學院"AND學分BETWEEN2AND4;第4章4.1.2多表查詢【例4-19】查詢課程名中最后兩個字是“管理”的課程信息。SELECT*FROMcourseWHERE課程名稱LIKE'*管理';意
義樣
例返回True返回False字符范圍LIKE[a-z]F,p,j2,&范圍之外LIKE[!a-z]9,&,%b,a非數字LIKE[!0-9]A,a,&,~0,1,9組合字LIKEa[!b-m]#An9,az0,a99abc,aj0第4章4.1.2多表查詢【例4-21】
查詢成績在60分以下(不含60)、90分以上(不含90分)學生的學號和成績。SELECT學號,成績FROMgradeWHERE成績NOTBETWEEN60AND90;可以用SELECT…INTO語句將查詢結果保存到一個新的表中,語句格式如下:SELECTfield1[,field2[,
…]]INTOnewtable
FROMsource_table;【例4-20】
查詢課程名稱中含有“理”字的所有課程信息。SELECT*FROMcourseWHERE課程名稱LIKE'*理*';如果對上述例子中所有邏輯表達式進行非運算,就可以獲得否定(不是、不等于、不包含)的查詢結果。
4.1.3排序
第4章【例4-22】
查詢所有會計學院學生的信息,查詢結果按學號排序。SELECT*FROMstudentWHERE所屬院系='會計學院'ORDERBY學號;SELECT命令中用于對查詢結果排序的命令子句為:[ORDERBY<fieldname1>[ASC|DESC][,<fieldname2>[ASC|DESC]...]]【例4-23】
查詢所有學生的信息,查詢結果按所屬院系排序,同一院系按性別降序排序。SELECT*FROMstudentORDERBY所屬院系,性別DESC;比較下面的命令:SELECT*FROMstudentORDERBY7,3DESC;第4章
4.1.3排序
【例4-24】
查詢學生所屬院系、學號、姓名、課程名稱和成績等信息,且按所屬院系升序排序,同一院系按學號升序排序,同一學生按課程名稱升序排序,相同課程名稱按成績降序排列結果。SELECT所屬院系,student.學號,姓名,課程名稱,成績FROMstudent,course,grade,scheduleWHEREstudent.學號=grade.學號ANDgrade.課程ID=schedule.課程IDANDschedule.課程編號=course.課程編號AND成績ISNOTNULLORDERBY所屬院系,student.學號,課程名稱,成績DESC;第4章
4.1.3排序
【例4-26】
查詢成績從高到低排序后,前20%學生的課程和成績信息。SELECTTOP20PERCENT*FROMgrade,schedule,courseWHEREgrade.課程ID=schedule.課程IDANDschedule.課程編號=course.課程編號ANDNOT(ISNULL(成績))ORDERBY成績DESC;【例4-25】
查詢成績最低的3名學生的課程和成績信息。SELECTTOP3student.學號,姓名,課程名稱,成績FROMstudent,course,grade,scheduleWHEREstudent.學號=grade.學號ANDgrade.課程ID=schedule.課程IDANDschedule.課程編號=course.課程編號ANDNOT(ISNULL(成績))ORDERBY成績;4.1.4子查詢
第4章【命令格式】comparison[ANY|ALL|SOME](sqlstatement)expression[NOT]IN(sqlstatement)【命令說明】1)comparison:一個表達式及一個比較運算符,將表達式與子查詢的結果進行比較。2)expression:用以搜尋子查詢結果集的表達式。3)sqlstatement:SELECT語句,遵從與其他SELECT語句相同的格式及規則。它必須放在括號之中。
在SQL查詢語言中,一個SELECT…FROM…WHERE語句稱為一個查詢塊,把一個查詢塊嵌套在另一個查詢塊的WHERE子句或HAVING子句的條件中的查詢,就構成子查詢。
子查詢的一般求解方法是由里向外處理,即每一個子查詢在上一級查詢處理之前求解,子查詢的結果用于建立其父查詢的查詢條件。外層查詢依賴于內層查詢的結果,內層查詢與外層查詢無關。通常的情況,當查詢的結果出自一個表,條件涉及多個表時,使用子查詢。第4章4.1.4子查詢
【例4-29】
查詢有不及格成績的學生信息。SELECT*FROMstudentWHERE學號IN (SELECT學號FROMgradeWHERE成績<60);【例4-28】
查詢沒有選修課程的學生,查詢結果中包含學號、姓名和所屬院系。結果按學號降序排列。SELECT學號,姓名,所屬院系FROMstudentWHERE學號NOTIN(SELECT學號FROMgrade)ORDERBY學號DESC;【例4-27】
查詢所有學生選修的課程,查詢結果包含課程名稱和學分。SELECT課程名稱,學分FROMcourseWHERE課程編號IN(SELECT課程編號FROMschedule,gradeWHEREschedule.課程ID=grade.課程ID);第4章4.1.4子查詢
【例4-33】
查詢選修了“西方經濟學”課程的學生信息。SELECT*FROMstudentWHERE學號IN(SELECT學號FROMgrade,schedule,courseWHEREgrade.課程ID=schedule.課程IDANDschedule.課程編號=course.課程編號AND課程名稱='西方經濟學')【例4-32】
查詢所有選修課程的成績都及格了的學生信息。SELECT*FROMstudentWHERE學號NOTIN(SELECT學號FROMgradeWHERE成績<60)AND學號IN(SELECT學號FROMgrade)【例4-31】
查詢與“楊楊”同年出生的學生信息。SELECT*FROMstudentWHEREYEAR(出生日期)=
(SELECTYEAR(出生日期)FROMstudentWHERE姓名='楊楊');【例4-30】
查詢與“楊楊”在同一個院系的學生信息。
SELEOCT*FROMstudentWHERE所屬院系= (SELECT所屬院系FROMstudentWHERE姓名='楊楊');4.1.5分組查詢
第4章利用SELECT命令還可以進行分組查詢,分組查詢是一種分類統計。【命令格式】SELECT[ALL|DISTINCT|DISTINCTROW] Aggregate_function(field_name)ASalias_name [,select_list] FROMtable_names [WHEREsearch_criteria] GROUPBYgroupfieldlist [HAVINGaggregate_criteria] [ORDERBYcolumn_criteria[ASC|DESC]]第4章4.1.5分組查詢
【例4-34】
查詢各門課程的平均分。SELECT課程名稱,AVG(成績)AS平均分
FROMgrade,schedule,course
WHEREgrade.課程ID=schedule.課程ID
ANDschedule.課程編號=course.課程編號
AND成績ISNOTNULL
GROUPBY課程名稱;【例4-33】
查詢選修了“西方經濟學”課程的學生信息。SELECT*FROMstudentWHERE學號IN(SELECT學號FROMgrade,schedule,courseWHEREgrade.課程ID=schedule.課程IDANDschedule.課程編號=course.課程編號AND課程名稱='西方經濟學')第4章4.1.5分組查詢
【例4-37】
查詢“西方經濟學”課程成績高于該門課程平均成績的學生信息。SELECTstudent.*
FROMstudent,grade,schedule,course
WHEREstudent.學號=grade.學號
ANDgrade.課程ID=schedule.課程ID
ANDschedule.課程編號=course.課程編號
AND課程名稱='西方經濟學'AND成績
>=(SELECTAVG(成績)AS平均分
FROMgrade,schedule,course
WHEREgrade.課程ID=schedule.課程ID
ANDschedule.課程編號=course.課程編號
AND課程名稱='西方經濟學');【例4-36】
查詢至少有兩門不及格課程的學生信息。SELECT*FROMstudentWHERE學號IN(SELECT學號FROMgradeWHERE成績<60GROUPBY學號HAVINGCOUNT(*)>=2);【例4-35】
查詢選修“西方經濟學”課程的學生人數。SELECT課程名稱,COUNT(*)AS選修人數
FROMgrade,schedule,course
WHEREgrade.課程ID=schedule.課程ID
ANDschedule.課程編號=course.課程編號
AND課程名稱='西方經濟學'
GROUPBY課程名稱;第4章
4.1.6連接查詢
【命令格式】SELECT[predicate]select_listFROMtable1{INNER|LEFT|RIGHT}JOINtable2ONjoin_criteria[WHEREsearch_criteria] [ORDERBYcolumn_criteria[ASC|DESC]]注意:在這個命令子句中,所要連接的表和其連接類型是由FROM給出的,連接的條件是由ON給出的,ON條件指出當兩個表在公共字段上的值相匹配時,進行連接。第4章
4.1.6連接查詢
【例4-39】
完成student表和grade表的普通連接。SELECT*FROMteacherINNERJOINsalaryONteacher.教師編號=salary.教師編號;【例4-38】
完成student表和grade表的普通連接。SELECT*FROMstudentINNERJOINgradeONstudent.學號=grade.學號;1.普通連接命令選項INNERJOIN為普通連接,也稱為內部連接。普通連接的結果是只有滿足連接條件的記錄才會出現在查詢結果中。第4章
4.1.6連接查詢
【例4-40】
完成student表和grade表的左連接。結果包括所有的學生記錄(student表中全部記錄),也包括沒有選擇課程的學生信息。SELECT*FROMstudentLEFTJOINgradeONstudent.學號=grade.學號;2.左連接左連接的查詢結果是返回第一個表全部記錄和第二個表中滿足連接條件的記錄。第一個表中所有沒在第二個表中找到相應連接記錄的記錄,其對應第二個表的字段值為NULL。第4章
4.1.6連接查詢
【例4-42】
完成grade表和course表的右連接。結果中包括了所有的課程(course中的全部記錄),也包括沒有學生選擇的課程。SELECT*FROMgradeRIGHTJOINcourseONcourse.課程編號=grade.課程編號;【例4-41】
完成student表和grade表的右連接。SELECT*FROMstudentRIGHTJOINgradeONstudent.學號=grade.學號;比較上述3種連接的結果。3.右連接右連接的查詢結果是返回第二個表全部記錄和第一個表中滿足連接條件的記錄。同樣,第二個表不滿足連接條件的記錄,其對應第一個表的字段值為NULL。第4章
4.1.7聯合查詢
【例4-43】
查詢學生和教師中的女性記錄。SELECT姓名,性別,出生日期FROMstudentWHERE性別="女"UNIONSELECT姓名,性別,出生日期FROMteacherWHERE性別="女";【命令格式】SELECTselect_statementUNIONSELECTselect_statement[UNIONSELECTselect_statement[UNION……]聯合查詢的要求:聯合查詢中合并的選擇查詢必須具有相同的輸出字段數、采用相同的順序并包含相同或兼容的數據類型。在運行聯合查詢時,來自每組相應字段中的數據將合并到一個輸出字段中,這樣查詢輸出所包含的字段數將與每個Select語句相同。4.2數據操縱語言第4章數據操作語言(DML)命令實現的功能包括追加、更新和刪除。第4章
4.2.1追加
追加就是添加一個或多個記錄至一個表。1.多重記錄追加查詢【命令格式】INSERTINTOtarget[(field1[,field2[,...]])]
SELECTfield1[,field2[,...]]
FROMtableexpression2.單一記錄追加查詢【命令格式】INSERTINTOtarget[(field1[,field2[,...]])]
VALUES(value1[,value2[,...]])【例4-44】
插入一條完整的記錄。INSERTINTOstudentVALUES('053500001','齊心','女',#1988-01-01#,"漢族",'團員',"信息學院","電商05-1","北京市","排球","");
4.2.2更新
第4章更新命令改變指定表中滿足條件記錄的字段值。【命令格式】UPDATEtable_name SETcolumn_name=value[,column_name=value[,…]] WHEREupdatecriteria【例4-45】
對崗位津貼低于800元的教師,在其原有崗位津貼的基礎上增加20%,重新計算崗位津貼(此例在操作之前,先將salary表復制為salary1表)。UPDATEsalary1SET崗位津貼=崗位津貼*(1+0.2)WHERE崗位津貼<=800;
4.2.3刪除
第4章刪除命令刪除指定表中滿足條件的記錄。【命令格式】 DELETEFROMtable_name [WHEREdelete_criteria]【例4-46】
刪除salary1表(見【例4-45】)中教師編號首位是“0”的記錄。DELETEFROMsalary1WHERE教師編號LIKE"0*";4.3數據定義語言第4章通過在SQL視圖中編寫數據定義語言可以創建和修改表、限制、索引和關系。本節介紹數據定義語言,以及如何使用這類語言創建表、限制、索引及關系。第4章【例4-48】
用CREATE命令建立mytable2表,其中ID字段為自動編號主鍵。CREATETABLEmytable2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024廣告設計師社會趨勢解析試題及答案
- 《為校園綠化植物制作課件介紹》
- 《細胞信號轉導課件:細胞因子受體家族的作用與調控》
- 抓牢紡織工程師考試的知識結構試題及答案
- 助理廣告師考試復習方法總結試題及答案
- 助理廣告師考試的學習過程與反饋機制的有效結合試題及答案
- 豐富知識面2024國際商業美術設計師考試試題及答案
- 助理廣告師考試如何運用數據分析廣告表現試題及答案
- 土壤肥料面試題及答案
- 中醫證考試試題及答案
- GB/T 20647.9-2006社區服務指南第9部分:物業服務
- 海洋油氣開發生產簡介課件
- 重慶十八梯介紹(改)課件
- 一級病原微生物實驗室危害評估報告
- 茶葉加工機械與設備(全套524張課件)
- 設備機房出入登記表
- 起重吊裝作業審批表
- 最新三角形的特性優質課教學設計公開課教案
- X射線衍射學:第九章 點陣常數的精確測定
- 招商工作策略與路徑pptPPT通用課件
- 宮腔鏡的儀器及噐械(課堂PPT)
評論
0/150
提交評論