随笔分类 - SQLSERVER
PLSQL与SQL执行计划对比
摘要:SqlServer 执行计划分析 PLSql 执行计划分析 plsql的是否是全表扫描,是否走索引没弄出来,白天问问好了,开始学数据库优化了。
阅读全文
数据库对并发的处理-乐观锁与悲观锁
摘要:假如两个线程同时修改数据库同一条记录,就会导致后一条记录覆盖前一条,从而引发一些问题。 例如: 一个售票系统有一个余票数,客户端每调用一次出票方法,余票数就减一。 情景: 总共300张票,假设两个售票点,恰好在同一时间出票,它们做的操作都是先查询余票数,然后减一。 一般的sql语句: declare
阅读全文
数据库对并发的处理 乐观锁-悲观锁
摘要:事务处理(多用户同时操作一条信息时是用-并发) 在c/s或多层中,如果两个用户同时打开一条记录,修改后提交会产生更新冲突; 据说办法有二:1。打开同时锁定表的记录 2。浦获错误,撤消其中一个用户的修改,但是很少见到具体实现的代码;请大家告诉具体的代码怎么写: 1。打开时如何锁定一条记录? 2。如何扑
阅读全文
触发器的简单用法
摘要:1 create table tbl1 2 ( 3 id int identity(1,1) primary key, 4 name nvarchar(10) 5 ); 6 create table tbl2 7 ( 8 id int identity(1,1) prima...
阅读全文
如何获得刚刚插入数据的id
摘要:1 create table tblInsert 2 ( 3 id int identity(1,1) primary key, 4 name nvarchar(10) 5 ); 6 7 insert into tblInsert(name) values('张三'); 8 9...
阅读全文
SqlServer存储过程,学习
摘要:存储过程:存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。功能强大,限制少如何调用存储过程1 --无参数的存储过程2 exec sp_databas...
阅读全文
视图view
摘要:视图——一个存在数据库中的虚拟表 -> 视图相当于一个存储在数据库中的一个查询步骤 -> 定义语法: create view vw_视图名 as 结果集; 定义完以后,在数据库的视图中就可以看到视图了 每次查询的时候,就可以将视图当做表来用 -> 使用视图可以提高安全性-...
阅读全文
CTE(公用表表达式)
摘要:-> 将复杂的派生表写在中间from子句中变得十分臃肿,给为维护等操作带来麻烦 -> 将这个派生表要是能提前到前面,给一个别名,后面查询的时候直接使用别名即可语法: with 表的别名 as ( 结果集 )用法: select * from 别名使用公用表表达式的递归查询:http:...
阅读全文
派生表
摘要:有时需要将一个比较复杂的查询进行一个封装,将其作为一个"独立的数据源", 放在from后面当做一张表来用步骤: -> 将查询的结果用圆括号括起,取别名,例如tbl -> 必须保证每条数据有列名 -> 将其放在from后面就好像一张表一样 -> 使用字段的时候(select中,where条件中...
阅读全文
事务
摘要:什么是事务(Transaction)?指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)--也就是由多个sql语句组成,必须作为一个整体执行这些sql语句作为一个整体一起向系统提交,要么都执行、要么都不执行事务的4个特性:事务是作为单个逻辑工作单元执行的一系列操作。一个逻辑工作单元必须...
阅读全文
over()的用法
摘要:开窗函数over的常用方法-- 1、为每条数据显示聚合信息-- 2、为每条数据提供分组的聚合函数结果-- 3、与排名函数一起使用-- 1 为每条数据显示聚合信息-- 准备一些数据-- 该查询表只能用在SQL Server 2008中select * from ( values (1, '张三', ...
阅读全文
系统数据库
摘要:master :主数据库 所有操作 、多少张表model :新建数据库的创建模板 默认路径、默认大小msdb :用于调度任务和发出警告tempdb :临时数据库 数据库重启,内容清空
阅读全文
truncate table 与delete的区别
摘要:1.DELETE ・DML语言 ・可以回退 ・可以有条件的删除 DELETE FROM 表名 WHERE 条件2.TRUNCATE TABLE ・DDL语言 ・无法回退 ・默认所有的表内容都删除 ・删除速度比delete快。 TRUNCATE TABLE 表名
阅读全文
数据库,表的创建与删除
摘要:使用T-SQL创建数据库的时候,脚本常常加上 if db_id('数据库的名字') is not null drop database 数据库的名字;-- 表示如果这个数据库存在就将其删掉,再重新创建 -- 函数db_id()表示获取数据库的id建表的时候前面一般加上if(OBJECT_ID('Te...
阅读全文
SqlServer创建函数实现分页
摘要:内联表值函数是一种可重用的表表达式,能够支持输入参数。除了支持输入参数以外,内联表值函数在其他方面都与视图相似。(可以将内联表值函数看作是一种参数化的视图,尽管没有这种正式的说法)。 表值函数有分为内联表值函数(相当于参数化的视图)和多语句表值函数,二者原理一样,功能略有不同当然写法也就略有不同。
阅读全文