2SQL 高级教程SQL TOPSQL CONSTRAINTSWord文件下载.docx

上传人:b****6 文档编号:17183524 上传时间:2022-11-28 格式:DOCX 页数:57 大小:41.11KB
下载 相关 举报
2SQL 高级教程SQL TOPSQL CONSTRAINTSWord文件下载.docx_第1页
第1页 / 共57页
2SQL 高级教程SQL TOPSQL CONSTRAINTSWord文件下载.docx_第2页
第2页 / 共57页
2SQL 高级教程SQL TOPSQL CONSTRAINTSWord文件下载.docx_第3页
第3页 / 共57页
2SQL 高级教程SQL TOPSQL CONSTRAINTSWord文件下载.docx_第4页
第4页 / 共57页
2SQL 高级教程SQL TOPSQL CONSTRAINTSWord文件下载.docx_第5页
第5页 / 共57页
点击查看更多>>
下载资源
资源描述

2SQL 高级教程SQL TOPSQL CONSTRAINTSWord文件下载.docx

《2SQL 高级教程SQL TOPSQL CONSTRAINTSWord文件下载.docx》由会员分享,可在线阅读,更多相关《2SQL 高级教程SQL TOPSQL CONSTRAINTSWord文件下载.docx(57页珍藏版)》请在冰豆网上搜索。

2SQL 高级教程SQL TOPSQL CONSTRAINTSWord文件下载.docx

Adams

John

OxfordStreet

London

2

Bush

George

FifthAvenue

NewYork

3

Carter

Thomas

ChanganStreet

Beijing

4

Obama

Barack

PennsylvaniaAvenue

Washington

SQLTOP实例

现在,我们希望从上面的"

Persons"

表中选取头两条记录。

我们可以使用下面的SELECT语句:

SELECTTOP2*FROMPersons

结果:

SQLTOPPERCENT实例

表中选取50%的记录。

SELECTTOP50PERCENT*FROMPersons

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

LIKE操作符

SQLLIKE操作符语法

WHEREcolumn_nameLIKEpattern

LIKE操作符实例

例子1

表中选取居住在以"

N"

开始的城市里的人:

SELECT*FROMPersons

WHERECityLIKE'

N%'

提示:

"

%"

可用于定义通配符(模式中缺少的字母)。

结果集:

例子2

接下来,我们希望从"

g"

结尾的城市里的人:

%g'

例子3

表中选取居住在包含"

lon"

的城市里的人:

%lon%'

例子4

通过使用NOT关键字,我们可以从"

表中选取居住在不包含 

WHERECityNOTLIKE'

在搜索数据库中的数据时,您可以使用SQL通配符。

SQL通配符

在搜索数据库中的数据时,SQL通配符可以替代一个或多个字符。

SQL通配符必须与LIKE运算符一起使用。

在SQL中,可使用以下通配符:

通配符

描述

%

替代一个或多个字符

_

仅替代一个字符

[charlist]

字符列中的任何单一字符

[^charlist]

或者

[!

charlist]

不在字符列中的任何单一字符

使用%通配符

Ne"

Ne%'

lond"

%lond%'

使用_通配符

表中选取名字的第一个字符之后是"

eorge"

的人:

WHEREFirstNameLIKE'

_eorge'

表中选取的这条记录的姓氏以"

C"

开头,然后是一个任意字符,然后是"

r"

,然后是任意字符,然后是"

er"

WHERELastNameLIKE'

C_r_er'

使用[charlist]通配符

表中选取居住的城市以"

A"

或"

L"

开头的人:

[ALN]%'

表中选取居住的城市不以 

ALN]%'

IN操作符

IN操作符允许我们在WHERE子句中规定多个值。

SQLIN语法

WHEREcolumn_nameIN(value1,value2,...)

原始的表(在实例中使用:

IN操作符实例

现在,我们希望从上表中选取姓氏为Adams和Carter的人:

WHERELastNameIN('

Adams'

'

Carter'

BETWEEN操作符在WHERE子句中使用,作用是选取介于两个值之间的数据范围。

BETWEEN操作符

操作符BETWEEN...AND会选取介于两个值之间的数据范围。

这些值可以是数值、文本或者日期。

SQLBETWEEN语法

WHEREcolumn_name

BETWEENvalue1ANDvalue2

Gates

Bill

Xuanwumen10

BETWEEN操作符实例

如需以字母顺序显示介于"

Adams"

(包括)和"

Carter"

(不包括)之间的人,请使用下面的SQL:

WHERELastName

BETWEEN'

AND'

重要事项:

不同的数据库对BETWEEN...AND操作符的处理方式是有差异的。

某些数据库会列出介于"

和"

之间的人,但不包括"

之间并包括"

的人;

而另一些数据库会列出介于"

之间的人,包括"

,但不包括"

所以,请检查你的数据库是如何处理BETWEEN....AND操作符的!

实例2

如需使用上面的例子显示范围之外的人,请使用NOT操作符:

NOTBETWEEN'

通过使用SQL,可以为列名称和表名称指定别名(Alias)。

SQLAlias

表的SQLAlias语法

ASalias_name

列的SQLAlias语法

SELECTcolumn_nameASalias_name

Alias实例:

使用表名称别名

假设我们有两个表分别是:

Product_Orders"

我们分别为它们指定别名"

p"

po"

现在,我们希望列出"

JohnAdams"

的所有定单。

SELECTpo.OrderID,p.LastName,p.FirstName

FROMPersonsASp,Product_OrdersASpo

WHEREp.LastName='

ANDp.FirstName='

John'

不使用别名的SELECT语句:

SELECTProduct_Orders.OrderID,Persons.LastName,Persons.FirstName

FROMPersons,Product_Orders

WHEREPersons.LastName='

ANDPersons.FirstName='

从上面两条SELECT语句您可以看到,别名使查询程序更易阅读和书写。

使用一个列名别名

表Persons:

SQL:

SELECTLastNameASFamily,FirstNameASName

Family

Name

SQLjoin用于根据两个或多个表中的列之间的关系,从这些表中查询数据。

Join和Key

有时为了得到完整的结果,我们需要从两个或更多的表中获取结果。

我们就需要执行join。

数据库中的表可通过键将彼此联系起来。

主键(PrimaryKey)是一个列,在这个列中的每一行的值都是唯一的。

在表中,每个主键的值都是唯一的。

这样做的目的是在不重复每个表中的所有数据的情况下,把表间的数据交叉捆绑在一起。

请看"

表:

Id_P

请注意,"

Id_P"

列是Persons表中的的主键。

这意味着没有两行能够拥有相同的Id_P。

即使两个人的姓名完全相同,Id_P也可以区分他们。

接下来请看"

Orders"

Id_O

OrderNo

77895

44678

22456

24562

5

34764

65

Id_O"

列是Orders表中的的主键,同时,"

表中的"

列用于引用"

表中的人,而无需使用他们的确切姓名。

请留意,"

列把上面的两个表联系了起来。

引用两个表

我们可以通过引用两个表的方式,从两个表中获取数据:

谁订购了产品,并且他们订购了什么产品?

SELECTPersons.LastName,Persons.FirstName,Orders.OrderNo

FROMPersons,Orders

WHEREPersons.Id_P=Orders.Id_P

SQLJOIN-使用Join

除了上面的方法,我们也可以使用关键词JOIN来从两个表中获取数据。

如果我们希望列出所有人的定购,可以使用下面的SELECT语句:

INNERJOINOrders

ONPersons.Id_P=Orders.Id_P

ORDERBYPersons.LastName

不同的SQLJOIN

除了我们在上面的例子中使用的INNERJOIN(内连接),我们还可以使用其他几种连接。

下面列出了您可以使用的JOIN类型,以及它们之间的差异。

∙JOIN:

如果表中有至少一个匹配,则返回行

∙LEFTJOIN:

即使右表中没有匹配,也从左表返回所有的行

∙RIGHTJOIN:

即使左表中没有匹配,也从右表返回所有的行

∙FULLJOIN:

只要其中一个表中存在匹配,就返回行

SQLINNERJOIN关键字

在表中存在至少一个匹配时,INNERJOIN关键字返回行。

INNERJOIN关键字语法

FROMtable_name1

INNERJOINtable_name2

ONtable_name1.column_name=table_name2.column_name

INNERJOIN与JOIN是相同的。

内连接(INNERJOIN)实例

现在,我们希望列出所有人的定购。

您可以使用下面的SELECT语句:

ONPersons.Id_P=Orders.Id_P

INNERJOIN关键字在表中存在至少一个匹配时返回行。

如果"

中的行在"

中没有匹配,就不会列出这些行。

SQLLEFTJOIN关键字

LEFTJOIN关键字会从左表(table_name1)那里返回所有的行,即使在右表(table_name2)中没有匹配的行。

LEFTJOIN关键字语法

LEFTJOINtable_name2

ONtable_name1.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1