SQL教程—簡介—語法—SELECT 語句—SELECT DISTINCT 語句
SQL 簡介
關注小編分享更多教程
SQL 是用於訪問和處理資料庫的標準的計算機語言。
SQL 是什麼?
SQL,指結構化查詢語言,全稱是 Structured Query Language。
SQL 讓您可以訪問和處理資料庫。
SQL 是一種 ANSI(American National Standards Institute 美國國家標準化組織)標準的計算機語言。
SQL 能做什麼?
SQL 面向資料庫執行查詢
SQL 可從資料庫取回數據
SQL 可在資料庫中插入新的記錄
SQL 可更新資料庫中的數據
SQL 可從資料庫刪除記錄
SQL 可創建新資料庫
SQL 可在資料庫中創建新表
SQL 可在資料庫中創建存儲過程
SQL 可在資料庫中創建視圖
Advertisements
SQL 可以設置表、存儲過程和視圖的許可權
SQL 是一種標準 - 但是...
雖然 SQL 是一門 ANSI(American National Standards Institute 美國國家標準化組織)標準的計算機語言,但是仍然存在著多種不同版本的 SQL 語言。
然而,為了與 ANSI 標準相兼容,它們必須以相似的方式共同地來支持一些主要的命令(比如 SELECT、UPDATE、DELETE、INSERT、WHERE 等等)。
在您的網站中使用 SQL
要創建一個顯示資料庫中數據的網站,您需要:
RDBMS 資料庫程序(比如 MS Access、SQL Server、MySQL)
使用伺服器端腳本語言,比如 PHP 或 ASP
Advertisements
使用 SQL 來獲取您想要的數據
使用 HTML / CSS
RDBMS
RDBMS 指關係型資料庫管理系統,全稱 Relational Database Management System。
RDBMS 是 SQL 的基礎,同樣也是所有現代資料庫系統的基礎,比如 MS SQL Server、IBM DB2、Oracle、MySQL 以及 Microsoft Access。
RDBMS 中的數據存儲在被稱為表的資料庫對象中。
表是相關的數據項的集合,它由列和行組成。
SQL 語法
資料庫表
一個資料庫通常包含一個或多個表。每個表由一個名字標識(例如:"Websites"),表包含帶有數據的記錄(行)。
在本教程中,我們在 MySQL 的 RUNOOB 資料庫中創建了 Websites 表,用於存儲網站記錄。
我們可以通過以下命令查看 "Websites" 表的數據:
mysql> use RUNOOB;Database changedmysql> set names utf8;Query OK, 0 rows affected (0.00 sec)mysql> SELECT * FROM Websites;+----+--------------+---------------------------+-------+---------+| id | name | url | alexa | country |+----+--------------+---------------------------+-------+---------+| 1 | Google | https://www.google.cm/ | 1 | USA || 2 | 淘寶 | https://www.taobao.com/ | 13 | CN || 3 | 頭條 | http://www.toutiao.com/ | 4689 | CN || 4 | 微博 | http://weibo.com/ | 20 | CN || 5 | Facebook | https://www.facebook.com/ | 3 | USA |+----+--------------+---------------------------+-------+---------+5 rows in set (0.01 sec)
解析
use RUNOOB; 命令用於選擇資料庫。
set names utf8; 命令用於設置使用的字符集。
SELECT * FROM Websites; 讀取數據表的信息。
上面的表包含五條記錄(每一條對應一個網站信息)和5個列(id、name、url、alexa 和country)。
SQL 語句
您需要在資料庫上執行的大部分工作都由 SQL 語句完成。
下面的 SQL 語句從 "Websites" 表中選取所有記錄:
實例
SELECT * FROMWebsites;
在本教程中,我們將為您講解各種不同的 SQL 語句。
請記住...
SQL 對大小寫不敏感:SELECT 與 select 是相同的。
SQL 語句後面的分號?
某些資料庫系統要求在每條 SQL 語句的末端使用分號。
分號是在資料庫系統中分隔每條 SQL 語句的標準方法,這樣就可以在對伺服器的相同請求中執行一條以上的 SQL 語句。
在本教程中,我們將在每條 SQL 語句的末端使用分號。
一些最重要的 SQL 命令
SELECT - 從資料庫中提取數據
UPDATE - 更新資料庫中的數據
DELETE - 從資料庫中刪除數據
INSERT INTO - 向資料庫中插入新數據
CREATE DATABASE - 創建新資料庫
ALTER DATABASE - 修改資料庫
CREATE TABLE - 創建新表
ALTER TABLE - 變更(改變)資料庫表
DROP TABLE - 刪除表
CREATE INDEX - 創建索引(搜索鍵)
DROP INDEX - 刪除索引
註釋:除了 SQL 標準之外,大部分 SQL 資料庫程序都擁有它們自己的專有擴展! |
SQL SELECT 語句
SELECT 語句用於從資料庫中選取數據。
SQL SELECT 語句
SELECT 語句用於從資料庫中選取數據。
結果被存儲在一個結果表中,稱為結果集。
SQL SELECT 語法
SELECT column_name,column_name
FROM table_name;
與
SELECT * FROM table_name;
演示資料庫
在本教程中,我們將使用 RUNOOB 樣本資料庫。
下面是選自 "Websites" 表的數據:
+----+--------------+---------------------------+-------+---------+| id | name | url | alexa | country |+----+--------------+---------------------------+-------+---------+| 1 | Google | https://www.google.cm/ | 1 | USA || 2 | 淘寶 | https://www.taobao.com/ | 13 | CN || 3 | 頭條 | http://www.toutiao.com/ | 4689 | CN || 4 | 微博 | http://weibo.com/ | 20 | CN || 5 | Facebook | https://www.facebook.com/ | 3 | USA |+----+--------------+---------------------------+-------+---------+
SELECT Column 實例
下面的 SQL 語句從 "Websites" 表中選取 "name" 和 "country" 列:
實例
SELECTname,countryFROMWebsites;
輸出結果為:
SELECT * 實例
下面的 SQL 語句從 "Websites" 表中選取所有列:
實例
SELECT * FROMWebsites;
輸出結果為:
結果集中的導航
大多數資料庫軟體系統都允許使用編程函數在結果集中進行導航,比如:Move-To-First-Record、Get-Record-Content、Move-To-Next-Record 等等。
類似這些編程函數不在本教程講解之列。如需學習通過函數
SQL SELECT DISTINCT 語句
SELECT DISTINCT 語句用於返回唯一不同的值。
SQL SELECT DISTINCT 語句
在表中,一個列可能會包含多個重複值,有時您也許希望僅僅列出不同(distinct)的值。
DISTINCT 關鍵詞用於返回唯一不同的值。
SQL SELECT DISTINCT 語法
SELECT DISTINCT column_name,column_name
FROM table_name;
在本教程中,我們將使用 RUNOOB 樣本資料庫。
下面是選自 "Websites" 表的數據:
+----+--------------+---------------------------+-------+---------+| id | name | url | alexa | country |+----+--------------+---------------------------+-------+---------+| 1 | Google | https://www.google.cm/ | 1 | USA || 2 | 淘寶 | https://www.taobao.com/ | 13 | CN || 3 | 菜鳥教程 | http://www.runoob.com/ | 4689 | CN || 4 | 微博 | http://weibo.com/ | 20 | CN || 5 | Facebook | https://www.facebook.com/ | 3 | USA |+----+--------------+---------------------------+-------+---------+
SELECT DISTINCT 實例
下面的 SQL 語句僅從 "Websites" 表的 "country" 列中選取唯一不同的值,也就是去掉 "country" 列重複值:
實例
SELECTDISTINCTcountryFROMWebsites;
輸出結果: