SQL 是什么?
- SQL 指結構化查詢語言,全稱是 Structured Query Language。
- SQL 讓您可以訪問和處理數據庫,包括數據插入、查詢、更新和刪除。
- SQL 在1986年成為 ANSI(American National Standards Institute 美國國家標准化組織)的一項標准,在 1987 年成為國際標准化組織(ISO)標准。
2.SQL 能做什么?
- SQL 面向數據庫執行查詢
- SQL 可從數據庫取回數據
- SQL 可在數據庫中插入新的記錄
- SQL 可更新數據庫中的數據
- SQL 可從數據庫刪除記錄
- SQL 可創建新數據庫
- SQL 可在數據庫中創建新表
- SQL 可在數據庫中創建存儲過程
- SQL 可在數據庫中創建視圖
- SQL 可以設置表、存儲過程和視圖的權限
3.SQL 是一種標准 - 但是...
雖然 SQL 是一門 ANSI(American National Standards Institute 美國國家標准化組織)標准的計算機語言,但是仍然存在着多種不同版本的 SQL 語言。
然而,為了與 ANSI 標准相兼容,它們必須以相似的方式共同地來支持一些主要的命令(比如 SELECT、UPDATE、DELETE、INSERT、WHERE 等等)。
4.重點
4.SQL 是用於訪問和處理數據庫的標准的計算機語言。
一個數據庫通常包含一個或多個表。
SQL 語句就是
創建數據庫,對數據進行增刪改查等操作的語句。(注意SQL 對大小寫不敏感!)
SQL(結構化查詢語言)包括 DML 和 DDL:
5.SQL分類
數據定義語言:簡稱DDL(Data Definition Language),用來定義數據庫對象:數據庫,表,列等。關鍵字:create,alter,drop等
數據操作語言:簡稱DML(Data Manipulation Language),用來對數據庫中表的記錄進行更新。關鍵字:insert,delete,update等
數據控制語言:簡稱DCL(Data Control Language),用來定義數據庫的訪問權限和安全級別,及創建用戶。
數據查詢語言:簡稱DQL(Data Query Language),用來查詢數據庫中表的記錄。關鍵字:select,from,where等
————————————————
就是所謂的增刪改查了
- SELECT - 從數據庫表中獲取數據
- UPDATE - 更新數據庫表中的數據
- DELETE - 從數據庫表中刪除數據
- INSERT INTO - 向數據庫表中插入數據
5.2
DDL:數據定義語言(DDL)
讓我們有能力創建或刪除表格。我們也可以定義索引(鍵),規定表之間的鏈接,以及施加表間的約束。
-CREATE DATABASE - 創建新數據庫
-CREATE TABLE - 創建新表
-ALTER TABLE - 變更(改變)數據庫表
6.主鍵
6.1 對於關系表,有個很重要的約束,就是任意兩條記錄不能重復。不能重復不是指兩條記錄不完全相同,而是指能夠通過某個字段唯一區分出不同的記錄
這個字段被稱為主鍵。
6.2 聯合主鍵:關系數據庫實際上還允許通過多個字段唯一標識記錄,即兩個或更多的字段都設置為主鍵,這種主鍵被稱為聯合主鍵。對於聯合主鍵,允許一列 有重復,只要不是所有主鍵列都重復即可。沒有必要的情況下,我們盡量不使用聯合主鍵,因為它給關系表帶來了復雜度的上升。
學生表(學號,姓名,性別,班級)
其中每個學生的學號是唯一的,學號就是一個主鍵
課程表(課程編號,課程名,學分)
其中課程編號是唯一的,課程編號就是一個主鍵
成績表(學號,課程號,成績)
成績表中單一一個屬性無法唯一標識一條記錄,學號和課程號的組合才可以唯一標識一條記錄,所以學號和課程號的屬性組是一個主鍵(也就是聯合主鍵了)
6.3 外鍵:用來和其他表建立聯系用的,一個表的外鍵是另一表的主鍵, 外鍵可以有重復的, 可以是空值,從上面的例子來說:成績表中的學號不是成績表的主鍵,但它 和學生表中的學 號相對應,並且學生表中的學號是學生表的主鍵,則稱成績表中的學號是成績表的外鍵
6.4 定義主鍵和外鍵主要是為了維護關系數據庫的完整性,總結一下:
6.4.1.主鍵是能確定一條記錄的唯一標識,比如,一條記錄包括身份正號,姓名,年齡。身份證號是唯一能確定你這個人的,其他都可能有重復,
所以,身份證號是主鍵。
6.4.2.外鍵用於與另一張表的關聯。是能確定另一張表記錄的字段,用於保持數據的一致性。比如,A表中的一個字段,是B表的主鍵,那他就可以是A表的外鍵
6.7 索引索引是一種數據結構,例如B-Tree,這種數據結構是需要額外的寫入和存儲為代價來提高表上數據檢索的速度。一旦建立了索引后,
數據庫中查詢優化器使用索引來快速定位數據,然后就無需掃描表中給定查詢的每一行了。其中。當使用主鍵或唯一鍵創建表時,MySQL會自動創建名為PRIMARY的特殊索引, 該索引稱為聚簇索引。PRIMARY索引是比較特殊的,這個索引本身與數據一起存儲在同一個表中。另外除PRIMARY索引之外的其他索引稱為二級索引或非聚簇索引。說白了就是為了讓數據更快的查詢到而弄出來的數據結構。
7. RDBMS
RDBMS 指的是關系型數據庫管理系統。
RDBMS 是 SQL 的基礎,同樣也是所有現代數據庫系統的基礎,比如 MS SQL Server, IBM DB2, Oracle, MySQL 以及 Microsoft Access。
RDBMS 中的數據存儲在被稱為表(tables)的數據庫對象中。
表是相關的數據項的集合,它由列和行組成。
8.SQL通用語法
SQL語句可以單行或多行書寫,以分號結尾
可使用空格和縮進來增強語句的可讀性
MySQL數據庫的SQL語句不區分大小寫,關鍵字建議使用大寫
例如:SELECT * FROM user。
同樣可以使用/**/的方式完成注釋