`
文章列表
查询语句可能返回多条记录,如果数据量非常大,需要使用游标来逐条读取查询结果集中的记录,应用程序可以根据需要滚动或浏览其中的数据。游标通常是在存储过程中使用的,在存储过程中使用SELECT语句查询数据库时,查询 ...
在两个或多个任务中,如果每个任务锁定了其他的任务试图锁定的资源,会造成这些任务永久阻塞,从而出现死锁。此时系统处于死锁状态。 死锁的原因: 在多用户环境下,死锁的发生是由于两个事物都锁定了不同的资源而又都在申请对方锁定的资源,即一组进程中的各个进程均占有不会释放的资源,但因相互申请其他进程占用的不会释放的资源而处于一种永久等待的状态。形成死锁有4个必要条件: 请求与保持条件:获取资源的进程可以同时申请新的资源。 非剥夺条件:已经分配的资源不能从该进程中剥夺。 循环等待条件:多个进程构成环路,并且其中每个进程都在等待相邻进程正在占用的资源。 互斥条件:资源只能被一个进程使用。 ...
SQL Server支持多用户共享同一数据库,但是,当多个用户对同一个数据库进行修改时,会产生并发问题,是用锁可以解决用户存取数据的这个问题,从而保证数据库的完整性和一致性。对于一般的用户,通过系统的自动锁管理机制基本可以满足是用要求,但如果对数据库安全、数据库完整性和一致性有特殊要求,则需要亲自控制数据库的锁和解锁,这就需要了解SQL Server 的锁机制,掌握锁的只用方法。 锁的内涵与作用: 数据库中数据的并发操作经常发生,而对数据的并发操作会带来下面的一些问题:脏读、幻读、非重复性读取、丢失更新。 脏读: 脏读又称无效数据的读出,是指在数据库访问中,事务T1将某一值修 ...
事务的含义: 事务要有非常明确的开始和结束点,SQL Server 中的每一条数据操作语句,例如SELECT、INSERT、UPDATE和DELETE都是隐式事务的一部分。即使只有一条语句,系统也会把这条语句当做一个事务,要么执行所有的语句,要么什么都不执行。 事务开始之后,事务所有的操作都会写到事务日志中,写到日志中的事务,一般有两种:一是针对数据的操作,例如插入、修改和删除,这些操作的对象是大量的数据;另一种是针对任务的操作,例如创建索引。当取消这些事务操作时,系统自动执行这些操作的反操作,保证系统的一致性。系统自动生成一个检查点机制,这个检查点周期的检查事务日志。如果在事务日志中事 ...
钮控件包括命令按钮(Button)、单选按钮(Radio Button)和复选框(Check Box)等。命令按钮就是我们前面多次提到的狭义的按钮控件,用来响应用户的鼠标单击操作,进行相应的处理,它可以显示文本也可以嵌入位图。单选按钮使用时,一般是多个组成一组,组中每个单选按钮的选中状态具有互斥关系,即同组的单选按钮只能有一个被选中。 命令按钮是我们最熟悉也是最常用的一种按钮控件,而单选按钮和复选框都是一种比较特殊的按钮控件。单选按钮有选中和未选中两种状态,为选中状态时单选按钮中心会出现一个蓝点,以标识选中状态。一般的复选框也是有选中和未选中两种状态,选中时复选框内会增加一个“√”,而三态复 ...
创建索引: (1)在SQL Server Management Studio中,选择并右击要创建索引的表,从弹出菜单中选择“设计”,打开表设计器。右键单击表设计器,从弹出菜单中选择“索引/键”命令,打开“索引/键”对话框。对话框中列出了已经存在的索引,如下图所示。 (2)单击
o(1)索引并非越多越好,一个表中如果有大量的索引,不仅占用大量的磁盘空间,而且会影响INSERT、DELETE、UPDATE等语句的性能。因为当表中数据更改的同时,索引也会进行调整和更新。 o(2)避免对经常更新的表进行过多的索引,并且索引中的列尽可能少。而对经常用于查询的字段应该创建索引,但要避免添加不必要的字段。 o(3)数据量小的表最好不要使用索引,由于数据较少,查询花费的时间可能比遍历索引的时间还要短,索引可能不会产生优化效果。 o(4)在条件表达式中经常用到的、不同值较多的列上建立索引,在不同值少的列上不要建立索引。比如在学生表的“性别”字段上只有“男”与“女”两 ...
不同数据库中提供了不同的索引类型,SQLServer中的索引有两种:聚集索引和非聚集索引。聚集索引和非聚集索引的区别是在物理数据的存储方式上。聚集索引: 聚集索引基于数据行的键值,在表内排序和存储这些数据行。每个 ...
索引用于快速找出在某个列中某一特定值的行。不使索引,数据库必须从第一条记录开始读完整个表,直到找到相关行。如果表中查询的列有一个索引,数据库能快速到达一个位置去搜寻数据,而不必查看所有数据。 索引的含义和特点: 索引是一个单独的、存储在磁盘上的数据结构,他们包含着对数据表里所有记录的应用指针。使用索引用于快速找出在某个或多个列中有一某特定值的行,对相关列使用索引是降低查询操作时间的最佳途径,索引包含有表或视图中的一列或多列生成的键。 数据库中现在有2万条记录,现在要执行这样一个查询:SELECT* FROM table where num=10000。如果没有索引,必须遍历整个 ...
规则的概念: 规则(Rules)是用于执行一些与检查约束相同的功能。检查约束比规则更简明,一个列只能应用一个规则,但是却可以应用多个检查约束。 检查约束可以在CREATE TABLE语句中定义,而规则作为独立的对象创建,然后绑定在指定的列上。 规则也是维护数据库中数据完整性的一种手段,使用它可以避免表中出现不符合逻辑的数据,例如工资小于0。 创建规则: 使用CREATE RULE语句可以创建规则,其语法结构如下: CREATERULE <架构名>.<规则名> AS<规则表达式>
前面介绍的各种查询方法中使用的SQL语句都是固定的,这些语句中的查询条件相关的数据类型都是固定的,这种SQL语句称为静态SQL语句。静态SQL语句在许多情况下不能满足要求,不能编写更为通用的程序,例如有一个学生成绩表,对于学生来说,只想查询自己的成绩,而对于老师来说,可能想要知道班级里面所有学生的成绩。这样一来,不同的用户查询的字段列是不相同的,因此必须在查询之前动态指定查询语句的内容,这种根据实际需要临时组装成的SQL语句,就是动态SQL语句。 动态语句可以有完整的SQL语句组成,也可以根据操作分类,分别指定SELECT或INSERT等关键字,同时也可以指定查询对象和查询条件。 动态S ...
在SQL Server 2012中,可以对返回的查询结果排序,排序函数提供了一种按升序的方式组织输出结果集。用户可以为每一行,或每一个分组指定一个唯一的序号。SQL Server 2012中有四个可以使用的函数,分别是: 1.ROW_NUMBER函数 2.RANK函数 3.DENSE_RANK()函数 4.NTILE()函数 1.ROW_NUMBER函数为每条记录增添递增的顺序数值序号,即使存在相同的值夜是递增序号。 例:select row_number() over (order by ID asc) as ROWID,coumln1,coumln2 ...
常见的时间和日期函数有:获取系统当前日期的函数GETDATE() 返回数据库系统的时间和日期,返回值类型为datetime 返回UTC日期的函数UTCDATE() 返回当前UTC(世界标准时间)日期值 获取天数的函数DAY(d) 返回指定日期的d是一个月中的第几天,范围是1到31 获取月份的函数MONTH(d) 返回指定日期d中月份的整数值 获取年份的函数YEAR(d) 返回指定日期d中年份的整数值
文本和图像函数用于对文本或图像输入值或字段进行操作,并提供有关该值的基本信息。T-SQL中常用的文本函数有两个,及TEXTPRT函数和TEXTVALID函数。 TEXTPRT(column)函数用于返回对应varbinary格式的text、ntext或者image字段的文本指针值。查找到的文本指针值可应用与READTEXT、WRITETEXT、和UPDATETEXT语句。其中column是一个数据类型为text、ntext或者image的字段列。 例如:查询t1表中c2字段十六字节文本指针。 T-SQL代码如下:
在同时处理不同数据类型的值时,SQLServer一般会自动进行隐式类型转换。这对于数据类型相近的数值是有效的,比如int和float,但是对于其他数据类型,例如整型和字符型数据,隐式转换就无法实现了,此时必须使用显示转换。为了实现这种转换,T-SQL提供了两个显示转换的函数,分别是CAST函数和CONVERT函数。 CAST(x AS type)和CONVERT(type,x)函数将一个类型的值转换为另一个类型的值。 例如:CAST('121212' AS DATE)返回2012-12-12, CONVERT(TIME
Global site tag (gtag.js) - Google Analytics