随笔分类 - SQL Server
SQL Server数据库
摘要:#SQL Server IF ELSE 简介 IF... ELSE 语句是一种控制流语句,允许根据指定的条件执行或跳过语句块。 IF语句 语法: IF boolean_expression BEGIN 语句块 END 在此语法中,如果boolean_expression为true,则执行BEGIN.
阅读全文
摘要:#BEGIN END 简介 BEGIN…END语句用于定义语句块。语句块由一组一起执行的SQL语句组成。语句块也称为批处理。 打个比方说,如果语句是句子,那么BEGIN…END语句包裹的就是段落。 语法: BEGIN 一组SQL代码 END 在此语法中,在BEGIN和END关键字之间放置一组SQL语
阅读全文
摘要:#变量 ##什么是变量 变量是保存特定类型的单个值的对象,例如整数(integer)、日期(date)或可变字符串(varchar)。 通常在以下情况下使用变量: 作为循环计数器,计算执行循环的次数。 保存一个要由控制流语句(如WHILE)测试的值 存储存储过程或函数返回的值 ##声明一个变量 声明
阅读全文
摘要:SQL Server计算列上的索引 简介 有如下客户表: 查找居住在garry.espinoza的客户: SELECT first_name, last_name, email FROM sales.customers WHERE SUBSTRING(email, 0, CHARINDEX('@',
阅读全文
摘要:SQL Server 筛选索引 简介 如果使用得当,非聚集索引可以大大提高查询性能。然而,非聚集索引的好处是有代价的:存储和维护。 首先,它需要额外的存储空间来存储索引键列的数据副本。 其次,当从表中插入、更新或删除行时,SQL Server需要更新关联的非聚集索引。 如果应用程序只查询表的一部分行
阅读全文
摘要:SQL Server覆盖索引 简介 本文使用sales.customers表作为示例 下面语句在email列创建唯一约束: CREATE UNIQUE INDEX ix_cust_email ON sales.customers(email); 查找电子邮件为“aide.franco@msn.com
阅读全文
摘要:SQL Server唯一索引(Unique Index) 简介 唯一索引确保索引键列不包含重复值。 唯一索引可以由一列或多列组成。如果唯一索引有一列,则此列中的值将是唯一的。如果唯一索引有多个列,则这些列中的值组合是唯一的。 任何试图向唯一索引键列中插入或更新数据而导致重复的行为都会报错。 唯一索引
阅读全文
摘要:SQL Server Non-Clustered Indexes(非聚集索引) 简介 非聚集索引是一种数据结构,可以提高查询速度。与聚集索引不同,非聚集索引将索引数据与表中的数据行分开进行排序和存储。它是表中选定数据列的副本,其中包含指向关联表的链接。 与聚集索引类似,非聚集索引使用B+树结构来组织
阅读全文
摘要:SQL Server Clustered Indexes(聚集索引) 简介 下面创建一个名为production.parts(产品部件)的新表: --产品部件 CREATE TABLE production.parts( part_id INT NOT NULL, --部件Id part_name
阅读全文
摘要:SQL Server Indexes(索引) 简介 作用 提高查询速度。 定义 将结构化数据中的一部分信息提取出来,重新组织,使其变得有一定结构,我们将这部分信息称之为索引。 索引很类似一本字典里边的目录。 索引分类 聚集索引 聚集索引是一种索引,该索引中键值的逻辑顺序决定了表中相应行的物理顺序。聚
阅读全文
摘要:#SQL Server INTERSECT(交集) ##简介 SQL Server INTERSECT组合了两个或多个查询的结果,并返回多个查询相同的行。 语法: query_1 INTERSECT query_2 与UNION类似,上述语法中的查询必须符合以下规则: 在两个查询中,列的数量和顺序必
阅读全文
摘要:#SQL Server EXCEPT ##简介 SQL Server EXCEPT比较两个查询的结果集,并返回第一个查询中未出现在第二个查询中行。换句话说,EXCEPT返回的是query_1-query_2 语法: query_1 EXCEPT query_2 此语法中: 两个查询中列的数量和顺序必
阅读全文
摘要:#SQL Server UNION(并集) ##简介 SQL Server联合查询 SQL Server UNION是一种集合操作,它允许将两个查询的结果合并到一个结果集中,该结果集中包含属于UNION中SELECT语句的所有行。 语法: query_1 UNION query_2 上面的语法有如下
阅读全文
摘要:#SQL Server子查询 ##简介 子查询是嵌套在另一条语句(如SELECT、INSERT、UPDATE或DELETE)中的查询。 看如下例子 有如下订单和顾客表 以下语句显示如何通过WHERE子句中的子查询查找位于纽约的客户的销售订单: SELECT order_id, order_date,
阅读全文
摘要:#SQL Server GROUP BY ##简介 GROUP BY子句可以将查询结果按照某列或者某几列进行分组。 语法: SELECT select_list FROM table_name GROUP BY column_name1, column_name2 ,...; 在此查询中,GROUP
阅读全文
摘要:#SQL Server Self Join ##简介 自连接将表连接到自身。它有助于查询层级数据或比较同一表中的行。 自联接使用内联接(INNER JOIN)或左联接(LEFT JOIN)子句。因为使用自联接的查询引用的是同一个表,,所以为了区别表它们,得使用别名为查询中的同一表分配不同的名称。 注
阅读全文
摘要:#SQL Server Cross Join ##交叉连接简介 语法: SELECT select_list FROM T1 CROSS JOIN T2; 交叉连接将第一表(T1)的每一行与第二表(T2)的每行连接起来。换句话说,交叉连接返回两个表的行的笛卡尔积。 不像内连接(INNER JOIN)
阅读全文
摘要:#SQL Server Full Outer Join ##SQL Server全外连接简介 全外连接也称全连接,效果很像左连接和右连接的结合起来。 当左表中的行不存在匹配行时,右表的列将包含NULL。同样,当右表中的行不存在匹配行时,左表的列将包含NULL。 语法: SELECT select_l
阅读全文
摘要:#SQL Server左连接与右连接查询 ##SQL Server 左连接(Left Join) ###SQL Server左连接简介 左连接是SELECT语句的一个子句。LEFT JOIN子句允许您查询多个表中的数据。 左联接返回左表中的所有行和右表中的匹配行。如果在右表中未找到匹配行,则使用NU
阅读全文
摘要:#SQL Server Inner Join ##SQL Server内连接介绍 内连接是SQL Server中最常用的连接之一。内连接子句允许您从两个或多个关联表中查询数据。 看下面产品(products)和类别(categories)表: 下面的语句从production.products中检索
阅读全文