1. 程式人生 > >SQL語法大全

SQL語法大全

SQL SELECT

SQL SELECT 語句

SELECT 語句用於從表中選取資料。

結果被儲存在一個結果表中(稱為結果集)。

SQL SELECT 語法

SELECT 列名稱 FROM 表名稱

以及:

SELECT * FROM 表名稱

註釋:SQL 語句對大小寫不敏感。SELECT 等效於 select。

SQL SELECT DISTINCT

SQL SELECT DISTINCT 語句

在表中,可能會包含重複值。這並不成問題,不過,有時您也許希望僅僅列出不同(distinct)的值。

關鍵詞 DISTINCT 用於返回唯一不同的值。

語法:

SELECT DISTINCT 列名稱 FROM 表名稱

SQL WHERE

WHERE 子句

如需有條件地從表中選取資料,可將 WHERE 子句新增到 SELECT 語句。

語法

SELECT 列名稱 FROM 表名稱 WHERE 列 運算子 值

下面的運算子可在 WHERE 子句中使用:

操作符 描述
= 等於
<> 不等於
> 大於
< 小於
>= 大於等於
<= 小於等於
BETWEEN 在某個範圍內
LIKE 搜尋某種模式

註釋:在某些版本的 SQL 中,操作符 <> 可以寫為 !=。

SQL AND & OR

AND 和 OR 運算子用於基於一個以上的條件對記錄進行過濾。

AND 和 OR 運算子

AND 和 OR 可在 WHERE 子語句中把兩個或多個條件結合起來。

如果第一個條件和第二個條件都成立,則 AND 運算子顯示一條記錄。

如果第一個條件和第二個條件中只要有一個成立,則 OR 運算子顯示一條記錄。

原始的表 (用在例子中的):

LastName FirstName Address City
Adams John Oxford Street London
Bush George Fifth Avenue New York
Carter Thomas Changan Street Beijing
Carter William Xuanwumen 10 Beijing

SQL ORDER BY

ORDER BY 語句用於對結果集進行排序。

ORDER BY 語句

ORDER BY 語句用於根據指定的列對結果集進行排序。

ORDER BY 語句預設按照升序對記錄進行排序。

如果您希望按照降序對記錄進行排序,可以使用 DESC 關鍵字。

SQL INSERT INTO

INSERT INTO 語句

INSERT INTO 語句用於向表格中插入新的行。

語法

INSERT INTO 表名稱 VALUES (值1, 值2,....)

我們也可以指定所要插入資料的列:

INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)

SQL UPDATE

Update 語句

Update 語句用於修改表中的資料。

語法:

UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值

SQL DELETE

DELETE 語句

DELETE 語句用於刪除表中的行。

語法

DELETE FROM 表名稱 WHERE 列名稱 = 值

SQL TOP

TOP 子句

TOP 子句用於規定要返回的記錄的數目。

對於擁有數千條記錄的大型表來說,TOP 子句是非常有用的。

註釋:並非所有的資料庫系統都支援 TOP 子句。

SQL Server 的語法:

SELECT TOP number|percent column_name(s)
FROM table_name

SQL LIKE

LIKE 操作符用於在 WHERE 子句中搜索列中的指定模式。

LIKE 操作符

LIKE 操作符用於在 WHERE 子句中搜索列中的指定模式。

SQL LIKE 操作符語法

SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern

SQL 萬用字元

在搜尋資料庫中的資料時,您可以使用 SQL 萬用字元。

SQL 萬用字元

在搜尋資料庫中的資料時,SQL 萬用字元可以替代一個或多個字元。

SQL 萬用字元必須與 LIKE 運算子一起使用。

在 SQL 中,可使用以下萬用字元:

萬用字元 描述
% 替代一個或多個字元
_ 僅替代一個字元
[charlist] 字元列中的任何單一字元

[^charlist]

或者

[!charlist]

不在字元列中的任何單一字元

SQL IN

IN 操作符

IN 操作符允許我們在 WHERE 子句中規定多個值。

SQL IN 語法

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...)

SQL BETWEEN

BETWEEN 操作符在 WHERE 子句中使用,作用是選取介於兩個值之間的資料範圍。

BETWEEN 操作符

操作符 BETWEEN ... AND 會選取介於兩個值之間的資料範圍。這些值可以是數值、文字或者日期。

SQL BETWEEN 語法

SELECT column_name(s)
FROM table_name
WHERE column_name
BETWEEN value1 AND value2

SQL Alias(別名)

表的 SQL Alias 語法

SELECT column_name(s)
FROM table_name
AS alias_name

列的 SQL Alias 語法

SELECT column_name AS alias_name
FROM table_name

SQL JOIN

SQL join 用於根據兩個或多個表中的列之間的關係,從這些表中查詢資料。

不同的 SQL JOIN

除了我們在上面的例子中使用的 INNER JOIN(內連線),我們還可以使用其他幾種連線。

下面列出了您可以使用的 JOIN 型別,以及它們之間的差異。

  • JOIN: 如果表中有至少一個匹配,則返回行
  • LEFT JOIN: 即使右表中沒有匹配,也從左表返回所有的行
  • RIGHT JOIN: 即使左表中沒有匹配,也從右表返回所有的行
  • FULL JOIN: 只要其中一個表中存在匹配,就返回行

SQL INNER JOIN

SQL INNER JOIN 關鍵字

在表中存在至少一個匹配時,INNER JOIN 關鍵字返回行。

INNER JOIN 關鍵字語法

SELECT column_name(s)
FROM table_name1
INNER JOIN table_name2 
ON table_name1.column_name=table_name2.column_name

註釋:INNER JOIN 與 JOIN 是相同的。

SQL LEFT JOIN

LEFT JOIN 關鍵字會從左表 (table_name1) 那裡返回所有的行,即使在右表 (table_name2) 中沒有匹配的行。

LEFT JOIN 關鍵字語法

SELECT column_name(s)
FROM table_name1
LEFT JOIN table_name2 
ON table_name1.column_name=table_name2.column_name

註釋:在某些資料庫中, LEFT JOIN 稱為 LEFT OUTER JOIN。

SQL RIGHT JOIN

RIGHT JOIN 關鍵字會右表 (table_name2) 那裡返回所有的行,即使在左表 (table_name1) 中沒有匹配的行。

RIGHT JOIN 關鍵字語法

SELECT column_name(s)
FROM table_name1
RIGHT JOIN table_name2 
ON table_name1.column_name=table_name2.column_name

註釋:在某些資料庫中, RIGHT JOIN 稱為 RIGHT OUTER JOIN。

SQL FULL JOIN

SQL FULL JOIN 關鍵字

只要其中某個表存在匹配,FULL JOIN 關鍵字就會返回行。

FULL JOIN 關鍵字語法

SELECT column_name(s)
FROM table_name1
FULL JOIN table_name2 
ON table_name1.column_name=table_name2.column_name

註釋:在某些資料庫中, FULL JOIN 稱為 FULL OUTER JOIN。

SQL UNION 和 UNION ALL

SQL UNION 操作符

UNION 操作符用於合併兩個或多個 SELECT 語句的結果集。

請注意,UNION 內部的 SELECT 語句必須擁有相同數量的列。列也必須擁有相似的資料型別。同時,每條 SELECT 語句中的列的順序必須相同。

SQL UNION 語法

SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2

註釋:預設地,UNION 操作符選取不同的值。如果允許重複的值,請使用 UNION ALL。

SQL UNION ALL 語法

SELECT column_name(s) FROM table_name1
UNION ALL
SELECT column_name(s) FROM table_name2

另外,UNION 結果集中的列名總是等於 UNION 中第一個 SELECT 語句中的列名。

SQL SELECT INTO

SQL SELECT INTO 語句可用於建立表的備份復件。

SELECT INTO 語句

SELECT INTO 語句從一個表中選取資料,然後把資料插入另一個表中。

SELECT INTO 語句常用於建立表的備份復件或者用於對記錄進行存檔。

SQL CREATE DATABASE

CREATE DATABASE 用於建立資料庫。

SQL CREATE DATABASE 語法

CREATE DATABASE database_name

SQL CREATE TABLE

CREATE TABLE 語句

CREATE TABLE 語句用於建立資料庫中的表。

SQL CREATE TABLE 語法

CREATE TABLE 表名稱
(
列名稱1 資料型別,
列名稱2 資料型別,
列名稱3 資料型別,
....
)

資料型別(data_type)規定了列可容納何種資料型別。下面的表格包含了SQL中最常用的資料型別:

資料型別 描述
  • integer(size)
  • int(size)
  • smallint(size)
  • tinyint(size)
僅容納整數。在括號內規定數字的最大位數。
  • decimal(size,d)
  • numeric(size,d)

容納帶有小數的數字。

"size" 規定數字的最大位數。"d" 規定小數點右側的最大位數。

char(size)

容納固定長度的字串(可容納字母、數字以及特殊字元)。

在括號中規定字串的長度。

varchar(size)

容納可變長度的字串(可容納字母、數字以及特殊的字元)。

在括號中規定字串的最大長度。

date(yyyymmdd) 容納日期。

SQL 約束 (Constraints)

SQL 約束

約束用於限制加入表的資料的型別。

可以在建立表時規定約束(通過 CREATE TABLE 語句),或者在表建立之後也可以(通過 ALTER TABLE 語句)。

我們將主要探討以下幾種約束:

  • NOT NULL
  • UNIQUE
  • PRIMARY KEY
  • FOREIGN KEY
  • CHECK
  • DEFAULT

SQL NOT NULL 約束

SQL NOT NULL 約束

NOT NULL 約束強制列不接受 NULL 值。

NOT NULL 約束強制欄位始終包含值。這意味著,如果不向欄位新增值,就無法插入新記錄或者更新記錄。

下面的 SQL 語句強制 "Id_P" 列和 "LastName" 列不接受 NULL 值:

CREATE TABLE Persons
(
Id_P int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

SQL UNIQUE 約束

SQL UNIQUE 約束

UNIQUE 約束唯一標識資料庫表中的每條記錄。

UNIQUE 和 PRIMARY KEY 約束均為列或列集合提供了唯一性的保證。

PRIMARY KEY 擁有自動定義的 UNIQUE 約束。

請注意,每個表可以有多個 UNIQUE 約束,但是每個表只能有一個 PRIMARY KEY 約束。

SQL PRIMARY KEY 約束

SQL PRIMARY KEY 約束

PRIMARY KEY 約束唯一標識資料庫表中的每條記錄。

主鍵必須包含唯一的值。

主鍵列不能包含 NULL 值。

每個表都應該有一個主鍵,並且每個表只能有一個主鍵。

SQL FOREIGN KEY 約束

SQL FOREIGN KEY 約束

一個表中的 FOREIGN KEY 指向另一個表中的 PRIMARY KEY。

讓我們通過一個例子來解釋外來鍵。請看下面兩個表:

"Persons" 表:

Id_P LastName FirstName Address City
1 Adams John Oxford Street London
2 Bush George Fifth Avenue New York
3 Carter Thomas Changan Street Beijing

"Orders" 表:

Id_O OrderNo Id_P

相關推薦

sql語法大全(儲存)

一、基礎 1、說明:建立資料庫 CREATE DATABASE database-name 2、說明:刪除資料庫 drop database dbname 3、說明:備份sql server — 建立 備份資料的 device USE maste

SQL語法大全

SQL SELECT SQL SELECT 語句 SELECT 語句用於從表中選取資料。 結果被儲存在一個結果表中(稱為結果集)。 SQL SELECT 語法 SELECT 列名稱 FROM 表名稱 以及: SELECT *

sql server 修改表結構語法大全

  1.增加欄位      alter table docdsp    add dspcode char(200) 2.刪除欄位      alter table table_name drop column column_name 3.修改欄位型別      alter

MySQL之SQL語法例項大全:1-10

1.從table中讀取某一Column(例如:dept_name) 程式碼: select dept_name from departments; 結果: 2.從table中讀取全部Colum

淘寶數據庫OceanBase SQL編譯器部分 源代碼閱讀--解析SQL語法

git itemtype 工具 銷毀 cin bsp 年輕 you any OceanBase是阿裏巴巴集團自主研發的可擴展的關系型數據庫,實現了跨行跨表的事務,支持數千億條記錄、數百TB數據上的SQL操作。在阿裏巴巴集團下,OceanBase數據庫支持了多個重

SQL 語法之“增”、“刪”、“改”、“查”

group by num having div 沒有 popu 模糊查詢 上海 條件 /* 四、查 1.普通查詢 語法:select <列名> from <表名> [where <查詢條件表達試>] [order by &

008-Hadoop Hive sql語法詳解3-DML 操作:元數據存儲

pan 查詢 寫入 所有 not insert語句 int 寫入文件 文件系統 一、概述 hive不支持用insert語句一條一條的進行插入操作,也不支持update操作。數據是以load的方式加載到建立好的表中。數據一旦導入就不可以修改。 DML包括:INSERT插入

MySQL語法大全_自己整理的學習筆記

用戶名 where ont mailto body 整理 若有 文本 密碼 select * from emp; #註釋 #---------------------------#----命令行連接MySql--------- #啟動mysql服務器net start

基於mysql的一些sql語法

文本搜索 print use 客戶 .com fault lac images 磁盤 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 } p.p2 {

sql語法

sqlSQL 約束 (Constraints)SQL 約束約束用於限制加入表的數據的類型。可以在創建表時規定約束(通過 CREATE TABLE 語句),或者在表創建之後也可以(通過 ALTER TABLE 語句)。我們將主要探討以下幾種約束:NOT NULLUNIQUEPRIMARY KEYFOREIGN

Sql Server】經典SQL語句大全

left 提高 status 需要 minute etime 路徑 求和 組合 一、基礎 1、說明:創建數據庫 CREATE DATABASE database-name 2、說明:刪除數據庫 drop database dbname 3、說明:備份sql

017-Hadoop Hive sql語法詳解7-去重排序、數據傾斜

col 去重排序 sel cluster 可能 更多 分發 指定 clust 一、數據去重排序 1.1、去重   distinct與group by   盡量避免使用distinct進行排重,特別是大表操作,用group by代替   -- 不建議 selec

016-Hadoop Hive sql語法詳解6-job輸入輸出優化、數據剪裁、減少job數、動態分區

分享 hive table 取數 nbsp put union 正在 style 一、job輸入輸出優化 善用muti-insert、union all,不同表的union all相當於multiple inputs,同一個表的union all,相當map一次輸出多條

SQL語法介紹

geo ble pro reference des ctr org table calc 一、Select 查詢 語法: mysql> help selectName: ‘SELECT‘Description:Syntax:SELECT [ALL | DISTI

Mongodb大數據語法大全

mongodb大數據語法大全JSON和MONGODBJSON不止是一種交換數據的方式,也是一種存儲數據的良好方式,實際上MONGODB並未使用JSON存儲數據,而是使用由MONGODB團隊開發的一種稱為BSON的開放數據格式。面向文檔存儲BSON BSON是一個開放標準,BSON存儲使用的空間比JSNO(Co

ORACLE分頁查詢SQL語法——高效的分頁

推薦 col 停止 sql 條件 esc 記錄 table select --1:無ORDER BY排序的寫法。(效率最高)--(經過測試,此方法成本最低,只嵌套一層,速度最快!即使查詢的數據量再大,也幾乎不受影響,速度依然!) SELECT * FROM (SEL

sql語法總結

div 更新 sta class pos 語法 創建表 gpo .com 1、創建表 、 創建時間 default current_imestamp(6) 更新時間 default current_timestamp(6) on update current_timest

2. SQL 語法

sqlserve 數據 數據庫表 con nds not 聲明 upd ros SQL 語法規則 SQL語句總是以關鍵字開始。 SQL語句以分號結尾。 SQL不區分大小寫,意味著update與UPDATE相同 數據庫表 數據庫通常包含一個或多個表。每個表都用一個名稱標

SQL語句大全

大於等於 算術 特定 per 字符 ger 選擇 小年 外連接 SQL語句實例 表操作 例 1 對於表的教學管理數據庫中的表 STUDENTS ,可以定義如下: CREATE TABLE STUDENTS (SNO NUMERIC

幾個很好用SQL語法(SqlServer)

base class ESS lse 簡單 table 可能 錯誤 mat 1,MERGE INTO 語句: 這個語法僅需要一次全表掃描就完成了全部工作,執行效率要高於INSERT+UPDATE,作用還是很強大的(簡單的說就是它可以批量更新和插入處理一個數據集,如果存在就更