第8章 SQL语言(一)
1、SQL(Structured Query Language),結構化查詢語言,1974年Boyce和Chhamberlin提出,是一種通用的、功能強大的關系數據庫的標準語言
2、SQL包含數據查詢、數據操縱、數據定義、數據控制功能
3、基本表:實際存儲在數據庫中的表(真實的表)
4、視圖:由若干個基本表或其他視圖導出的表,是一個虛表(虛表)
數據庫語言概述
1、任何一個數據庫系統都應向用戶提供一種數據庫語言,包含數據定義語言和數據操縱語言(不同的數據庫有自己的數據庫語言,例如:mysql數據庫的SQL語言,oracle數據庫的SQL語言,大部分是相同的,但是部分地方存在“方言”差異,標注SQL也就是保證了大部分語法的相似)
2、SQL語言是集數據定義和數據操縱為一體的典型數據庫語言
3、數據定義語言(Data Definition Language,DDL),用來定義數據庫模式。包含數據庫模式定義、數據庫存儲結構和存取方法定義,數據庫模式的修改和刪除功能
4、數據操縱語言(Data Manipulation Language,DML),用來表示用戶對數據庫的操作請求,主要包含增刪改查(也是開發人員最常使用到的),其中,最核心的就是數據的查詢
5、SQL特點
- 綜合統一
- 高度非過程化:進行數據操作時,只需要說做什么,無需指出怎么做
- 面向集合的操作方式
- 兩種使用方式:用于在終端輸入sql命令對數據庫進行操作(也稱為自含式語言),將sql語言嵌入到高級語言程序中(嵌入式語言)
- 語言簡潔,易學易用,核心動詞9個,包含如下4類:
(1)數據查詢:select,用于查詢數據,使用最多的一個動詞(查詢)
(2)數據定義:create、drop、alter,用于創建新表、刪除表、修改表(表結構)
(3)數據操縱:insert、update、delete,用于數據的插入、修改和刪除(對表中的數據)
(4)數據控制:grant、revoke,用于數據庫對象訪問的權限授權和收回授權(賦予權限和收回權限)
6、SQL支持三級模式結構:外模式(視圖)、模式(基本表)、內模式(存儲文件)
7、SQL的基本組成
- 數據定義語言:提供定義關系模式和視圖、刪除關系和視圖、修改關系模式的命令
- 交互式數據操縱語言:增刪改查的命令
- 事務控制:事務開始和結束的命令
- 嵌入式sql和動態sql:高級語言中混合sql命令
- 完整性:數據滿足完整性約束條件,不滿足條件則無法執行
- 權限管理:數據定義中包含對關系和視圖的訪問權限
8、SQL支持的內部域類型(SQL數據類型)
| 類型 | 說明 |
| char(n) | 固定長度字符串,表示n個字符的固定長度字符串 |
| varchar(n) | 可變長度字符串,表示最多可以有n個字符的字符串 |
| int | 整型,也可以用integer |
| smallint | 短整型 |
| numerical(p,d) | 定點數p為整數位,d為小數位 |
| real | 浮點型 |
| double | 雙精度浮點型 |
| float(n) | n為浮點型 |
| boolean | 布爾型 |
| date | 日期型 |
| time | 時間型 |
9、創建表(create table)
語法格式:create table 表名(列名1 數據類型 列級完整性約束條件,列名2?數據類型 列級完整性約束條件,...,表級完整性約束條件)
列級完整性約束條件主要有:非空、取值唯一等。表約束主要有外鍵等
【題外話:感覺mysql做得挺好,依據help create,看著給出的提示都能寫出SQL代碼,還無需記憶太多,但關鍵動詞還是要自己能記憶】
例題:建立一個供應商、零件數據庫。其中關系供應商S(Sno,Sname,Status, City)屬性名分別表示供應商代碼、供應商名、供應商狀態和供應商所在城市;關系零件P(Pno,Pname, Color,Weight,City)屬性名分別表示零件號、零件名、顏色、重量及產地。該數據庫要滿足如下:
(1)供應商代碼不能為空,且值是唯一的,供應商的名也是唯一的。
(2)零件號不能為空,且值是唯一的;零件名不能為空。
(3)一個供應商可以供應多個零件,而一個零件可以由多個供應商供應。
分析:
1、首先,根據題意,存在兩個基本表,分別是供應商表和零件表,表名和列名都給出了,建表的時候需要注意一下約束條件即可,這兩個表的創建基本沒有什么問題
2、根據(3),說明供應商和零件之間是多對多的關系,那么應該建立一個聯系表,表名為SP,使用基本表的名字來構成聯系表,應該沒有什么問題,哪個供應商供應哪一個型號的零件,故需要Sno和Pno來構成聯系表的主碼,且分別又是基本表中的,所以還要設置外碼約束,這點應該也沒有什么問題,最難的是:聯系表中還有其他的屬性,供應商在哪些城市進行零件生產,這是零件的產地,也應該算一個屬性;其次是供應商狀態,對該種零件的供應狀況。
經過分析,創建表的時候需要注意單詞不要寫錯,如:foreign primary references unique create這幾個看起來比較長的單詞,還有就是經常使用電腦,自己手寫的時候容易寫錯,要多練習練習。
總結
以上是生活随笔為你收集整理的第8章 SQL语言(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql8.0.23下载安装详细教程
- 下一篇: ef 数据迁移mysql_07116.3