SQL教程
關係模型
id class_id name gender score
1 1 小明 M 90
2 1 小紅 F 95
對於關係表,有個很重要的約束,就是任意兩條記錄不能重複。不能重複不是指兩條記錄不完全相同,而是指能夠通過某個欄位唯一區分出不同的記錄,這個欄位被稱為主鍵。
當我們用主鍵唯一標識記錄時,我們就可以在students表中確定任意一個學生的記錄:
id name other columns...
1 小明 ...
2 小紅 ...
由於一個班級可以有多個學生,在關係模型中,這兩個表的關係可以稱為“一對多”,即一個classes的記錄可以對應多個students表的記錄。
id class_id name other columns...
1 1 小明 ...
2 1 小紅 ...
5 2 小白 ...
在students表中,通過class_id的欄位,可以把資料與另一張表關聯起來,這種列稱為外來鍵。
索引是關聯式資料庫中對某一列或多個列的值進行預排序的資料結構。通過使用索引,可以讓資料庫系統不必掃描整個表,而是直接定位到符合條件的記錄,這樣就大大加快了查詢速度。
查詢資料
基本查詢
使用SELECT * FROM students時,SELECT是關鍵字,表示將要執行一個查詢,*表示“所有列”,FROM表示將要從哪個表查詢
該SQL將查詢出students表的所有資料。注意:查詢結果也是一個二維表,它包含列名和每一行的資料
條件查詢
SELECT語句可以通過WHERE條件來設定查詢條件,查詢結果是滿足查詢條件的記錄。例如,要指定條件“分數在80分或以上的學生”,寫成WHERE條件就是SELECT * FROM students WHERE score >= 80。
其中,WHERE關鍵字後面的score >= 80就是條件。score是列名,該列儲存了學生的成績,因此,score >= 80就篩選出了指定條件的記錄
SELECT * FROM <表名> WHERE <條件表示式>
投影查詢
如果我們只希望返回某些列的資料,而不是所有列的資料,我們可以用SELECT 列1, 列2, 列3 FROM …,讓結果集僅包含指定列。這種操作稱為投影查詢。
students表中返回id、score和name這三列:
SELECT id, score, name FROM students;
使用SELECT 列1, 列2, 列3 FROM …時,還可以給每一列起個別名,這樣,結果集的列名就可以與原表的列名不同。它的語法是SELECT 列1 別名1, 列2 別名2, 列3 別名3 FROM …。
例如,以下SELECT語句將列名score重新命名為points,而id和name列名保持不變:
SELECT id, score points, name FROM students;
投影查詢同樣可以接WHERE條件,實現複雜的查詢:
SELECT id, score points, name FROM students WHERE gender = ‘M’;
(待補充)
相關文章
- SQL Server教程SQLServer
- SQL教程——庫的管理SQL
- SQL教程——表的管理SQL
- Spark SQL 教程: 通過示例瞭解 Spark SQLSparkSQL
- Spark SQL 教程: 透過示例瞭解 Spark SQLSparkSQL
- SQL入門-進階教程SQL
- Oracle SQL Developer安裝教程OracleSQLDeveloper
- SQL基礎教程問題SQL
- 【Oracle】--PL/SQL匯入Oracle sql指令碼"傻瓜教程"OracleSQL指令碼
- 《SQL基礎教程》筆記(3)SQL筆記
- SQL語言基本教程(一) (轉)SQL
- 《SQL基礎教程》簡要總結SQL
- SQL Server2012 T-SQL基礎教程(二)SQLServer
- MS SQL基礎教程:SQL Server安全性管理的途徑SQLServer
- MyBatis 動態 SQL 最全教程,這樣寫 SQL 太優雅了!MyBatisSQL
- SQL教程——常見的約束型別SQL型別
- SQL教程——常見的資料型別SQL資料型別
- SQL查詢語言基本教程(2) (轉)SQL
- SQL查詢語言基本教程(3) (轉)SQL
- LangChain SQL介紹以及使用Qwen1.5執行SQL查詢教程LangChainSQL
- 教程:Apache Spark SQL入門及實踐指南!ApacheSparkSQL
- (一)《SQL進階教程》學習記錄--CASESQL
- SQL Server Profiler使用教程,通俗易懂才是王道SQLServer
- PL/Sql循序漸進全面學習教程--OracleSQLOracle
- (二)《SQL進階教程》學習記錄--GROUP BY、PARTITION BYSQL
- 《SQL基礎教程(第2版)》簡單筆記SQL筆記
- MS SQL基礎教程:備份和恢復概述SQL
- 10、Entity Framework Core 3.1入門教程-執行原生SQLFrameworkSQL
- 好程式設計師Java教程:SQL語言之檢視程式設計師JavaSQL
- C#快速入門教程(27)—— SQL Server資料庫C#SQLServer資料庫
- TDengine 如何進行 SQL 寫入?官方最全教程來了SQL
- 經典入門教程:在ASP中使用SQL 語句SQL
- SQL Server 2005教程之元件完全解除安裝SQLServer元件
- 深入淺出SQL教程之Group by和Having(轉貼)SQL
- SQL Prompt教程:舊式聯接語法(ST001)SQL
- DbForge Studio for SQL Server入門教程:如何編輯資料SQLServer
- 【Oracle】常用工具-oracle sql developer快速安裝使用教程OracleSQLDeveloper
- Oracle PL/SQL語言初級教程之異常處理OracleSQL