SQL语句,即“结构化查询语言”,被大多数关系型数据库管理平台所共享,当然也包括Microsoft SQL Server。 目前针对SQL及其基本语法有许多ANSI标准,如果没有SQL语言基础,那么相信你在SQL Server世界里真得就是寸步难行了。因此,下面我们就来介绍一下SQL的基础知识。 SELECT(初学者) 一个SELECT查询可以告诉SQL Server你想从它那里要什么数据。
从技术上来说,SQL Server遵循了ANSI标准的SQL语法。这意味着我向你展示的大多数查询在其它基于SQL的数据库平台上也同样适用,比如MySQL和Oracle。 一个基本的SELEC……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
SQL语句,即“结构化查询语言”,被大多数关系型数据库管理平台所共享,当然也包括Microsoft SQL Server。
目前针对SQL及其基本语法有许多ANSI标准,如果没有SQL语言基础,那么相信你在SQL Server世界里真得就是寸步难行了。因此,下面我们就来介绍一下SQL的基础知识。
SELECT(初学者)
一个SELECT查询可以告诉SQL Server你想从它那里要什么数据。从技术上来说,SQL Server遵循了ANSI标准的SQL语法。这意味着我向你展示的大多数查询在其它基于SQL的数据库平台上也同样适用,比如MySQL和Oracle。
一个基本的SELECT查询有如下的格式:
SELECT { * | column,column,column } FROM table [WHERE criteria] [ORDER BY column]
在关键字SELECT后面,如果要包含表中的所有列,指定*就可以。否则你需要提供一个逗号分隔的列名。
然后使用FROM关键字来指定查询的列所在的表名
默认情况下,SQL Server将返回表中的所有行。你还可以使用一个WHERE子句,来返回你指定的行。
例如, …WHERE OrderAmount = 1.00将返回那些OrderAmount列值为1.00的行。
在WHERE子句中指定的列不一定出现在SELECT中。换句话说,你可以根据看不到的列来完成行过滤。
在我的例子中,我这样做不难理解,因为我只会得到OrderAmount值为1.00的行。我不必在查询输出中去看OrderAmount列,因为我知道列中所包含的内容。
下面是更多的WHERE例子,可以让你找找感觉:
…WHERE DateOrdered BETWEEN '7/1/2000' AND '7/1/2001'
…WHERE OrderAmount > 5000 AND OrderAmount < 2000
…WHERE CustomerName LIKE '%one%'
…WHERE (OrderAmount > 5000 AND OrderAmount < 2000) OR (SpecialOrder = 'Express')
…WHERE InvoiceNumber IN (1002,476382,7261)
你可以看到这些语句中包含了以下运算符:BETWEEN, AND, LIKE (用% 作为一个 通配符), OR, 和 IN 。
BETWEEN运算符指定了你想要的范围。
IN运算符提供了一个逗号分隔的列表,其中包含了可接受的值。
下面是一个用到IN运算符的子查询:
…WHERE InvoiceNumber IN (SELECT InvoiceNumber FROM BadOrders)
子查询最先执行,然后WHERE子句将包含BadOrders表中所有有InvoiceNumber的行。最终,可选的ORDER BY子句可以指定返回行的顺序。再一次地,你可以指定输出中没有的列。
以下是更多的ORDER BY的例子:
…ORDER BY DateOrdered
…ORDER BY DateOrdered DESCENDING
…ORDER BY DateOrdered,InvoiceNumber
默认的排序顺序是升序,当然你也可以指定DESCENDING关键字来进行降序排序。最后一个例子是进行两列的排序:输出行首先按照日期顺序排序,然后有相同DateOrdered值的再按照发票号排序。
这里我想指出的是,你可以根据匹配的行来选择一个子集,例如:
SELECT TOP 10 * FROM Orders WHERE OrderAmount > 5000 ORDER BY DateOrdered DESCENDING
这个查询抓取了那些订单金额超过5000的行,并根据日期降序排序。然后将发送给你前十行,其中包含了表中的所有列。
你还可以指定…TOP 10 PERCENT…而不是一个固定的数。
总结一下,这些对于从服务器抓取想要的数据是非常有用的。类似地,BOTTOM关键字的作用是和TOP正好相反的。
翻译
相关推荐
-
云端SQL Server高可用性最佳做法
与内部部署相比,在云端运行SQL Server可为数据库软件用户提供更多的灵活性和可扩展性,也可能更省钱。但云 […]
-
绘制数据关系图的利器:SQL Server 图像数据库工具
SQL Server 2017新增了图形数据库功能,你可以使用图结构来表示不同数据元素之间的关系。
-
如何在Azure部署时选择合适的SQL Server?
想要在Azure上运行SQL Server,企业一般会面临两种选择:在Azure虚拟机上安装SQL Server或使用Azure SQL Database。
-
Linux支持的引入 推动了SQL Server 2016集成服务的发展
随着SQL Server的不断发展,集成服务也在发生相应的变化。在最新的SSIS更新中,增加Linux支持和SQL Server 2016升级向导。