随笔分类 -  SQL

摘要:一个SQL循环插入的代码,运行正常: BEGIN DECLARE @idx AS INT; DECLARE @NodeName nvarchar(255); DECLARE @OtherName nvarchar(255); DECLARE @ParentId INT; DECLARE... 阅读全文
posted @ 2015-03-19 15:26 伯箫 阅读(1131) 评论(0) 推荐(0)
摘要:什么是索引?它可以做什么用?如果不在数据库中建立索引,那么执行一条select语句就会进行全表扫描,也就是一条一条的找。打个比方:如果没有目录,查汉语字典就要一页页的翻,而有了目录只要查询目录即可。为了提高检索的速度,可以为经常进行检索的列添加索引,相当于创建目录。 怎么创建索引?一个表中有一个到多个字段,我们使用索引查找一条记录的时候,也能是以一个字段为准创建索引的方式,在表设计器中点击右键,选择“索引/键”→添加→在列中选择索引包含的列。引入一个概念:索引树 以查找汉语词典中的一个字为例子:假设我们使用的是拼音检索的方式,查“猪”这个字,它的拼音是”zhu”先找的是z,然后是h再是u,找z 阅读全文
posted @ 2013-01-28 11:02 伯箫 阅读(228) 评论(0) 推荐(0)
摘要:mssql中,使用系统存储过程:exec sp_rename 'oldtabelnaem','newtablename';orcale中:renameoldtablename to newtablename 阅读全文
posted @ 2012-12-13 09:47 伯箫 阅读(152) 评论(0) 推荐(0)
摘要:having称为分组滤过条件,也就是说是分组需要的条件,所以必须与group by联用也就是说,聚合函数计算的结果可以当条件来使用,因为它无法放在where里,只能通过having这种方式来解决。引自:http://zhidao.baidu.com/question/406745181.html 阅读全文
posted @ 2012-11-23 11:18 伯箫 阅读(655) 评论(0) 推荐(0)
摘要:第一种情况:横向显示先看下面的一个数据表:现在的需求是:统计出v_coun每一种取值情况下,对就的V_iseneded的数量。Oracle中的SQL代码如下:select v_count,sum(case when v_isended=1 then 1 else 0 end) as 一的数量,sum(case when v_isended=0 then 1 else 0 end) as 零的数量from t_vote group by v_count结果如下:第二种情况:竖向显示表结构如下:对应的列名意思为:员工工号、员工姓名、计件工资。上面只是一部分数据,总共的数据有七百多条现在的需求是:对 阅读全文
posted @ 2012-11-23 10:59 伯箫 阅读(1353) 评论(0) 推荐(0)
摘要:一个grade表 查出姓“张”的,平均分数大于75的同学的所有信息 select [name],score,course from gradewhere [name] like '张%'group by [name],score,course--SELECT后面每一列,除了出现在统计函数中的列以外, 阅读全文
posted @ 2012-09-25 00:08 伯箫 阅读(217) 评论(0) 推荐(0)
摘要:触发器就本质而言,触发器也是一种存储过程,它是一种特殊类型的存储过程。触发器只要满足一定的条件,它就可以触发完成各种简单和复杂的任务,可以帮助我们更好的维护数据库中数据的完整性。本章要重点理解触发器的特点和作用,掌握创建和管理触发器的方法。好处与坏处:好处:相对于外部程序、存储过程,触发器可以更快更高效的维护数据 坏处:触发器要用的恰到好处,一个大型应用里,触发器越少越好,触发器会使编程时源码的结构被迫打乱,为将来的程序修改、源码阅读带来很大不便。 触发器概述l Microsoft SQL Server 2005 提供了两种主要机制来强制执行业务规则和数据完整性:约束和触发器。l 触发器是一种 阅读全文
posted @ 2012-09-21 00:05 伯箫 阅读(368) 评论(0) 推荐(0)
摘要:有两个表:第一个是员工表dplo,表体如下:dno 员工编号 主键 , dname 员工姓名,dsalary 员工工资,pno 所属部门(外键)第二个表是部门表part,表休如下:pno 部门编号 主键, pname 部门名称 现要求,把销售部中员工工资不多于600的提升10% update dpl 阅读全文
posted @ 2012-07-01 23:10 伯箫 阅读(183) 评论(0) 推荐(0)
摘要:create table a(id varchar(20) primary key,password varchar(20) not null)create table b(id int identity(1,1) primary key,name varchar(50) not null,userId varchar(20),foreign key (userId) references a(id) on delete cascade on update cascade)--表B创建了外码userId 对应A的主码ID,声明了级联删除--测试数据:insert a values('1 阅读全文
posted @ 2012-07-01 22:56 伯箫 阅读(202) 评论(0) 推荐(0)
摘要:SQL分页查询的例子:select * from(select row_number() over(order by id) as rnumb from book) as tbnamewhere tbname. rnumb >=11 and tbname.rnumb=11 and tbname.rnumb<=20 的意思就很清楚了,就是查出表中按字段ID排序后的第11到第20条数据 阅读全文
posted @ 2012-07-01 22:52 伯箫 阅读(193) 评论(0) 推荐(0)