首頁  >  文章  >  資料庫  >  認識SQL 高階進階

認識SQL 高階進階

coldplay.xixi
coldplay.xixi轉載
2020-12-04 17:05:179641瀏覽

sql教學欄位介紹10種高階進階

認識SQL 高階進階

推薦(免費):sql教學

sql進階
1、TOP子句
TOP 子句用於規定要傳回的記錄的數目。

SELECT TOP 2 * FROM Persons 
 SELECT TOP 50 PERCENT * FROM Persons

2、link尋找的模式
現在,我們希望從上面的「Persons」 表中選取居住在以「N」開始的城市裡的人:
我們可以使用下面的SELECT 語句:

SELECT * FROM Persons 
 WHERE City LIKE ‘N%’

提示:”%” 可用來定義通配符(模式中缺少的字母)
透過使用NOT 關鍵字,我們可以從在「Persons」 表中選取居住在不包含「lon」的城市裡的人:
我們可以使用下面的SELECT 語句:

SELECT * FROM Persons 
 WHERE City NOT LIKE ‘%lon%’

3、通配符
認識SQL 高階進階
(1)透過使用NOT 關鍵字,我們可以從「Persons」 表中選取居住在不包含「lon」 的城市裡的人:
我們可以使用下面的SELECT 語句:

SELECT * FROM Persons 
 WHERE City NOT LIKE ‘%lon%’

(2)我們希望從上面的「Persons」 表中選取名字的第一個字元之後是「eorge」 的人:
我們可以使用下面的SELECT 語句:

SELECT * FROM Persons 
 WHERE FirstName LIKE ‘_eorge’

(3)我們希望從上面的「Persons」 表中選取居住的城市以「A」 或「L」 或「N」 開頭的人:
我們可以使用下面的SELECT 語句:

SELECT * FROM Persons 
 WHERE City LIKE ‘[ALN]%’ 
 不 SELECT * FROM Persons 
 WHERE City LIKE ‘[!ALN]%’

4、IN 運算子
IN 運算子允許我們在WHERE 子句中規定多個值。 IN 操作符實例
現在,我們希望從上表中選取姓氏為Adams 和Carter 的人:
我們可以使用下面的SELECT 語句:

SELECT * FROM Persons 
 WHERE LastName IN (‘Adams’,’Carter’)

#5、 BETWEEN 運算子
運算子BETWEEN … AND 會選取介於兩個值之間的資料範圍。這些值可以是數值、文字或日期
想要以字母順序顯示介於「Adams」(包括)和「Carter」(不包括)之間的人,請使用下面的SQL:

SELECT * FROM Persons 
 WHERE LastName 
 BETWEEN ‘Adams’ AND ‘Carter’

補集為No BETWEEN

6、透過使用SQL,可以為列名稱和表名稱指定別名(Alias)
假設我們有兩個表分別是:”Persons” 和“Product_Orders”。我們分別為它們指定別名 “p” 和 “po”。
現在,我們希望列出 “John Adams” 的所有定單。
我們可以使用下面的SELECT 語句:

SELECT po.OrderID, p.LastName, p.FirstName 
 FROM Persons 
AS
 p, Product_Orders 
AS
 po 
 WHERE p.LastName=’Adams’ AND p.FirstName=’John’

也可以為欄位使用別名

SELECT LastName AS Family, FirstName AS Name 
 FROM Persons

#7、join 和Key
有時為了得到完整的結果,我們需要從兩個或更多的表格中取得結果。我們就需要執行 join。
資料庫中的表格可透過鍵將彼此連結起來。主鍵(Primary Key)是一個列,在這個列中的每一行的值都是唯一的。
認識SQL 高階進階
認識SQL 高階進階
引用兩個表格
我們可以透過引用兩個表格的方式,從兩個表格中取得資料:
誰訂購了產品,並且他們訂購了什麼產品?

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo 
 FROM Persons, Orders 
 WHERE Persons.Id_P = Orders.Id_P

下面的語句和上面的語句具有相同的效果
SQL JOIN - 使用Join
除了上面的方法,我們也可以使用關鍵字JOIN 來從兩個表中獲取數據。
如果我們希望列出所有人的訂購,可以使用下面的SELECT 語句:

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo 
 FROM Persons 
INNER JOIN
 Orders 
 ON Persons.Id_P = Orders.Id_P 
 ORDER BY Persons.LastName

INNER JOIN 存在至少一個符合時傳回行 

注意

  • JOIN: 如果表中有至少一個匹配,則返回行 

  • LEFT JOIN: 即使右表中沒有匹配,也從左表返回所有的行 

  • RIGHT JOIN: 即使左表中沒有匹配,也從右表返回所有的行

  • #FULL JOIN: 只要其中一個表中存在匹配,就返回行

8、SQL UNION 操作符
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。
列出所有在中国和美国的不同的雇员名:

SELECT E_Name FROM Employees_China 
 UNION 
 SELECT E_Name FROM Employees_USA

union和union all的区别就是union all会把所有的结果都输出来,union会把相同的给去掉

9、CREATE DATABASE database_name
用于创建数据库

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

認識SQL 高階進階

10、sql约束
(1) 下面的 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) 
 )

(2)SQL UNIQUE 约束 

  • UNIQUE 约束唯一标识数据库表中的每条记录。 

  • UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证 

  • PRIMARY KEY 拥有自动定义的 UNIQUE 约束。 

请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。
(3)SQL PRIMARY KEY 约束
PRIMARY KEY 约束唯一标识数据库表中的每条记录。 

  • 主键必须包含唯一的值。 

  • 主键列不能包含 NULL 值。
    每个表都应该有一个主键,并且每个表只能有一个主键。

想了解更多编程学习,敬请关注php培训栏目!

以上是認識SQL 高階進階的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除