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正好相反的。
翻译
相关推荐
-
Linux支持的引入 推动了SQL Server 2016集成服务的发展
随着SQL Server的不断发展,集成服务也在发生相应的变化。在最新的SSIS更新中,增加Linux支持和SQL Server 2016升级向导。
-
Notre Dame对云端SQL Server性能基准的探索实践
确立SQL Server的性能基准,对于云端迁移来说是至关重要的第一步,一位来自于University of Notre Dame 的DBA表示,他正在试图通过数据库监控软件,找出SQL server的性能基准。
-
横向扩展SQL Server应用程序:提高工作负载的选项
SQL Server管理员面临的最大挑战之一就是扩展数据库以适应更为繁重的数据处理工作负载。然而事情越发复杂的是,虽然Microsoft提供了许多不同的SQL Server可扩展性选项,但它们并不都适合于每种情况。
-
五大技巧构建首个SQL Server容器
容器的世界庞大而复杂,使用者可能会感到困扰,这里我们将列出一些示例,以便引导您顺利完成SQL Server容器的创建和管理。