小虾的sql server 2000 成长之路
1.两个表A,B,A有数据,B无数据,两个表结构一样,如何把A表的数据复制到B表的数据?
select into B from A
2.有一个表A(id ,logintime)logintime是datetime类型,如何将时间在12月24日的数据取出来,并按logintime排序
select * from 时间 where logintime >='2008-12-24 00:00:00.000'and logintime<'2008-12-25 00:00:00.000'
order by logintime
注:因为datetime类型返回时小时和分钟和秒都是默认为00:00:00.000,所以直接取数据的话只能取到0小时0分钟0秒的记录。
不知道怎么会这样,我用between 取中间的哪一段时间会出错,是不是因为between只能确定一个数值的范围呢?而datetime类
型的判断不了。还有待大家帮助指教...
3.建立一个临时表,有一个字段(id)int类型,如何将1~10000插入表中的字段id
create table #临时表(id int)
declare @n int
set @n=1
while @n<=10000
begin
insert into #临时表
values(@n)
set @n=@n+1
end
select * from #临时表
注:临时表分为两种,一种是全局临时表,一种是普通临时表,全局临时表对于整个数据库的用户都可以使用,而普通临时表只针对创建他的用户使用
临时表的内部处理是采用存储过程对表进行封装,临时表的有点是能够节省系统的资源提高速度,因为当你停止服务器的运行时,该临时表就会被删除。
由于临时表的内部处理小虾还不懂,希望各位大哥哥多多指教...谢谢!
4.写出系统变量
变量分为两种,一种是系统变量,一种是局部变量
@@error:返回最后执行的tql错误代码,返回值为integer,通常用0和!0来判断@error,0表示代码正确,!0表示代码错误.
@@rowcount:返回受上一句语句影响的行数,除了定义变量语句外,其他语句都可以影响其值.
@@identity:返回最后插入的标识值,返回类型为numeric(数字)
5.有关存储过程的编程
--创建存储过程
create procedure p_date_productinfo(
@o_date datetime,
@p_no varchar(20),
@total_quantity int output,
@total_money money output)
as
select @total_quantity=sum(o_quantity),@total_money=sum(o_quantity)*p_price
from orders,products
where orders.p_no=products.p_no and o_date=@o_date and orders.p_no=@p_no
group by orders.p_no,p_price
--使用存储过程
declare @total_quantity int
declare @total_money money
exec p_date_productinfo'2005-08-09','0910810004',@total_quantity output,@total_money output
print convert(int,@total_quantity)
print convert(int,@total_money)
注:这是我昨晚写的一条存储过程语句,功能也很简单,在这不多说,我觉得存储过程的应用跟c语言里面的函数差不多,都是
通过输入和返回来实现他的功能.但是在使用时有点麻烦,要定义输出参数,感觉到有一种数据冗余,对于学数据库的来说,数据
冗余是很敏感的...其他版本我就不知道,至少2000是这样的.哈~
6.备份一个表,导出文本文件
用sql备份表和导出我就不知道怎么弄了,我只会用企业管理器备份和导出.
7.在T-SQL中,having,case,rollup的作用
having:主要用于聚合函数(sum,avg,max,count,min),如果用到sum和count的话,要对目标字段进行分组,
就是把相同字段的分成一个组,然后通过having对其进行筛选,having和where的区别就是作用的对象不相同,
where 后面跟的是字段的筛选条件,而having跟的是分组后组的筛选条件。
case:主要运用于多支选择结构。具体语法有 case 字段名a when 字段名a then 字段名b...else 其他
还有一种搜索的case语句,结果如上,但是它会对目标表进行筛选,在第一个条件下成立后,将它移除,然后进行
第二次判断.例如:
select *,等级=case
when grade>=90 then '优秀'
when grade>=80 then '良好'
...
else '不及格'
end
from score where '条件'
在进行第一次判断后,会把>=90的排除,第二次判断相当于进行between 80 and 89。
**rollup:对于这个我没怎么使用过它 ,只知道它可以用于数据汇总,会把你的字段值独一置空而进行数据汇总,
具体的用法我也没试过,我会去尝试它的,如果哪个大哥对其了解较深刻的话,给小弟一些信息参考。
8.对题2建立索引。create clustered index idx时间 on A(id)
注:索引分两种,一种是聚集索引,一种是非聚集索引。聚集索引在每个表中只可以建一个,而非聚集索引可以建249个。
一个表的存储由两部分组成,一部分存储表的数据页面,一部分存放表的索引页面。索引页面相对来说比较小,所以用
索引搜索数据比较方便。
聚集索引主要按物理页面的数据顺序存储,例如书的目录就是建聚集索引。
非聚集索引按逻辑页面的数据存储,也就是利用指针指向另一个字段。索引页面存储了字段值和地址值。例如对日记进行分类,
一类是天气晴,一类是天气雨,it类或者生活类,这就相当在日记里面建立了非聚集索引,可以更方便的让你找到每一页。
9.将表中的所有数据删除,该语句与delete有什么区别?
truncate table 表名
该语句与delete的区别是:它可以一次性的删除表中所有的数据,而delete一次只可以删除一行。用truncate可以节省记录
日志里面资源,不用单独记录多条delete,可以减少备份日志里面的压力。
10.触发器的作用
触发器主要是为了不让用户把不必要的数据写入表中
触发器有两种类型:一种是after触发器,一种是instead of 触发器
after触发器:主要是针对insert,delete,update操作,当执行某一种操作时,触发器就会自动的触发执行
instead of 触发器:主要应用于视图,当对视图进行修改时,触发器也自动执行,但不响应里面的insert,delete,update操作。
**instead of 触发器可以修改多个表或视图中的数据,可以同时更新。
触发器的主要应用是通过inserted,deleted这两个临时表实现的。可以从inserted表中找到用户新插入的值,可以在deleted表中
找到用户删除的值。在检索用户是否更新表中的数据时,可以用系统变量@@rowcount对其进行判断,当@@rowcount=0时,表示
对表中的数据更新错误,或者找不到数据。当@@rowcount=1时,表示返回一行更新的记录,表示更新了一行,假如不能级联更新或
删除时,可以用rollback对其进行回滚。insert触发器也有代替check约束的功能,主要是对inserted表中的插入项进行判断,在加上
rollback就可以实现check约束了。
**有待实现补充:rollup 和 instead of 触发器的例子应用!
**由于临近考试,有些东西做的不足请大家原谅!
转载于:https://www.cnblogs.com/magicchaiy/archive/2009/01/03/1367452.html
小虾的sql server 2000 成长之路相关推荐
- SQL SERVER 2000安装遇到的问题小汇总(转载)
[1]安装程序配置服务器失败 需要修改下注册表 1 打开注册表 在"开始"--"运行"键入 "regedit" 2 删除注册表如下键值 ...
- SQL server 2000 和2005中怎么让ldf文档变小
SQL server 2005 打开数据库-- 新建查询--输入以下两条命令: Dump transaction databasename with no_log backup log databas ...
- 使用 SQL Server 2000 索引视图提高性能1
什么是索引视图? 许多年来,Microsoft SQL Server" 一直都提供创建虚拟表(称为视图)的功能.在过去,这些视图主要有两种用途: 提供安全机制,将用户限制在一个或多个基表中的 ...
- SQL Server 2000 索引视图提高性能2
创建索引视图 创建索引视图所需的步骤与视图的成功实现密不可分. 确保将在视图中引用的所有现有表的 SET 选项都正确. 创建任何新表和视图之前,确保会话的 SET 选项已正确设置. 确保视图定义是确定 ...
- 《MS SQL Server 2000管理员手册》系列——8. 管理 Microsoft SQL Server 服务
8. 管理 Microsoft SQL Server 服务 SQL Server 服务组件 使用SQL Server服务管理员 使用 Windows 2000 服务控制管理员 使用 SQL Serve ...
- window xp系统安装php环境_Windows Server 2003及XP系统如何安装SQL Server 2000数据库?
年头年初节假日就是小编的梗,忙得不可开交,这不越冷越刮风昨天服务器又崩了,折腾了一天安装好Windows Server 2003和IIS(这系统是有点老了,主要是单位机子和各系统也有点年头了,没办法) ...
- 使用Microsoft SQL Server 2000全文搜索功能构建Web搜索应用程序 --作者:Andrew B. Cencini...
[摘要]了解如何充分利用SQL Server 2000的全文搜索功能.本文包含有关实现最大吞吐量和最佳性能的几点提示和技巧. 概述 使用Microsoft© SQL Server 2000的全文搜索功 ...
- Microsoft SQL Server 2000整合规划
Microsoft SQL Server 2000整合规划 更新日期: 2004年06月24日 SQL Server技术文章 作者:Allan Hirt 投稿人:Tom Davidson和Shaun ...
- SQL Server 2000中的并行处理和执行计划中的位图运算符
SQL Server 2000中的并行处理和执行计划中的位图运算符 摘抄自:SQLServer 2000并行处理和位图简介 刘志斌 并行查询介绍 Degree of Parallelism(并行度) ...
最新文章
- 算法---------前 K 个高频元素(Java版本)
- 如何修改容器的一些参数
- 1.Prometheus快速入门,Prometheus+node_exporter安装
- Django扩展自定义manage命令
- python web开发-flask访问请求数据request
- SSH远程登录失败,提示“Password authentication failed”
- Struts2源码阅读(六)_ActionProxyActionInvocation
- mysql命令:set sql_log_bin=on/off
- IMPORT MULTIPLE JS
- 怎么把电脑计算机桌面调出来,手把手教你电脑怎么设置屏保
- 更改docker ip
- 使用宏将xlsx格式文件批量转为xls格式文件
- 服务器linux攻击方法,Linux操作系统中实现DDOS攻击的方法
- python word文档文字批量替换与删除
- 好看的皮囊 · 也是大自然的杰作 · 全球高质量 · 美图 · 集中营 · 美女 · 2017-08-23期...
- 惠普电脑无故出现第三方屏保
- Spring - 解决 SpringUtil getBean NPE 问题
- 山东工商学院计算机2军训,山东工商学院举行2018级新生开学典礼暨军训动员大会...
- ADSP-21489的图形化编程详解(6:一段 EQ,24 段 EQ,31段EQ)
- Windows10环境下自己配置Pytracking详细流程(有参考博客)