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;

輸出結果:

Advertisements

你可能會喜歡