随笔分类 - SQL Server
只记录与MySQL不同的地方,一样的地方请参考MySQL基础
摘要:45.1 触发器的定义 触发器(trigger)是SQL Server提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作(INSERT、DELETE、UPDATE)时就会激活它执行。 45.
阅读全文
摘要:在介绍动态SQL前我们先看看什么是静态SQL。 44.1 静态SQL 静态SQL语句一般用于嵌入式SQL应用中,在程序运行前,SQL语句必须是确定的,例如SQL语句中涉及到的列名和表名必须是存在的。静态SQL语句的编译是在应用程序运行前进行的,编译的结果会存储在数据库内部。而后程序运行时,数据库将直
阅读全文
摘要:43.1 流程控制的定义 一般是指用来控制程序执行,一般指的是逻辑计算部分的控制。 43.2 流程控制种类 常见的流程控制有以下8种: BEGIN ... END WHILE RETURN WAITFOR IF ... ELSECONTINUE GOTO BREAK 43.3 BEGIN ... E
阅读全文
摘要:42.1 递归查询原理 SQL Server中的递归查询是通过CTE(Commom Tbale Expression,表表达式)来实现。至少包含两个查询,第一个查询为定点查询,定点成员只是一个返回有效表的查询,用于递归的基础或定位点;第二个查询被称为递归成员,使该查询称为递归成员的是对CTE名称的递
阅读全文
摘要:41.1 变量的定义 SQL Server中的变量就是一个参数,可以对这个参数进行赋值。 41.2 变量的分类 变量分为局部变量和全局变量,局部变量用@来标识,全局变量用@@来标识(常用的全局变量一般都是已经定义好的)。 41.3 声明变量 变量在使用前必须先声明才能够使用。 声明局部变量语法: D
阅读全文
摘要:40.1 OVER的定义 OVER用于为行定义一个窗口,它对一组值进行操作,不需要使用GROUP BY子句对数据进行分组,能够在同一行中同时返回基础行的列和聚合列。 40.2 OVER的语法 OVER([PARTITION BY column] [ORDER BY column])--PARTITI
阅读全文
摘要:39.1 存储过程的定义 存储过程其实就是已预编译为可执行过程的一个或多个SQL语句。通过调用和传递参数即可完成该存储过程的功能。 39.2 创建存储过程语法 CREATE PROC|PROCEDURE procedure_name [{@参数数据类型} [=默认值] [OUTPUT], {@参数数
阅读全文
摘要:38.1 MERGE的定义 MERGE关键字是一个神奇的DML(Data Manipulation Language,数据操纵语言),能将INSERT、UPDATE、DELETE等操作并为一句,根据与源表联接的结果,对目标表进行插入、更新或删除等操作。 38.2 MERGE语法 MERGE INTO
阅读全文
摘要:37.1 分组集的定义 是多个分组的并集,用于在一个查询中,按照不同的分组列对集合进行聚合运算,等价于对单个分组使用“UNION ALL”,计算多个结果集的并集。 37.2 分组集种类 SQL Server的分组集共有三种GROUPING SETS,CUBE以及ROLLUP,其中CUBE和ROLLU
阅读全文
摘要:36.1 集合的定义 集合是由一个和多个元素构成的整体,在SQL Server中的表就代表着事实集合,而其中的查询就是在集合的基础上生成的结果集。SQL Server的集合包括交集(INTERSECT)、并集(UNION)、差集(EXCEPT)。 36.2 交集INTERSECT 可以对两个或者多个
阅读全文
摘要:35.1 DBLINK的定义 当我们要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中就必须要创建远程数据库的DBLINK,通过DBLINk本地数据库可以像访问本地数据库表中的数据。 35.2 创建DBLINK的语法 定义DBLINK类型: EXEC master.dbo.sp_addli
阅读全文
摘要:34.1 派生表的定义 派生表是在外部查询的FROM子句中定义的,只要外部查询一结束,派生表也就不存在了。 34.2 派生表的作用 派生表可以简化查询,避免使用临时表。相比手动生成临时表性能更优越。派生表与其他表一样出现在查询的FROM子句中。 例如: SELECT * FROM( SELECT *
阅读全文
摘要:33.1 CASE函数的类型 CASE函数具有两种格式,简单的CASE函数和CASE搜索函数。这两种方式,大部分情况下可以实现相同的功能。 33.2 简单CASE函数 语法: CASE column WHEN <condition> THEN value WHEN <condition> THEN
阅读全文
摘要:32.1 临时表定义 临时表与实体表类似,只是在使用过程中,临时表是存储在系统数据库tempdb中。当我们不再使用临时表的时候,临时表会自动删除。 32.2 临时表分类 临时表分为本地临时表和全局临时表,它们在名称、可见性以及可用性上有区别。 32.3 临时表的特性 对于临时表有如下几个特点: (1
阅读全文
摘要:以下是一些可以当工具书使用的参考语句,都是固定写法,需要的时候可以拿出来参考一下: AND/OR 并且/或 SELECT column_name(s) FROM table_name WHERE condition AND|OR condition; ALTER TABLE 修改表 ALTER TA
阅读全文
摘要:30.1 常用数据类型定义 数据类型定义了存储在列中的值的类型。 30.2 常用数据类型作用 数据库中的每一列都需要有一个名称和数据类型。 SQL开发人员必须在创建SQL表时决定表中的每个列将要存储的数据的类型。数据类型是一个标签,是便于SQL了解每个列期望存储什么类型的数据的指南,它也标识了SQl
阅读全文
摘要:29.1 ASCII() 语法: ASCII(字符串); 返回字符串表达式中最左侧的ASCII代码值。 示例: SELECT ASCII('S'),ASCII('SQL');结果为:83 83 29.2 CHAR() 语法: CHAR(字符串); 将整数类型的ASCII值转换为对应的字符。 示例:
阅读全文
摘要:28.1 GETDATE()函数 GETDATE()函数用于返回当前数据库系统的日期和时间,返回值的类型为datetime。 返回值舍入到最近的秒小数部分,精度为.333秒数据库十七偏移量不包含在内。 SELECT GETDATE(); 28.2 GETUTCDATE()函数 GETUTCDATE(
阅读全文
摘要:主要介绍日常使用的数学函数,包括MAX()、MIN()、COUNT()、AVG()、SUM()等。 27.1 MAX()函数 MAX()函数返回所选列的最大值。 语法: SELECT MAX(column_name) FROM table_name WHERE condition; 下面是选自“Pr
阅读全文
摘要:26.1 什么是事务 事务是在数据库上按照一定的逻辑顺序执行的任务序列,既可以由用户手动进行,也可以由某种数据库程序自动执行。 事务实际上就是对数据库的一个或者多个更改。当你在某张表上创建更新或者删除记录的时候,你就已经在使用事务了。控制事务以保证数据完整性,并对数据库错误做出处理,对数据库来说非常
阅读全文

浙公网安备 33010602011771号