Heim> Datenbank> SQL> Hauptteil

认识SQL 高级进阶

coldplay.xixi
Freigeben: 2020-12-04 17:06:03
nach vorne
9551 Leute haben es durchsucht

sql教程栏目介绍10种高级进阶

认识SQL 高级进阶

推荐(免费):sql教程

sql高级
1、TOP子句
TOP 子句用于规定要返回的记录的数目。

SELECT TOP 2 * FROM Persons SELECT TOP 50 PERCENT * FROM Persons
Nach dem Login kopieren

2、link查找的模式
现在,我们希望从上面的 “Persons” 表中选取居住在以 “N” 开始的城市里的人:
我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons WHERE City LIKE ‘N%’
Nach dem Login kopieren

提示:”%” 可用于定义通配符(模式中缺少的字母)
通过使用 NOT 关键字,我们可以从 “Persons” 表中选取居住在不包含 “lon” 的城市里的人:
我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons WHERE City NOT LIKE ‘%lon%’
Nach dem Login kopieren
Nach dem Login kopieren

3、通配符
这里写图片描述
(1)通过使用 NOT 关键字,我们可以从 “Persons” 表中选取居住在不包含 “lon” 的城市里的人:
我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons WHERE City NOT LIKE ‘%lon%’
Nach dem Login kopieren
Nach dem Login kopieren

(2)我们希望从上面的 “Persons” 表中选取名字的第一个字符之后是 “eorge” 的人:
我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons WHERE FirstName LIKE ‘_eorge’
Nach dem Login kopieren

(3)我们希望从上面的 “Persons” 表中选取居住的城市以 “A” 或 “L” 或 “N” 开头的人:
我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons WHERE City LIKE ‘[ALN]%’ 不 SELECT * FROM Persons WHERE City LIKE ‘[!ALN]%’
Nach dem Login kopieren

4、IN 操作符
IN 操作符允许我们在 WHERE 子句中规定多个值。IN 操作符实例
现在,我们希望从上表中选取姓氏为 Adams 和 Carter 的人:
我们可以使用下面的 SELECT 语句:

SELECT * FROM Persons WHERE LastName IN (‘Adams’,’Carter’)
Nach dem Login kopieren

5、BETWEEN 操作符
操作符 BETWEEN … AND 会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期
如需以字母顺序显示介于 “Adams”(包括)和 “Carter”(不包括)之间的人,请使用下面的 SQL:

SELECT * FROM Persons WHERE LastName BETWEEN ‘Adams’ AND ‘Carter’
Nach dem Login kopieren

补集为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’
Nach dem Login kopieren

也可以为列使用别名

SELECT LastName AS Family, FirstName AS Name FROM Persons
Nach dem Login kopieren

7、join 和 Key
有时为了得到完整的结果,我们需要从两个或更多的表中获取结果。我们就需要执行 join。
数据库中的表可通过键将彼此联系起来。主键(Primary Key)是一个列,在这个列中的每一行的值都是唯一的。
这里写图片描述
这里写图片描述
引用两个表
我们可以通过引用两个表的方式,从两个表中获取数据:
谁订购了产品,并且他们订购了什么产品?

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons, Orders WHERE Persons.Id_P = Orders.Id_P
Nach dem Login kopieren

下面的语句和上面的语句具有同样的效果
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
Nach dem Login kopieren

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
Nach dem Login kopieren

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) )
Nach dem Login kopieren

这里写图片描述

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) )
Nach dem Login kopieren

(2)SQL UNIQUE 约束

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

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

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

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

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

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

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

Das obige ist der detaillierte Inhalt von认识SQL 高级进阶. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
sql
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!