天天看點

肝通宵寫了三萬字把SQL資料庫的所有指令,函數,運算符講得明明白白講解,内容實在豐富,建議收藏+三連好評!(一)

文章目錄

大家可能不習慣SQL大寫的習慣,但是真正的規範就是要大寫,是以大家要慢慢習慣我用大寫的方式講解。在下面所有的講解中,我将會以基本文法,案例,聯系形式講解,進而加強對每一個語句的使用和認識。本篇文章是筆者整理了整整一個通宵才寫出,希望大家三連好評,謝謝。當然,擁有本篇文章,你将會完全掌握mysql的所有指令使用,不再用去購買或者雜亂學習。本篇内容暫時講解資料庫的篩選部分,因為資料庫的最初入門如建立,備份等都有講過,魔法傳送:傳送門

該傳送門内容有:

肝通宵寫了三萬字把SQL資料庫的所有指令,函數,運算符講得明明白白講解,内容實在豐富,建議收藏+三連好評!(一)

SELECT 從資料庫中提取資料
UPDATE  更新資料庫中的資料
DELETE 從資料庫中删除資料 
INSERT INTO 将新資料插入資料庫
CREATE DATABASE 建立一個新的資料庫
ALTER DATABASE  修改資料庫
CREATE TABLE    建立一個新表
ALTER TABLE     修改表
DROP TABLE      删除表
CREATE INDEX    建立索引(搜尋鍵)
DROP INDEX  删除索引      

該SELECT語句用于從資料庫中選擇資料。傳回的資料存儲在一個結果表中,稱為結果集。

SELECT 文法:

SELECT column1, column2, ...      

此處,column1、column2、… 是要從中選擇資料的表的字段名稱。如果要選擇表中的所有可用字段,請使用以下文法:

SELECT * FROM table_name;      

假設我們已經有一個資料庫Customers如下:

肝通宵寫了三萬字把SQL資料庫的所有指令,函數,運算符講得明明白白講解,内容實在豐富,建議收藏+三連好評!(一)

SELECT 列示例

以下 SQL 語句從“Customers”表中選擇“CustomerName”和“City”列:

SELECT CustomerName, City FROM Customers;      

SELECT * 示例

以下 SQL 語句從“Customers”表中選擇所有列:

SELECT * FROM Customers;      

練習題:

1-擷取Customers表中的所有列。

SELECT * FROM Customers;      

2-編寫一條語句,City從Customers表中選擇列。

SELECT City FROM Customers;      

3-從Customers表中的Country列中選擇所有不同的值。(下面會講,不懂沒關系)

SELECT DISTINCT Country FROM Customers;      

該SELECT DISTINCT語句僅用于傳回不同(不同)的值。在表中,一列通常包含許多重複值;有時您隻想列出不同的(不同的)值。

SELECT DISTINCT 文法

SELECT DISTINCT column1, column2, ...
FROM table_name;      

我們還是假設有這樣一個Customers資料庫:

肝通宵寫了三萬字把SQL資料庫的所有指令,函數,運算符講得明明白白講解,内容實在豐富,建議收藏+三連好評!(一)

沒有 DISTINCT 的 SELECT 示例

以下 SQL 語句從“Customers”表的“Country”列中選擇所有(包括重複的)值:

SELECT Country FROM Customers;      

SELECT DISTINCT 示例

SELECT DISTINCT Country FROM Customers;      

以下 SQL 語句列出了不同(不同)客戶國家/地區的數量:

SELECT COUNT(DISTINCT Country) FROM Customers;      

練習:

1-從表中的Country列中選擇所有不同的值Customers。

SELECT  DISTINC Country FROM Customers;      

該WHERE子句用于過濾記錄。它用于僅提取滿足指定條件的記錄。

WHERE 文法

SELECT column1, column2, ...
FROM table_name
WHERE condition;      

注: 該WHERE條款不僅在使用 SELECT的語句,它也被用在UPDATE, DELETE等!

我們假設還是有Customers這樣一個資料庫如下:

肝通宵寫了三萬字把SQL資料庫的所有指令,函數,運算符講得明明白白講解,内容實在豐富,建議收藏+三連好評!(一)

WHERE 子句示例

以下 SQL 語句在“Customers”表中選擇來自國家“Mexico”的所有客戶:

SELECT * FROM Customers
WHERE Country='Mexico';      

文本字段與數字字段

SQL 需要在文本值周圍使用單引号(大多數資料庫系統也允許雙引号)。但是,數字字段不應包含在引号中:

SELECT * FROM Customers
WHERE CustomerID=1;      

WHERE 子句中的運算符

可以在WHERE子句中使用以下運算符:

肝通宵寫了三萬字把SQL資料庫的所有指令,函數,運算符講得明明白白講解,内容實在豐富,建議收藏+三連好評!(一)

我們可以一一示範這些符号的使用,耐心學

假設我們有一下資料庫叫做Product:

肝通宵寫了三萬字把SQL資料庫的所有指令,函數,運算符講得明明白白講解,内容實在豐富,建議收藏+三連好評!(一)

選取價格為18的所有産品(=)

SELECT * FROM Products
WHERE Price = 18;             

選取所有價格大于30的産品(>)

SELECT * FROM Products
WHERE Price > 30;      

選取所有價格小于30的産品(<)

SELECT * FROM Products
WHERE Price < 30;      

選取所有價格大于等于30的産品(>= )

SELECT * FROM Products
WHERE Price >= 30;      

選取所有價格小于等于30的産品( <= )

SELECT * FROM Products
WHERE Price <= 30;      

選取所有價格不等于18的産品(相當于!=)

SELECT * FROM Products
WHERE Price <> 18;      

選取所有價格處于50和60之間的産品

SELECT * FROM Products
WHERE Price BETWEEN 50 AND 60;      

從上面的Customers資料庫搜尋所有字母s開頭的城市

SELECT * FROM Customers
WHERE City LIKE 's%';      

從Customers資料庫中查找所有在Paris和London的使用者

SELECT * FROM Customers
WHERE City IN ('Paris','London');      

以上便是對所有符号的示範。

我們再來一些練習加以鞏固(我們用到的是上面的customers)

1-選擇City列值為“Berlin”的所有記錄。

SELECT * FROM Customers
WHERE City='Berlin';      

2-使用NOT關鍵字選擇City不是"Berlin"的所有記錄。

SELECT * FROM Customers
WHERE NOT City ='Berlin';      

3-選擇CustomerID列值為 32 的所有記錄。

SELECT * FROM Customers
WHERE CustomerID =12;      

該WHERE子句可以結合 AND,OR和 NOT操作。在AND與OR操作用于基于多個條件篩選記錄:

該AND操作顯示一個記錄,如果所有條件滿足 AND 為真。

所述OR操作顯示一個記錄,如果任何一個條件滿足OR為真。

該NOT操作顯示,如果條件(S)是不正确的記錄。

AND 文法

SELECT column1, column2, ...
FROM table_name
WHERE condition1 AND condition2 AND condition3 ...;      

OR文法

SELECT column1, column2, ...
FROM table_name
WHERE condition1 OR condition2 OR condition3 ...;      

NOT文法

SELECT column1, column2, ...
FROM table_name
WHERE NOT condition;      

我們還是假設有如下“Customers”表:

肝通宵寫了三萬字把SQL資料庫的所有指令,函數,運算符講得明明白白講解,内容實在豐富,建議收藏+三連好評!(一)

AND 示例

以下 SQL 語句從Customers中選擇國家為"Germany"且city為"Berlin"的所有字段:

SELECT * FROM Customers
WHERE Country='Germany' AND City='Berlin';      

OR 示例

選取所有"Customers" 中city為"Berlin" OR “München”:

SELECT * FROM Customers
WHERE City='Berlin' OR City='München';      

NOT 示例

從 “Customers” 選取country不是 "Germany"的字段:

SELECT * FROM Customers
WHERE NOT Country='Germany';      

結合AND, OR and NOT

從"Customers" 中選擇國家為"Germany"”且城市必須為"Berlin" OR "München"的所有字段(使用括号形成複雜的表達式):

SELECT * FROM Customers
WHERE Country='Germany' AND (City='Berlin' OR City='München');      

從 “Customers"中選擇國家不是“Germany” 也不是"USA":的所有字段:

SELECT * FROM Customers
WHERE NOT Country='Germany' AND NOT Country='USA';      

練習

選擇 City 列值為 ‘Berlin’ 且 PostalCode 列值為 12209 的所有記錄。

SELECT * FROM Customers
WHERE City = 'Berlin'
AND PostalCode= 12209;      

該ORDER BY關鍵字用于按升序或降序對結果集進行排序。ORDER BY預設情況下,關鍵字按升序對記錄進行排序。要按降序對記錄進行排序,請使用 DESC關鍵字。

ORDER BY 文法

SELECT column1, column2, ...
FROM table_name
ORDER BY column1, column2, ... ASC|DESC;      

我們還是假設有這個“Customers”表如下:

肝通宵寫了三萬字把SQL資料庫的所有指令,函數,運算符講得明明白白講解,内容實在豐富,建議收藏+三連好評!(一)

ORDER BY 示例

從“Customers”表中選擇所有客戶,按“Country”列排序:

SELECT * FROM Customers
ORDER BY Country;      

ORDER BY DESC 示例

從“Customers”表中選擇所有客戶,按“Country”列按 DESCENDING 排序:

SELECT * FROM Customers
ORDER BY Country DESC;      

ORDER BY 多列示例

從“Customers”表中選擇所有客戶,按“Country”和“CustomerName”列排序。這意味着它按國家/地區排序,但如果某些行具有相同的國家/地區,則按 CustomerName 排序:

SELECT * FROM Customers
ORDER BY Country, CustomerName;      

從“Customers”表中選擇所有客戶,按“Country”升序和“CustomerName”列降序排序:

SELECT * FROM Customers
ORDER BY Country ASC, CustomerName DESC;      

從Customers表中選擇所有記錄,按城市列的字母順序對結果進行排序。

SELECT * FROM Customers
ORDER BY City;