![《MySQL數(shù)據(jù)庫應用與管理(第3版)》 課件全套 魯大林 第1-12章 MySQL概述 - MySQL事務_第1頁](http://file4.renrendoc.com/view5/M00/2B/0B/wKhkGGZENfKAAXFHAACq9TELFMw631.jpg)
![《MySQL數(shù)據(jù)庫應用與管理(第3版)》 課件全套 魯大林 第1-12章 MySQL概述 - MySQL事務_第2頁](http://file4.renrendoc.com/view5/M00/2B/0B/wKhkGGZENfKAAXFHAACq9TELFMw6312.jpg)
![《MySQL數(shù)據(jù)庫應用與管理(第3版)》 課件全套 魯大林 第1-12章 MySQL概述 - MySQL事務_第3頁](http://file4.renrendoc.com/view5/M00/2B/0B/wKhkGGZENfKAAXFHAACq9TELFMw6313.jpg)
![《MySQL數(shù)據(jù)庫應用與管理(第3版)》 課件全套 魯大林 第1-12章 MySQL概述 - MySQL事務_第4頁](http://file4.renrendoc.com/view5/M00/2B/0B/wKhkGGZENfKAAXFHAACq9TELFMw6314.jpg)
![《MySQL數(shù)據(jù)庫應用與管理(第3版)》 課件全套 魯大林 第1-12章 MySQL概述 - MySQL事務_第5頁](http://file4.renrendoc.com/view5/M00/2B/0B/wKhkGGZENfKAAXFHAACq9TELFMw6315.jpg)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
MySQL概述
數(shù)據(jù)庫基礎本節(jié)內(nèi)容1.數(shù)據(jù)庫基本概念2.關系數(shù)據(jù)庫介紹3.關系數(shù)據(jù)庫設計1.數(shù)據(jù)庫基本概念數(shù)據(jù)庫(Database,DB)是存放數(shù)據(jù)的倉庫,按照數(shù)據(jù)結構來組織、存儲和管理數(shù)據(jù)的倉庫。按照數(shù)據(jù)庫類型劃分,可以分為關系型數(shù)據(jù)庫和非關系型數(shù)據(jù)庫。常見關系型數(shù)據(jù)庫有MySQL、SQLServer、Oracle、DB2等;常見非關系數(shù)據(jù)庫有Redis(鍵值對存儲)、Hbase(列存儲)、MongoDB(文檔型數(shù)據(jù)庫)、InfoGrid(圖數(shù)據(jù)庫)等。數(shù)據(jù)庫(DB)1.數(shù)據(jù)庫基本概念數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem,DBMS)是一種操縱和管理數(shù)據(jù)庫的軟件,用于建立、使用和維護數(shù)據(jù)庫。數(shù)據(jù)庫管理系統(tǒng)能夠提供數(shù)據(jù)錄入、修改、刪除、查詢操作;具有數(shù)據(jù)定義、數(shù)據(jù)操作、數(shù)據(jù)存儲與管理、數(shù)據(jù)維護、通信等功能,且能夠允許多用戶使用。常見的數(shù)據(jù)庫管理系統(tǒng)有MySQL、SQLServer、Oracle、DB2等。數(shù)據(jù)庫管理系統(tǒng)(DBMS)1.數(shù)據(jù)庫基本概念數(shù)據(jù)庫系統(tǒng)(DatabaseSystem,DBS)包括:數(shù)據(jù)庫管理系統(tǒng)+數(shù)據(jù)庫+應用程序+用戶(DBA、應用程序員、終端用戶)。數(shù)據(jù)庫系統(tǒng)(DBS)2.關系數(shù)據(jù)庫介紹關系數(shù)據(jù)庫中,數(shù)據(jù)保存在二維表格中,稱為表(TABLE)。一個關系型數(shù)據(jù)庫包含多個數(shù)據(jù)表,每個表又包含行(記錄、元組)、列(字段、屬性)。例如:學生個人信息包括“學號、姓名、性別、出生日期”,可以用二維表格顯示學生信息。關系表2.關系數(shù)據(jù)庫介紹表與表通過公共字段(鍵)建立關聯(lián),“鍵”分為主鍵和外鍵。主鍵保證表中數(shù)據(jù)的唯一性;外鍵關聯(lián)另一張表中的數(shù)據(jù),保證數(shù)據(jù)的完整性。表與表之間有以下三種類型的關系:一對一關系(1:1)、一對多關系(1:n)、多對多關系(m:n)。表之間的關系2.關系數(shù)據(jù)庫介紹A表中的一條記錄在B表中僅有一條記錄與之對應;反之,B表中的一條記錄在A表中也僅有一條記錄與之對應。一對一關系(1:1)2.關系數(shù)據(jù)庫介紹A表中的一條記錄在B表中有多條記錄與之對應;反之,B表中的一條記錄在A表中僅有一條記錄與之對應。一對多關系(1:n)2.關系數(shù)據(jù)庫介紹A表中的一條記錄在B表中有多條記錄與之對應;反之,B表中的一條記錄在A表中也有多條記錄與之對應。多對多關系(m:n)數(shù)據(jù)庫設計中通過增加一張表將一個多對多的關系轉化為兩個一對多的關系。2.關系數(shù)據(jù)庫介紹關系數(shù)據(jù)庫除了包含表,還包含其他數(shù)據(jù)庫對象(索引、視圖、存儲過程、觸發(fā)器、用戶等)。其他數(shù)據(jù)庫對象3.關系數(shù)據(jù)庫設計需求分析:根據(jù)需求制定任務目標,確定需要處理的數(shù)據(jù)對象及屬性,確定對象關系。概念結構設計:在需求分析基礎上,獲得實體關系模型,繪制E-R圖。數(shù)據(jù)庫邏輯設計:依據(jù)E-R圖,設計表格(確定表的列)。數(shù)據(jù)庫物理設計:創(chuàng)建數(shù)據(jù)庫、創(chuàng)建表格及其他數(shù)據(jù)庫對象。數(shù)據(jù)庫性能優(yōu)化:改進讀寫性能。設計步驟3.關系數(shù)據(jù)庫設計制定任務目標:需要維護學生信息、需要維護課程信息、需要記錄選課信息、需要記錄成績。確定需要處理的數(shù)據(jù)對象:學生、課程、選課信息。確定對象的屬性:學生(學生編號、學號、姓名、性別、出生日期、班級);課程(課程編號、課程名稱、學分);選課信息(學生編號、課程編號、成績)。確定對象之間的關系:一個學生選修多門課,一門課被多個學生選修,學生和課程之間存在多對多的關系。需求分析3.關系數(shù)據(jù)庫設計實體關系模型(E-R圖)是指從現(xiàn)實世界中抽象出實體類型和實體之間的聯(lián)系,描述現(xiàn)實世界中實體對象之間的關系。實體:是指要處理的數(shù)據(jù)對象,用矩形表示,矩形內(nèi)部填寫實體名(對象名稱)。屬性:指對象的屬性,用橢圓形表示,內(nèi)部填寫屬性名,并用無向邊與實體連接。關系:指實體之間的關系,用菱形表示,內(nèi)部填寫關系名,并用無向邊與實體連接,無向邊上標注關系的類型(1:1、1:n、m:n)。實體-關系模型(E-R圖)3.關系數(shù)據(jù)庫設計學生選課數(shù)據(jù)庫E-R圖:實體-關系模型(E-R圖)3.關系數(shù)據(jù)庫設計表設計的原則如下:一個表描述一種實體或者實體間的關系。避免表之間出現(xiàn)重復字段。字段應該是原始數(shù)據(jù)或者基本數(shù)據(jù)元素。表中應該有主鍵來唯一標識表中的記錄。用外鍵保證表之間的關系。表設計3.關系數(shù)據(jù)庫設計學生選課數(shù)據(jù)庫表設計:表設計謝謝MySQL概述
MySQL數(shù)據(jù)庫軟件安裝本節(jié)內(nèi)容1.MySQL簡介2.獲取MySQL數(shù)據(jù)庫軟件3.MySQL安裝與配置MySQL數(shù)據(jù)庫軟件安裝MySQL是一個關系型數(shù)據(jù)庫管理系統(tǒng),是一個真正多用戶、多線程的結構化查詢語言(SQL)數(shù)據(jù)庫服務器,其所使用的SQL語言是用于訪問數(shù)據(jù)庫的最常用標準化語言。MySQL運行速度快、執(zhí)行效率與穩(wěn)定性高、操作簡單、非常易于使用,是目前最流行的數(shù)據(jù)庫管理系統(tǒng)軟件之一。MySQL軟件采用了雙授權政策,它分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,是中小型網(wǎng)站開發(fā)首選的數(shù)據(jù)庫管理系統(tǒng)。1.MySQL簡介MySQL數(shù)據(jù)庫軟件安裝MySQL的官方網(wǎng)站是/,在該網(wǎng)站上可以免費下載其最新版本和各種技術資料,目前MySQL發(fā)布的最新版本是8.0.35。在MySQL官網(wǎng)的社區(qū)版下載頁面(/downloads/)中,選擇MySQLInstallerforWindows,進入MySQL數(shù)據(jù)庫軟件下載頁面。2.獲取MySQL數(shù)據(jù)庫軟件MySQL數(shù)據(jù)庫軟件安裝2.獲取MySQL數(shù)據(jù)庫軟件MySQL數(shù)據(jù)庫軟件安裝以在Windows10操作系統(tǒng)中安裝MySQL8.0.35版本為例:選擇安裝類型界面3.MySQL安裝與配置MySQL數(shù)據(jù)庫軟件安裝確認安裝界面3.MySQL安裝與配置MySQL數(shù)據(jù)庫軟件安裝安裝完成界面3.MySQL安裝與配置MySQL數(shù)據(jù)庫軟件安裝產(chǎn)品配置界面3.MySQL安裝與配置MySQL數(shù)據(jù)庫軟件安裝配置服務器類型和網(wǎng)絡界面3.MySQL安裝與配置MySQL數(shù)據(jù)庫軟件安裝身份驗證方法界面3.MySQL安裝與配置MySQL數(shù)據(jù)庫軟件安裝設置賬戶和角色界面3.MySQL安裝與配置MySQL數(shù)據(jù)庫軟件安裝設置Windows服務界面3.MySQL安裝與配置MySQL數(shù)據(jù)庫軟件安裝設置服務器文件權限界面3.MySQL安裝與配置MySQL數(shù)據(jù)庫軟件安裝執(zhí)行配置界面3.MySQL安裝與配置MySQL數(shù)據(jù)庫軟件安裝MySQL安裝成功界面3.MySQL安裝與配置MySQL數(shù)據(jù)庫軟件安裝運行環(huán)境配置:“系統(tǒng)屬性”及“環(huán)境變量”對話框3.MySQL安裝與配置MySQL數(shù)據(jù)庫軟件安裝運行環(huán)境配置:“環(huán)境編輯變量”對話框3.MySQL安裝與配置MySQL數(shù)據(jù)庫軟件安裝運行環(huán)境配置:“環(huán)境編輯變量”對話框3.MySQL安裝與配置MySQL數(shù)據(jù)庫軟件安裝運行環(huán)境配置:測試運行環(huán)境配置效果3.MySQL安裝與配置謝謝MySQL概述
MySQL常見操作
本節(jié)內(nèi)容1.MySQL服務器的啟動與停止2.MySQL服務器的連接與關閉MySQL常見操作使用命令行窗口程序啟動和停止服務器語法格式如下:
netstart服務名稱
netstop服務名稱1.MySQL服務器的啟動與停止MySQL常見操作使用Windows中的“服務”啟動和停止啟動服務器1.MySQL服務器的啟動與停止MySQL常見操作使用命令行窗口程序連接和關閉服務器連接MySQL服務器使用mysql命令,其語法格式如下:
mysql–h服務器主機地址–u用戶名–p用戶密碼2.MySQL服務器的連接與關閉操作案例知識點概述示例1-1mysql–uroot–p使用管理員賬號“root”通過命令行窗口連接本機的MySQL服務器。MySQL常見操作使用命令行窗口程序連接和關閉服務器在控制臺中輸入exit或者quit命令,可以用來關閉MySQL服務器。執(zhí)行后當出現(xiàn)“Bye”提示語時,表示正確關閉數(shù)據(jù)庫連接。2.MySQL服務器的連接與關閉MySQL常見操作使用圖形化管理工具連接和關閉服務器MySQL圖形化管理工具有很多,例如:Navicat、MySQLWorkbench、SQLyog、phpMyAdmin等。Navicat是一套專為MySQL設計的強大數(shù)據(jù)庫管理及開發(fā)工具,這個功能齊備的前端軟件為數(shù)據(jù)庫管理、開發(fā)和維護提供了直觀而強大的圖形界面,給MySQL新手以及專業(yè)人士提供了一組全面的工具。2.MySQL服務器的連接與關閉MySQL常見操作使用圖形化管理工具連接和關閉服務器使用Navicat連接MySQL服務器的操作步驟:2.MySQL服務器的連接與關閉MySQL常見操作使用圖形化管理工具連接和關閉服務器使用Navicat連接MySQL服務器的操作步驟:2.MySQL服務器的連接與關閉MySQL常見操作使用圖形化管理工具連接和關閉服務器使用Navicat連接MySQL服務器的操作步驟:2.MySQL服務器的連接與關閉MySQL常見操作使用圖形化管理工具連接和關閉服務器使用Navicat關閉MySQL服務器的操作步驟:2.MySQL服務器的連接與關閉MySQL常見操作使用圖形化管理工具連接和關閉服務器使用Navicat關閉MySQL服務器的操作步驟:2.MySQL服務器的連接與關閉謝謝數(shù)據(jù)庫的創(chuàng)建和管理
數(shù)據(jù)庫概述
本節(jié)內(nèi)容1.MySQL數(shù)據(jù)庫文件2.MySQL數(shù)據(jù)庫分類3.MySQL的字符集和校對規(guī)則數(shù)據(jù)庫概述在數(shù)據(jù)庫服務器中可以存儲多個數(shù)據(jù)庫文件,每個數(shù)據(jù)庫有唯一的數(shù)據(jù)庫文件名作為與其它數(shù)據(jù)庫區(qū)別的標識。數(shù)據(jù)庫可以看成是一個存儲數(shù)據(jù)對象的容器,這些數(shù)據(jù)對象包括表、視圖、觸發(fā)器、存儲過程等,其中,表是最基本的數(shù)據(jù)對象,用以存放數(shù)據(jù)庫的數(shù)據(jù)的,一個數(shù)據(jù)庫包括多個數(shù)據(jù)表。MySQL的數(shù)據(jù)庫的各種數(shù)據(jù)以文件的形式保存在系統(tǒng)中;每個數(shù)據(jù)庫的文件保存在以數(shù)據(jù)庫名命名的文件夾中。MySQL配置文件(my.ini)中的datadir參數(shù)指定了數(shù)據(jù)庫文件的存儲位置。1.MySQL數(shù)據(jù)庫文件數(shù)據(jù)庫概述MySQL數(shù)據(jù)庫包含系統(tǒng)數(shù)據(jù)庫和用戶數(shù)據(jù)庫兩類。MySQL安裝后,系統(tǒng)自動創(chuàng)建的數(shù)據(jù)庫稱為系統(tǒng)數(shù)據(jù)庫。用戶數(shù)據(jù)庫是用戶根據(jù)實際應用需求創(chuàng)建的數(shù)據(jù)庫。例如,學生管理數(shù)據(jù)庫、商品銷售數(shù)據(jù)庫、財務管理數(shù)據(jù)庫等。2.MySQL數(shù)據(jù)庫分類數(shù)據(jù)庫概述系統(tǒng)數(shù)據(jù)庫2.MySQL數(shù)據(jù)庫分類數(shù)據(jù)庫概述字符集(CharacterSet),即字符以及字符的編碼;校對規(guī)則(Collation),即比較字符的規(guī)則。可以使用多種字符集存儲字符串,也允許使用多種校對規(guī)則來比較字符串。系統(tǒng)可用的字符集和默認校對規(guī)則可以使用SHOWCHARACTERSET、SHOWCOLLATION命令查看。常見的字符集有:utf8mb4(默認字符集)、utf8、gbk、gb2312、big5。其中utf8mb4支持最長4個字節(jié)的UTF-8字符,utf8支持最長3個字節(jié)的UTF-8字符,utf8mb4兼容utf8,且比utf8能表示更多的字符。3.MySQL的字符集和校對規(guī)則謝謝數(shù)據(jù)庫的創(chuàng)建和管理
創(chuàng)建數(shù)據(jù)庫
本節(jié)內(nèi)容1.使用Navicat對話方式創(chuàng)建數(shù)據(jù)庫2.使用CREATEDATABASE語句創(chuàng)建數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫以創(chuàng)建學生管理數(shù)據(jù)庫(stuInfo)為例,操作步驟如下:打開Navicat控制臺,打開連接對象“LDL”,可查看到數(shù)據(jù)庫列表。1.使用Navicat對話方式創(chuàng)建數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫在“LDL”上點擊鼠標右鍵,選擇“新建數(shù)據(jù)庫…”菜單,顯示“新建數(shù)據(jù)庫”對話框。1.使用Navicat對話方式創(chuàng)建數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫在以上對話框中,可指定“數(shù)據(jù)庫名”、“字符集”和“排序規(guī)則”。點擊“確定”按鈕,即可完成數(shù)據(jù)庫的創(chuàng)建。1.使用Navicat對話方式創(chuàng)建數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫若需要把“stuInfo”數(shù)據(jù)庫指定為當前默認的數(shù)據(jù)庫,則雙擊“stuInfo”數(shù)據(jù)庫即可。1.使用Navicat對話方式創(chuàng)建數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫使用CREATEDATABASE語句,其語法格式如下:CREATEDATABASE[IFNOTEXISTS]<數(shù)據(jù)庫名> [DEFAULTCHARACTERSET<字符集名>] [DEFAULTCOLLATE<排序規(guī)則名>]2.使用CREATEDATABASE語句創(chuàng)建數(shù)據(jù)庫如果所創(chuàng)建的數(shù)據(jù)庫已存在、且沒有指定IFNOTEXISTS,則會出現(xiàn)錯誤。操作案例知識點概述示例2-1(1)在Navicat控制臺中使用CREATEDATABASE語句創(chuàng)建數(shù)據(jù)庫,運行結果如下:使用CREATEDATABASE語句創(chuàng)建數(shù)據(jù)庫“webInfo”,默認字符集為utf8mb4,排序規(guī)則為utf8mb4_general_ci。操作案例知識點概述示例2-1(2)在命令行程序窗口中使用CREATEDATABASE語句創(chuàng)建數(shù)據(jù)庫,運行結果如下:使用CREATEDATABASE語句創(chuàng)建數(shù)據(jù)庫“webInfo”,默認字符集為utf8mb4,排序規(guī)則為utf8mb4_general_ci。創(chuàng)建數(shù)據(jù)庫顯示當前數(shù)據(jù)庫服務器下的所有數(shù)據(jù)庫列表:顯示當前數(shù)據(jù)庫服務器下的所有數(shù)據(jù)庫列表使用SHOWDATABASES語句,常用來查看某一個數(shù)據(jù)庫是否存在。其語法格式如下:SHOWDATABASES2.使用CREATEDATABASE語句創(chuàng)建數(shù)據(jù)庫操作案例知識點概述示例2-2運行結果如下
:以root用戶登錄到MySQL控制臺,使用SHOWDATABASES語句顯示當前數(shù)據(jù)庫服務器下的所有數(shù)據(jù)庫列表。創(chuàng)建數(shù)據(jù)庫指定默認數(shù)據(jù)庫:指定一個數(shù)據(jù)庫作為當前默認的數(shù)據(jù)庫使用USE語句,其語法格式如下:USE<數(shù)據(jù)庫名>2.使用CREATEDATABASE語句創(chuàng)建數(shù)據(jù)庫操作案例知識點概述示例2-3運行結果如下
:以root用戶登錄到MySQL控制臺,使用USE語句指定“stuInfo”數(shù)據(jù)庫作為當前默認的數(shù)據(jù)庫。謝謝數(shù)據(jù)庫的創(chuàng)建和管理
修改數(shù)據(jù)庫
本節(jié)內(nèi)容1.使用Navicat對話方式修改數(shù)據(jù)庫2.使用ALTERDATABASE語句修改數(shù)據(jù)庫修改數(shù)據(jù)庫以修改學生管理數(shù)據(jù)庫(stuInfo)為例,操作步驟如下:在Navicat控制臺中,雙擊展開“LDL”連接對象,在數(shù)據(jù)庫列表中的“stuInfo”上點擊鼠標右鍵,選擇“編輯數(shù)據(jù)庫…”菜單,顯示“編輯數(shù)據(jù)庫”對話框。1.使用Navicat對話方式修改數(shù)據(jù)庫說明:不可以修改數(shù)據(jù)庫名。修改數(shù)據(jù)庫修改數(shù)據(jù)庫使用ALTERDATABASE語句。其語法格式如下:ALTERDATABASE<數(shù)據(jù)庫名>[DEFAULT]CHARACTERSET<字符集名>|[DEFAULT]COLLATE<排序規(guī)則名>]2.使用ALTERDATABASE語句修改數(shù)據(jù)庫操作案例知識點概述示例2-4運行結果如下
:將“webInfo”數(shù)據(jù)庫的默認字符集修改為utf8、排序規(guī)則修改為utf8_general_ci。謝謝數(shù)據(jù)庫的創(chuàng)建和管理
刪除數(shù)據(jù)庫
本節(jié)內(nèi)容1.使用Navicat對話方式刪除數(shù)據(jù)庫2.使用DROPDATABASE語句刪除數(shù)據(jù)庫刪除數(shù)據(jù)庫以刪除學生管理數(shù)據(jù)庫(stuInfo)為例,操作步驟如下:在Navicat控制臺中,雙擊展開“LDL”連接對象,在數(shù)據(jù)庫列表中的“stuInfo”上點擊鼠標右鍵,選擇“刪除數(shù)據(jù)庫”菜單。在彈出的“確認刪除”提示對話框中,點擊“刪除”按鈕,即可完成對學生管理數(shù)據(jù)庫(stuInfo)的刪除。1.使用Navicat對話方式刪除數(shù)據(jù)庫注意:數(shù)據(jù)庫刪除后,所有表及所有數(shù)據(jù)均從磁盤中永久刪除,需謹慎操作!刪除數(shù)據(jù)庫刪除數(shù)據(jù)庫使用DROPDATABASE語句。其語法格式如下:DROPDATABASE[IFEXISTS]<數(shù)據(jù)庫名>2.使用DROPDATABASE語句刪除數(shù)據(jù)庫操作案例知識點概述示例2-5運行結果如下
:刪除數(shù)據(jù)庫“webInfo”。謝謝數(shù)據(jù)表的創(chuàng)建和管理
數(shù)據(jù)表概述
數(shù)據(jù)表概述數(shù)據(jù)表是數(shù)據(jù)庫中一個非常重要的對象,也是其他對象的基礎。一個數(shù)據(jù)庫中可以包含一張或多張表,表是數(shù)據(jù)的集合,是用來存儲數(shù)據(jù)和操作數(shù)據(jù)的邏輯結構。數(shù)據(jù)在表中是按照行和列的格式來組織排列的,每一行代表一條唯一的記錄,每一列代表記錄的一個屬性。數(shù)據(jù)表概述例如,一個包含學生基本信息的數(shù)據(jù)表(student),表中每一行代表一名學生,每一列分別代表該學生的信息,如學號、姓名、性別、班級等。謝謝數(shù)據(jù)表的創(chuàng)建和管理
數(shù)據(jù)類型
本節(jié)內(nèi)容1.數(shù)值類型2.字符串類型3.日期/時間類型數(shù)據(jù)類型在創(chuàng)建表結構時需要確定表中每列的數(shù)據(jù)類型,只有這樣,系統(tǒng)才會在磁盤上開辟相應的空間,用戶才能向表中填寫數(shù)據(jù)。MySQL的數(shù)據(jù)類型主要分為以下三大類:數(shù)值類型、字符串類型和日期/時間類型。數(shù)據(jù)類型MySQL中的數(shù)值類型分為整型和浮點型兩種。整型中又分為TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT五種;浮點型又分為FLOAT、DOUBLE、DECIMAL三種。1.數(shù)值類型數(shù)據(jù)類型整型1.數(shù)值類型數(shù)據(jù)類型浮點型1.數(shù)值類型數(shù)據(jù)類型說明:在整數(shù)類型后面加上UNSIGNED屬性,表示聲明的是無符號數(shù)。例如聲明一個INTUNSIGNED的數(shù)據(jù)列,其取值從0開始。聲明浮點數(shù)類型時,可以為它指定一個顯示寬度指示器和一個小數(shù)點指示器。例如FLOAT(7,2)表示顯示的值不會超過7位數(shù)字,小數(shù)點后面帶有2位數(shù)字,存入的數(shù)據(jù)會被四舍五入,比如3.1415存入后的結果是3.14。1.數(shù)值類型數(shù)據(jù)類型字符串類型可以用來存儲任何一種值,它是最基本的數(shù)據(jù)類型之一。MySQL支持以單引號或雙引號包含的字符串,例如"MySQL"、'MySQL',它們表示的是同一個字符串。2.字符串類型數(shù)據(jù)類型2.字符串類型數(shù)據(jù)類型說明:CHAR類型是定長字符串,VARCHAR類型時變長字符串。CHAR(n)或VARCHAR(n)表示可以存儲n個字符(注意:不是n個字節(jié))。BLOB相關類型一般用來存儲圖片,聲音和視頻等二進制文件。TEXT相關類型一般用來存儲大量的字符串,可以理解為超大的CHAR或者VARCHAR類型。2.字符串類型數(shù)據(jù)類型日期/時間類型是用來存儲諸如“2016-9-1”或者“12:30:00”這一類的日期/時間的值。3.日期/時間類型謝謝數(shù)據(jù)表的創(chuàng)建和管理
創(chuàng)建數(shù)據(jù)表
本節(jié)內(nèi)容1.使用Navicat對話方式創(chuàng)建數(shù)據(jù)表2.使用CREATETABLE語句創(chuàng)建數(shù)據(jù)表3.使用CREATETABLE…LIKE語句復制數(shù)據(jù)表4.使用CREATETEMPORARYTABLE語句創(chuàng)建臨時表創(chuàng)建數(shù)據(jù)表以在學生管理數(shù)據(jù)庫(stuInfo)中創(chuàng)建學生表(student)為例,操作步驟如下:在Navicat控制臺中,打開表結構設計窗口。1.使用Navicat對話方式創(chuàng)建數(shù)據(jù)表創(chuàng)建數(shù)據(jù)表完成學生表的表結構的設計。1.使用Navicat對話方式創(chuàng)建數(shù)據(jù)表創(chuàng)建數(shù)據(jù)表設置數(shù)據(jù)表的“表名”。1.使用Navicat對話方式創(chuàng)建數(shù)據(jù)表創(chuàng)建數(shù)據(jù)表創(chuàng)建數(shù)據(jù)表使用CREATETABLE語句,其語法格式如下:CREATETABLE[IFNOTEXISTS]<表名>(字段名1數(shù)據(jù)類型[屬性][索引],字段名2數(shù)據(jù)類型[屬性][索引],…字段名n數(shù)據(jù)類型[屬性][索引])[存儲引擎][表字符集]2.使用CREATETABLE語句創(chuàng)建數(shù)據(jù)表創(chuàng)建數(shù)據(jù)表說明:每一個字段可以使用屬性對其進行限制說明,屬性是可選的,主要包括:AUTO_INCREMENT、COMMENT等??梢允褂肞RIMARYKEY、UNIQUE、INDEX等子句為字段定義索引。MySQL支持多種存儲引擎,其中最重要的是MyISAM和InnoDB這兩種。默認的存儲引擎為InnoDB(MySQL5.1.X之前的版本,默認值的存儲引擎為MyISAM)。2.使用CREATETABLE語句創(chuàng)建數(shù)據(jù)表操作案例知識點概述示例3-1運行結果如下:在數(shù)據(jù)庫stuInfo中創(chuàng)建學生表(student),其中id字段為自動增加的無符號整數(shù)、主鍵,sNo、sName字段不允許為空。操作案例知識點概述示例3-2運行結果如下:在數(shù)據(jù)庫stuInfo中創(chuàng)建課程表(course),其中id字段為自動增加的無符號整數(shù)、主鍵,cNo、cName字段不允許為空。操作案例知識點概述示例3-3運行結果如下:在數(shù)據(jù)庫stuInfo中創(chuàng)建成績表(score),其中id字段為自動增加的無符號整數(shù)、主鍵,sId、cId、grade字段不允許為空。操作案例知識點概述示例3-4運行結果如下:查看stuInfo數(shù)據(jù)庫中所有數(shù)據(jù)表。創(chuàng)建數(shù)據(jù)表復制數(shù)據(jù)表使用CREATETABLE…LIKE語句,其語法格式如下:
CREATETABLE<新表名>LIKE<舊表名>3.使用CREATETABLE…LIKE語句復制數(shù)據(jù)表說明:可以把舊表的表結構、索引、默認值等都復制到新表中。操作案例知識點概述示例3-5運行結果如下:復制學生表(student),生成一張新的數(shù)據(jù)表student_bak。創(chuàng)建數(shù)據(jù)表創(chuàng)建臨時表使用CREATETEMPORARYTABLE語句,其他語法格式與CREATETABLE語句相同;也可以使用CREATETEMPORARYTABLELIKE語句復制已有數(shù)據(jù)表,生成一張新的臨時表。創(chuàng)建的臨時表只在當前連接可見,當前連接關閉后,MySQL會自動刪除所創(chuàng)建的臨時表并釋放所有空間。使用SHOWTABLES命令無法查看到所創(chuàng)建的臨時表,但可以使用INSERT、UPDAE、DELETE、SELECT等命令對它進行操作。4.使用CREATETEMPORARYTABLE語句創(chuàng)建臨時表操作案例知識點概述示例3-6運行結果如下:創(chuàng)建臨時表(student_temp),其字段及要求與學生表(student)一樣。說明:當使用SHOWTABLES命令顯示數(shù)據(jù)表列表時,將無法查看到所創(chuàng)建的臨時表student_temp;但可以使用INSERT、UPDAE、DELETE、SELECT等命令對它進行操作。謝謝數(shù)據(jù)表的創(chuàng)建和管理
查看表結構
本節(jié)內(nèi)容1.使用DESCRIBE|DESC命令查看表結構2.使用SHOWCREATETABLE命令查看數(shù)據(jù)表創(chuàng)建語句查看表結構查看表結構可以使用“DESCRIBE”或“DESC”命令,其語法格式如下:
DESCRIBE|DESC<表名>1.使用DESCRIBE|DESC命令查看表結構操作案例知識點概述示例3-7運行結果如下:以root用戶登錄到MySQL控制臺,使用DESC命令查看學生表(student)的表結構。查看表結構查看數(shù)據(jù)表的創(chuàng)建語句可以使用“SHOWCREATETABLE”命令,其語法格式如下:
SHOWCREATETABLE<表名>2.使用SHOWCREATETABLE命令查看數(shù)據(jù)表創(chuàng)建語句操作案例知識點概述示例3-8運行結果如下:以root用戶登錄到MySQL控制臺,使用SHOWCREATETABLE命令查看學生表(student)的創(chuàng)建語句。說明:在命令行程序窗口中,在執(zhí)行語句的最后面,使用“\G”代替“;”,可以縱向輸出執(zhí)行結果,以便于閱讀。謝謝數(shù)據(jù)表的創(chuàng)建和管理
修改表結構
本節(jié)內(nèi)容1.使用Navicat對話方式修改表結構2.使用ALTERTABLE語句修改表結構修改表結構以修改學生管理數(shù)據(jù)庫(stuInfo)中的學生表(student)的表結構為例,操作步驟如下:在Navicat控制臺中,打開學生表(student)的表結構設計窗口。修改完成后,點擊工具欄上的“保存”按鈕即可。1.使用Navicat對話方式修改表結構修改表結構修改表結構使用ALTERTABLE語句,其語法格式如下:ALTERTABLE<表名>
ADD字段名數(shù)據(jù)類型[屬性][索引][FIRST|AFTER字段名]| MODIFY字段名數(shù)據(jù)類型[屬性][索引]| CHANGE字段名新字段名數(shù)據(jù)類型[屬性][索引]| DROP字段名| AUTO_INCREMENT=n| RENAMEAS新表名2.使用ALTERTABLE語句修改表結構修改表結構說明:ADD用來添加一個新的字段,如果沒有指定FIRST或AFTER,則在表的列尾添加一個字段。MODIFY用來更改指定字段的數(shù)據(jù)類型等。CHANGE也是用來更改指定字段的數(shù)據(jù)類型等,但可以同時把指定字段更改為一個新的名字。DROP用來刪除指定字段。AUTO_INCREMENT=n用來設置AUTO_INCREMENT的初始值。RENAMEAS用來給數(shù)據(jù)表重新命名。2.使用ALTERTABLE語句修改表結構操作案例知識點概述示例3-9運行結果如下:在學生表(student)中birthday字段的后面添加一個新的入學日期entryDate字段。操作案例知識點概述示例3-10運行結果如下:將學生表(student)中entryDate字段的數(shù)據(jù)類型更改為TIMESTAMP。操作案例知識點概述示例3-11運行結果如下:將學生表(student)中entryDate字段的名字更改為rxDate、數(shù)據(jù)類型更改為DATETIME。操作案例知識點概述示例3-12運行結果如下:刪除學生表(student)中的rxDate字段。謝謝數(shù)據(jù)表的創(chuàng)建和管理
操作表中數(shù)據(jù)
本節(jié)內(nèi)容1.使用Navicat對話方式操作表中數(shù)據(jù)2.使用INSERT語句向表中插入數(shù)據(jù)3.使用UPDATE語句修改表中數(shù)據(jù)4.使用DELETE語句刪除表中數(shù)據(jù)5.使用TRUNCATE語句清空表中數(shù)據(jù)操作表中數(shù)據(jù)以在學生表(student)中插入、修改、刪除數(shù)據(jù)為例,操作步驟如下:在Navicat控制臺中,打開學生表(student)。1.使用Navicat對話方式操作表中數(shù)據(jù)操作表中數(shù)據(jù)對學生表(student)進行數(shù)據(jù)的添加、修改和刪除操作。1.使用Navicat對話方式操作表中數(shù)據(jù)操作表中數(shù)據(jù)使用INSERT語句可以向表中插入數(shù)據(jù),其語法格式如下:
INSERT[INTO]<表名>[(字段名1,字段名2,...,字段名n)] VALUES(值1,值2,...,值n)2.使用INSERT語句向表中插入數(shù)據(jù)操作表中數(shù)據(jù)說明:表名后面指定的字段列表要與VALUES子句中表達式列表的值一一對應,即個數(shù)要相等,數(shù)據(jù)類型也要匹配。對于字符型或者日期/時間類型的數(shù)據(jù)需要使用單引號括起來。INSERT語句也可以省略字段列表,但必須插入一行完整的數(shù)據(jù),且必須按照表中定義的字段順序為全部字段提供值。INSERT語句也可以一次性插入多行數(shù)據(jù),即在VALUES子句的后面加上多個表達式列表,并以逗號隔開。2.使用INSERT語句向表中插入數(shù)據(jù)操作案例知識點概述示例3-13運行結果如下:向學生表(student)中插入一行數(shù)據(jù)。操作案例知識點概述示例3-14運行結果如下:向學生表(student)中插入多行數(shù)據(jù)。操作表中數(shù)據(jù)使用UPDATE語句可以對表中的一列或多列數(shù)據(jù)進行修改,修改時必須指定需要修改的字段,并且賦予新值。其語法格式如下:
UPDATE<表名> SET字段名1=值1[,字段名2=值2,…,字段名n=值n] [WHERE條件]3.使用UPDATE語句修改表中數(shù)據(jù)操作案例知識點概述示例3-15運行結果如下:修改學生表(student)中學號為“1308013103”的數(shù)據(jù)記錄,把其班級更改為“網(wǎng)絡131”、備注更改為“班長”。操作表中數(shù)據(jù)使用DELETE語句可以刪除表中的一行或多行數(shù)據(jù)。其語法格式如下:
DELETEFROM<表名> [WHERE條件]4.使用DELETE語句刪除表中數(shù)據(jù)操作案例知識點概述示例3-16運行結果如下:刪除學生表(student)中學號為“1308013105”的數(shù)據(jù)記錄。操作表中數(shù)據(jù)使用TRUNCATE[TABLE]語句可以刪除表中的所有行數(shù)據(jù)。其語法格式如下:
TRUNCATE[TABLE]<表名>5.使用TRUNCATE語句清空表中數(shù)據(jù)操作表中數(shù)據(jù)說明:TRUNCATE[TABLE]語句在功能上與不帶WHERE子句的DELETE語句相同:二者均可以刪除表中的全部行。TRUNCATE[TABLE]速度更快,且使用的系統(tǒng)和事務日志資源少;并且對于具有自動遞增值的字段,可以使其自動恢復到默認的初始值,起到做計數(shù)重置歸零重新計算的作用。5.使用TRUNCATE語句清空表中數(shù)據(jù)操作案例知識點概述示例3-17運行結果如下:使用TRUNCATE語句清空學生表(student)中數(shù)據(jù)。謝謝數(shù)據(jù)表的創(chuàng)建和管理
刪除數(shù)據(jù)表
本節(jié)內(nèi)容1.使用Navicat對話方式刪除數(shù)據(jù)表2.使用DROPTABLE語句刪除數(shù)據(jù)表刪除數(shù)據(jù)表以刪除學生管理數(shù)據(jù)庫(stuInfo)中的成績表(score)為例,操作步驟如下:在Navicat控制臺中,雙擊展開“LDL”連接對象,再次雙擊數(shù)據(jù)庫列表中的stuInfo,打開該數(shù)據(jù)庫,在數(shù)據(jù)表列表中的“score”上點擊鼠標右鍵,選擇“刪除表”菜單(或者點擊工具欄上的“刪除表”按鈕)。在彈出的“確認刪除”提示對話框中,點擊“刪除”按鈕,即可完成對成績表(score)的刪除。1.使用Navicat對話方式刪除數(shù)據(jù)表修改表結構刪除數(shù)據(jù)表使用DROPTABLE語句,其語法格式如下:DROPTABLE[IFEXISTS]<表名>2.使用DROPTABLE語句刪除數(shù)據(jù)表操作案例知識點概述示例3-18運行結果如下:刪除課程表(course)。謝謝索引的創(chuàng)建和使用
索引概述
本節(jié)內(nèi)容1.使用索引提高查詢效率的原理2.索引的優(yōu)點3.索引的缺點4.引用索引的原則索引概述索引是一種與數(shù)據(jù)表相關的類似于目錄的一種數(shù)據(jù)結構,MySQL索引的建立對于MySQL的高效運行是很重要的,索引可以大大提高MySQL的檢索速度。索引也類似一張表,該表保存了主鍵與索引字段,并指向實體表的記錄。索引也可以分為單列索引和組合索引,單列索引表示一個索引只包含單個列,一個表可以有多個單列索引,但這不是組合索引;組合索引表示一個索引包含多個列。索引概述索引包含由列生成的鍵值+數(shù)據(jù)頁地址的指針組成的。索引的鍵值是排序的,排序的數(shù)據(jù)可以利用各種高效的查找算法(例如,折半查找等)。1.使用索引提高查詢效率的原理索引概述提高查詢速度。提高表與表之間連接的效率。唯一性索引還可以保證數(shù)據(jù)記錄的唯一性。2.索引的優(yōu)點索引概述雖然索引大大提高了查詢速度,但卻會降低更新表的速度,因為在對數(shù)據(jù)表進行INSERT、UPDATE、DELETE的操作時,MySQL不僅要保存數(shù)據(jù),還要保存一下索引文件。因此,索引并不是創(chuàng)建的越多越好。3.索引的缺點索引概述科學地設計索引,在提高查詢效率的同時,應盡量減少索引帶來的副作用。考慮設置索引的情況如下:經(jīng)常檢索的列(在WHERE子句中使用的列)。主鍵列、外鍵列(事實上,主鍵約束列、唯一性約束列會自動創(chuàng)建索引)。經(jīng)常用于表間連接的列。4.引用索引的原則索引概述考慮不設置索引的情況如下:檢索中幾乎不涉及到的列。重復值太多的列。數(shù)據(jù)類型為text、blob的列。行數(shù)極少的表沒必要創(chuàng)建索引。插入、更新效率比查詢效率更重要的情況。4.引用索引的原則謝謝索引的創(chuàng)建和使用
創(chuàng)建索引
本節(jié)內(nèi)容1.使用Navicat對話方式創(chuàng)建索引2.在CREATETABLE語句中創(chuàng)建索引3.在ALTERTABLE語句中創(chuàng)建索引4.使用CREATEINDEX語句創(chuàng)建索引5.使用SHOWINDEX語句查看索引創(chuàng)建索引以在學生表(student)的sNo字段上創(chuàng)建唯一性索引、sName字段上創(chuàng)建普通索引為例,操作步驟如下:在Navicat控制臺中,打開表結構設計窗口。1.使用Navicat對話方式創(chuàng)建索引創(chuàng)建索引點擊“索引”欄切換到索引頁面。1.使用Navicat對話方式創(chuàng)建索引創(chuàng)建索引可以使用CREATETABLE語句在創(chuàng)建數(shù)據(jù)表的同時創(chuàng)建索引,其語法格式如下:CREATETABLE<表名>( <字段名1>[,……n]|索引項)其中索引項的語法格式為: PRIMARYKEY[<索引名>](<字段名1>[ASC|DESC][,……n])| UNIQUE[INDEX][<索引名>](<字段名1>[ASC|DESC][,……n])| INDEX|KEY[<索引名>](<字段名1>[ASC|DESC][,……n])| FULLTEXT[INDEX][<索引名>](<字段名1>[ASC|DESC][,……n])2.在CREATETABLE語句中創(chuàng)建索引創(chuàng)建索引說明:PRIMARYKEY:主鍵索引。UNIQUE:唯一性索引。INDEX|KEY:普通索引,KEY通常是INDEX的同義詞,二選一即可。FULLTEXT:全文索引。2.使用CREATETABLE語句創(chuàng)建數(shù)據(jù)表操作案例知識點概述示例4-1運行結果如下:創(chuàng)建學生表(student),在id字段上創(chuàng)建主鍵索引、在sNo字段上創(chuàng)建唯一性索引、在sName字段上創(chuàng)建普通索引。操作案例知識點概述示例4-2運行結果如下:創(chuàng)建課程表(course),在id字段上創(chuàng)建主鍵索引。操作案例知識點概述示例4-3運行結果如下:創(chuàng)建成績表(score),在id字段上創(chuàng)建主鍵索引。創(chuàng)建索引如果數(shù)據(jù)表已經(jīng)存在,可以使用ALTERTABLE語句創(chuàng)建索引,其語法格式如下: ALTERTABLE<表名> ADD索引項3.在ALTERTABLE語句中創(chuàng)建索引說明:語法中除了多一個ADD關鍵詞,其他與在CREATETABLE語句中創(chuàng)建索引類似。操作案例知識點概述示例4-4運行結果如下:修改課程表(course),在cNo字段上創(chuàng)建唯一性索引、在cName字段上創(chuàng)建普通索引。創(chuàng)建索引創(chuàng)建索引的語句使用CREATEINDEX,其語法格式如下: CREATE[UNIQUE]|[FULLTEXT]INDEX<索引名> ON<表名>(<字段名1>[ASC|DESC][,……n])4.使用CREATEINDEX語句創(chuàng)建索引說明:若無UNIQUE、FULLTEXT關鍵詞則是創(chuàng)建普通索引。操作案例知識點概述示例4-5運行結果如下:在成績表(score)的sId、cId字段上創(chuàng)建唯一性索引(組合索引)。創(chuàng)建索引查看索引使用語句SHOWINDEX,其語法格式如下: SHOWINDEXFROM<表名>[FROM<數(shù)據(jù)庫名>]5.使用SHOWINDEX語句查看索引操作案例知識點概述示例4-6運行結果如下:查看學生表(student)中的索引。謝謝索引的創(chuàng)建和使用
刪除索引
本節(jié)內(nèi)容1.使用Navicat對話方式刪除索引2.使用DROP
INDEX語句刪除索引刪除索引以刪除學生表(student)中的唯一性索引和普通索引為例,操作步驟如下:在Navicat控制臺中,打開表結構設計窗口,點擊“索引”欄切換到索引頁面。1.使用Navicat對話方式刪除索引創(chuàng)建索引刪除索引使用語句DROPINDEX,其語法格式如下:DROPINDEX<索引名>ON<表名>2.使用DROPINDEX語句刪除索引操作案例知識點概述示例4-7運行結果如下:刪除課程表(course)中的索引ix_cName。謝謝索引的創(chuàng)建和使用
約束管理
本節(jié)內(nèi)容1.主鍵約束(PRIMARYKEY)2.唯一性約束(UNIQUE)3.默認值約束(DEFAULT)4.外鍵約束(FOREIGNKEY)約束管理約束是對列進行限制的規(guī)則,以確保輸入數(shù)據(jù)的一致性和正確性。約束是實現(xiàn)數(shù)據(jù)完整性的主要途徑。常見的約束有:主鍵約束、唯一性約束、默認值約束、外鍵約束、非空約束等。約束可以在創(chuàng)建數(shù)據(jù)表時創(chuàng)建,也可以在修改數(shù)據(jù)表時創(chuàng)建。約束管理主鍵約束(簡稱為主鍵)是MySQL中使用最為頻繁的約束,在設計數(shù)據(jù)表時,一般情況下,都會要求表中設置一個主鍵。主鍵值必須唯一標識表中的每一行,且不能為NULL值,即表中不可能存在有相同主鍵值的兩行數(shù)據(jù)。每張表只能定義一個主鍵,主鍵可以是單字段主鍵,也可以是多字段組合主鍵。創(chuàng)建主鍵約束后,會自動創(chuàng)建一個與約束同名的主鍵索引。1.主鍵約束(PRIMARYKEY)約束管理(1)在創(chuàng)建表時設置主鍵約束在CREATETABLE語句中,通過PRIMARYKEY關鍵字來指定主鍵約束。在定義字段的同時指定主鍵約束,其語法格式如下:<字段名><數(shù)據(jù)類型>PRIMARYKEY也可以在定義完所有字段之后指定主鍵約束,其語法格式如下: [CONSTRAINT<約束名>]PRIMARYKEY(字段名)若是組合主鍵約束,其語法格式如下: [CONSTRAINT<約束名>]PRIMARYKEY(字段名1,字段名2[,…])1.主鍵約束(PRIMARYKEY)操作案例知識點概述示例4-8運行結果如下:創(chuàng)建學生表(student1),設置id字段為主鍵約束。操作案例知識點概述示例4-9運行結果如下:創(chuàng)建課程表(course1),設置id字段為主鍵約束。操作案例知識點概述示例4-10運行結果如下:創(chuàng)建成績表(score1),設置sId、cId字段為組合主鍵約束。約束管理(2)在修改表時添加主鍵約束主鍵約束不僅可以在創(chuàng)建表的同時創(chuàng)建,也可以在修改表時添加。但是需要注意的是,設置成主鍵約束的字段中不允許有空值和重復值。在修改數(shù)據(jù)表時添加主鍵約束的語法格式如下:ALTERTABLE<表名> ADD[CONSTRAINT<約束名>]PRIMARYKEY(<字段名>);1.主鍵約束(PRIMARYKEY)操作案例知識點概述示例4-11運行結果如下:修改學生表(student1),給id字段添加主鍵約束。說明:首先要確保學生表(student1)中無主鍵約束,還要確保設置成主鍵約束的字段中值不能夠有重復的,并且要保證是非空的。否則,無法設置主鍵約束。約束管理(3)刪除主鍵約束當一張表中不需要主鍵約束時,就需要從表中將其刪除。刪除主鍵約束的語法格式如下:ALTERTABLE<表名>DROPPRIMARYKEY;說明:由于主鍵約束在一張表中只能有一個,因此不需要指定主鍵名就可以刪除一張表中的主鍵約束。1.主鍵約束(PRIMARYKEY)操作案例知識點概述示例4-12運行結果如下:刪除學生表(student1)中的主鍵約束。約束管理唯一性約束與主鍵約束有相似的地方,就是它們都能夠確保列的唯一性。不同的是,唯一性約束在一張表中可以有多個,并且設置唯一性約束的列允許有空值,但是只能有一個空值;而主鍵約束在一張表中只能有一個,而且是不允許有空值的。2.唯一性約束(UNIQUE)約束管理(1)在創(chuàng)建表時設置唯一性約束在CREATETABLE語句中,通過UNIQUE關鍵字來指定唯一性約束,唯一性約束通常設置在除了主鍵以外的其它列上。在定義字段的同時指定唯一性約束,其語法格式如下:<字段名><數(shù)據(jù)類型>UNIQUE也可以在定義完所有字段之后指定唯一性約束,其語法格式如下: [CONSTRAINT<約束名>]UNIQUE(字段名)2.唯一性約束(UNIQUE)操作案例知識點概述示例4-13運行結果如下:創(chuàng)建學生表(student1),設置id字段為主鍵約束、sNo字段為唯一性約束。操作案例知識點概述示例4-14運行結果如下:創(chuàng)建課程表(course1),設置id字段為主鍵約束、cNo為唯一性約束。約束管理(2)在修改表時添加唯一性約束在修改數(shù)據(jù)表時添加唯一性約束的語法格式如下:ALTERTABLE<表名> ADD[CONSTRAINT<約束名>]UNIQUE(<字段名>);2.唯一性約束(UNIQUE)操作案例知識點概述示例4-15運行結果如下:修改課程表(course1),給cName字段添加唯一性約束。約束管理(3)刪除唯一性約束刪除唯一性約束的語法格式如下:ALTERTABLE<表名>
DROPINDEX<唯一性約束名>;2.唯一性約束(UNIQUE)操作案例知識點概述示例4-16運行結果如下:刪除課程表(course1)中的唯一性約束ux_cName。約束管理默認約束是用來給表中某列賦予一個常量值(默認值),當向該表插入一條新的記錄時,如果用戶沒有明確給出該列的值,MySQL會自動為該列插入所設置的默認值。3.默認值約束(DEFAULT)約束管理(1)在創(chuàng)建表時設置默認值約束在CREATETABLE語句中,通過DEFAULT關鍵字來指定默認值約束,其語法格式如下:<字段名><數(shù)據(jù)類型>DEFAULT<默認值>說明:“默認值”是指該字段所設置的默認值,如果是字符類型,需要用單引號括起來。3.默認值約束(DEFAULT)操作案例知識點概述示例4-17運行結果如下:創(chuàng)建學生表(student1),設置sex字段設置默認值為“男”。約束管理(2)在修改表時添加默認值約束在修改數(shù)據(jù)表時添加默認值約束的語法格式如下:ALTERTABLE<表名> MODIFY<字段名><數(shù)據(jù)類型>DEFAULT<默認值>;3.默認值約束(DEFAULT)操作案例知識點概述示例4-18運行結果如下:修改課程表(course1),給credit字段添加默認值“4”。約束管理(3)刪除默認值約束刪除默認值約束的語法格式如下:ALTERTABLE<表名> MODIFY<字段名><數(shù)據(jù)類型>DEFAULTNULL;3.默認值約束(DEFAULT)操作案例知識點概述示例4-19運行結果如下:刪除課程表(course1)中credit字段的默認值約束。約束管理(4)使用Navicat對話方式創(chuàng)建默認約束以給學生表(student)的sex字段添加默認值“男”為例。在Navicat控制臺中,打開表結構設計窗口。3.默認值約束(DEFAULT)約束管理外鍵約束經(jīng)常與主鍵約束一起使用。對于兩個具有關聯(lián)關系的表而言,相關聯(lián)字段中主鍵所在的表就是主表(父表),外鍵所在的表就是從表(子表)。在MySQL中,目前只有InnoDB存儲引擎支持外鍵約束。外鍵用來建立主表與從表的關聯(lián)關系,為兩個表的數(shù)據(jù)建立連接,約束兩個表中數(shù)據(jù)的一致性和完整性。例如,主表刪除某條記錄時,從表中與之對應的記錄也必須有相應的改變。一個表可以有一個或多個外鍵,外鍵可以為空值,若不為空值,則每一個外鍵的值必須等于主表中主鍵的某個值。4.外鍵約束(FOREIGNKEY)約束管理定義外鍵時,需要遵守下列規(guī)則:主表必須已經(jīng)存在于數(shù)據(jù)庫中,或者是當前正在創(chuàng)建的表。如果是后一種情況,則主表與從表是同一個表,這樣的表稱為自參照表,這種結構稱為自參照完整性。必須為主表定義主鍵。主鍵不能包含空值,但允許在外鍵中出現(xiàn)空值。也就是說,只要外鍵的每個非空值出現(xiàn)在指定的主鍵中,這個外鍵的內(nèi)容就是正確的。在主表的表名后面指定列名或列名的組合。這個列或列的組合必須是主表的主鍵或候選鍵。外鍵列的數(shù)目必須和主表中主鍵列的數(shù)目相同;外鍵列的數(shù)據(jù)類型必須和主表中主鍵列的數(shù)據(jù)類型相同。4.外鍵約束(FOREIGNKEY)約束管理(1)在創(chuàng)建表時設置外鍵約束在CREATETABLE語句中,通過FOREIGNKEY關鍵字來指定外鍵約束,其語法格式如下:[CONSTRAINT<約束名>]FOREIGNKEY(字段名) REFERENCES<主表名>(主鍵列) [ONDELETE{RESTRICT|NOACTION|CASCADE|SETNULL}] [ONUPDATE{RESTRICT|NOACTION|CASCADE|SETNULL}]4.外鍵約束(FOREIGNKEY)約束管理(1)在創(chuàng)建表時設置外鍵約束說明:RESTRICT:不執(zhí)行任何操作。主表的更新或者刪除企圖會被拒絕。NOACTION:與RESTRICT相同。主表的更新或者刪除企圖會被拒絕。CASCADE:從表隨主表級聯(lián)更新或級聯(lián)刪除。即,刪除或更新主表中的行,同時自動地刪除或更新從表中對應匹配的行。SETNULL:從表的外鍵列設置為NULL,即,刪除或更新主表中的行,同時將從表中的外鍵列設置為NULL。注意,只有在從表的外鍵列沒有被設為NOTNULL時才有效。4.外鍵約束(FOREIGNKEY)操作案例知識點概述示例4-20運行結果如下:創(chuàng)建成績表(score1),設置sId字段為外鍵約束,參考的是學生表(student1)中的id字段(不執(zhí)行任何操作)。約束管理(2)在修改表時添加外鍵約束在修改數(shù)據(jù)表時添加外鍵約束的語法格式如下:ALTERTABLE<表名> ADD[CONSTRAINT<約束名>]FOREIGNKEY(字段名) REFERENCES<主表名>(主鍵列) [ONDELETE{RESTRICT|NOACTION|CASCADE|SETNULL}] [ONUPDATE{RESTRICT|NOACTION|CASCADE|SETNULL}];4.外鍵約束(FOREIGNKEY)操作案例知識點概述示例4-21運行結果如下:修改成績表(score1),給cId字段添加外鍵約束,參考的是課程表(course1)中的id字段(不執(zhí)行任何操作)。約束管理(3)刪除外鍵約束刪除外鍵約束的語法格式如下:ALTERTABLE<表名>
DROPFOREIGNKEY<外鍵約束名>;4.外鍵約束(FOREIGNKEY)操作案例知識點概述示例4-22運行結果如下:刪除成績表(score1)中的外鍵約束fk_course1_score1。約束管理(4)使用Navicat對話方式創(chuàng)建外鍵約束以給成績表(score)中的sId字段和cId字段添加外鍵約束為例。在Navicat控制臺中,打開表結構設計窗口,點擊“外鍵”欄切換到外鍵頁面。4.外鍵約束(FOREIGNKEY)約束管理(4)使用Navicat對話方式創(chuàng)建外鍵約束給成績表(score)創(chuàng)建了外鍵約束以后,學生表(student)、課程表(course)、成績表(score)之間的關系如下所示:4.外鍵約束(FOREIGNKEY)謝謝數(shù)據(jù)查詢
SELECT語句
本節(jié)內(nèi)容1.SELECT語句基本語法2.查詢示例數(shù)據(jù)庫SELECT語句SELECT語句主要用于數(shù)據(jù)的查詢檢索,是SQL語言的核心,也是使用頻率最高的一條語句。SELECT語句可以讓數(shù)據(jù)庫服務器根據(jù)用戶的要求,從數(shù)據(jù)庫的表中檢索出所需要的數(shù)據(jù),并按照用戶指定的格式進行整理并返回。1.SELECT語句基本語法SELECT語句SELECT語句的語法格式如下:SELECT[ALL|DISTINCT]*|字段列表FROM表名[WHERE查詢條件][GROUPBY分組字段[HAVING分組條件]][ORDERBY排序字段[ASC|DESC]][LIMIT[初始位置,]記錄數(shù)]1.SELECT語句基本語法SELECT語句說明:SELECT子句:用來指定查詢返回的字段。星號(*)表示返回所有字段,并按照表中定義的字段順序顯示查詢結果集;也可指定字段列表,以逗號隔開,各字段在SELECT子句中的循序決定了它們在查詢結果集中的順序。使用DISTINCT關鍵字可以取消重復的數(shù)據(jù)記錄。FROM子句:用來指定數(shù)據(jù)來源的表。WHERE子句:用來限定返回行的查詢條件。GROUPBY子句:用來指定查詢結果的分組條件。ORDERBY子句:用來指定結果集的排序方式。ASC表示升序,可省略;DESC表示降序。LIMIT子句:用來限制SELECT語句返回的記錄數(shù)。1.SELECT語句基本語法SELECT語句以“學生管理系統(tǒng)”數(shù)據(jù)庫StuInfo作為學習本章內(nèi)容的示例數(shù)據(jù)庫,該數(shù)據(jù)庫中的數(shù)據(jù)表如下:學生表(student) student(id,sNo,sName,sex,birthday,deptName,remark)課程表(course) course(id,cNo,cName,credit,remark)成績表(score) score(id,sid,cid,grade)2.查詢示例數(shù)據(jù)庫謝謝數(shù)據(jù)查詢
簡單查詢
本節(jié)內(nèi)容1.選擇字段進行查詢2.使用比較運算符進行查詢3.使用邏輯運算符進行查詢4.使用LIKE進行模糊查詢5.使用BETWEEN…AND進行范圍比較查詢本節(jié)內(nèi)容6.使用IN進行范圍比對查詢7.使用空值(NULL)的判斷進行查詢8.使用ORDERBY子句排序查詢的記錄9.使用LIMIT子句限制返回記錄的行數(shù)10.使用DISTINCT關鍵字過濾重復的記錄簡單查詢(1)選擇所有字段在SELECT子句中可以使用星號(*),顯示表中所有的字段。其語法格式如下: SELECT*FROM表名1.選擇字段進行查詢操作案例知識點概述示例5-1運行結果如下:顯示student表中的所有信息。簡單查詢(2)選擇指定字段選擇指定字段的語法格式如下: SELECT字段名1[,字段名2,…,字段名n]FROM表名說明:字段的順序可以與表中定義的字段順序不同,字段與字段之間使用逗號分隔。1.選擇字段進行查詢操作案例知識點概述示例5-2運行結果如下:從student表中查詢出班級名稱(deptName),學號(sNo)、姓名(sName)、和性別(sex)的學生信息。說明:在數(shù)據(jù)查詢時,字段的顯示順序由SELECT子句指定,該順序可以和表中定義的字段順序不同,這并不影響數(shù)據(jù)在表中的存儲順序。簡單查詢(3)定義字段別名默認情況下返回的查詢結果以字段名作為列標題的,可以為返回的字段指定一個新的列標題,也可給通過計算產(chǎn)生的新列指定一個列標題。其語法格式如下: SELECT字段名1[AS]列標題1[,字段名2[AS]列標題2,…]FROM表名說明:AS關鍵字可以省略。1.選擇字段進行查詢操作案例知識點概述示例5-3運行結果如下:以“學號姓名性別出生日期”作為列標題顯示學生信息。簡單查詢在實際工作中,大部分查詢并不是針對表中所有數(shù)據(jù)記錄的查詢,而是要找出滿足某些條件的數(shù)據(jù)記錄。此時我們可以在SELECT語句中使用WHERE子句,其語法格式如下: SELECT*|字段列表FROM表名
WHERE查詢條件說明:查詢條件可以是:比較表達式、邏輯表達式、以及其他一些謂詞構成的表達式(字符串模糊匹配LIKE、數(shù)據(jù)范圍BETWEEN、列表數(shù)據(jù)IN、空值判定ISNULL等)。2.使用比較運算符進行查詢簡單查詢WHERE子句允許使用的比較運算符如下表所示:2.使用比較運算符進行查詢操作案例知識點概述示例5-4運行結果如下:查詢student表中女學生的信息。操作案例知識點概述示例5-5運行結果如下:查詢course表中超過4個學分(credit)的課程信息。簡單查詢WHERE子句允許使用的邏輯運算符如下表所示:3.使用邏輯運算符進行查詢操作案例知識點概述示例5-6運行結果如下:查詢student表中1995年出生的學生信息。操作案例知識點概述示例5-7運行結果如下:查詢student表中“軟件131”班級的女生、以及其他班級的男生。簡單查詢在WHERE子句中,通過LIKE關鍵字與“%”和“_”兩個通配符的使用,可以對數(shù)據(jù)表中的數(shù)據(jù)進行模糊查詢。這兩個通配符的含義如下所示:百分號(%):表示匹配0個或者任意多個字符。下劃線(_):表示匹配任意一個字符。說明:如果需要查詢出包含下劃線“_”的數(shù)據(jù),在進行模糊查詢時,需要加一個“\”進行轉義,表示為“\_”的形式。4.使用LIKE進行模糊查詢操作案例知識點概述示例5-8運行結果如下:從student表中檢索出所有姓“楊”的學生信息。操作案例知識點概述示例5-9運行結果如下:從course表中檢索出課程名稱(cName)中包含“設計”的課程信息。操作案例知識點概述示例5-10運行結果如下:從student表中檢索出姓名(sName)的第二個字是“偉”和“先”的學生信息。簡單查詢在WHERE子句中,可以使用BETWEENAND關鍵字對指定字段的某一范圍內(nèi)的數(shù)據(jù)進行比較查詢,其與使用“>=”且“<=”的功能一樣。其語法格式如下:
字段名[NOT]BETWEEN值1AND值2說明:指定字段的值(不)在值1和值2之間。5.使用BETWEEN…AND進行范圍比較查詢操作案例知識點概述示例5-11運行結果如下:查詢student表中1995年出生的學生信息(使用BETWEENAND關鍵字)。操作案例知識點概述示例5-12運行結果如下:從score表中查詢出成績(grade)不在60-89分之間的學生成績信息。簡單查詢?nèi)绻侄蔚娜≈捣秶皇且粋€連續(xù)的區(qū)間,而是一些離散的值,可以使用IN關鍵字對指定字段進行范圍比對查詢。其語法格式如下:
字段名[NOT]IN(值1[,值2,值3,…])說明:指定字段的值(不)在括號中列出的值之中。6.使用IN進行范圍比對查詢操作案例知識點概述示例5-13運行結果如下:查詢student表中學號(sNo)為1308013101、1309122503、1312054904的學生信息。簡單查詢空值(NULL)是一個特殊的值,它僅僅是一個符號,不等于空字符串,也不等于0??罩蹬袛嗟恼Z法格式如下:
字段名IS[NOT]NULL7.使用空值(NULL)的判斷進行查詢操作案
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- CH-5兒童各年齡期保健課件
- 2025年全球及中國纜索式起重機行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國高壓有載分接開關行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國可見光波段高光譜成像(HSI)設備行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球墻磨機開關行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國打印貼標機和耗材行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球工業(yè)PTFE密封件行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球超高頻RFID一次性腕帶行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球便攜手持式光譜儀行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球除濕白帶丸行業(yè)調(diào)研及趨勢分析報告
- 建設銀行對賬單英文翻譯模板【英國簽證】
- 法醫(yī)解剖室管理制度
- 九年級下冊滬教版上?;瘜W5.2酸和堿的性質(zhì)研究 課件
- 益生芽孢桿菌體外抑菌活性及耐藥性研究
- 2023數(shù)聯(lián)網(wǎng)(DSSN)白皮書
- ISO17025經(jīng)典培訓教材
- 餐飲行業(yè)品牌介紹商務宣傳PPT模板
- 東南大學宣講介紹
- 2023年菏澤醫(yī)學??茖W校單招綜合素質(zhì)題庫及答案解析
- 九年級下冊-2023年中考歷史總復習知識點速查速記(部編版)
- GB/T 18103-2022實木復合地板
評論
0/150
提交評論