﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-开拓自己-文章分类-数据库</title><link>http://www.blogjava.net/wwwlike/category/18508.html</link><description>NeverDrop</description><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 23:06:12 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 23:06:12 GMT</pubDate><ttl>60</ttl><item><title> sql server数据管理与实现（高级特性3）</title><link>http://www.blogjava.net/wwwlike/articles/91389.html</link><dc:creator>诚夏徕</dc:creator><author>诚夏徕</author><pubDate>Tue, 02 Jan 2007 06:50:00 GMT</pubDate><guid>http://www.blogjava.net/wwwlike/articles/91389.html</guid><wfw:comment>http://www.blogjava.net/wwwlike/comments/91389.html</wfw:comment><comments>http://www.blogjava.net/wwwlike/articles/91389.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wwwlike/comments/commentRss/91389.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wwwlike/services/trackbacks/91389.html</trackback:ping><description><![CDATA[
		<p>-------------------------------------------------------------存储过程---------------------------------------------------<br />存储过程创建时就在服务器上编译了，所以比执行单个sql语句快<br /><br />用exec 系统存储过程名称就可以调用，常用的有：</p>
		<p>sp_renamedb '原数据库名','修改后的名'                作用 修改数据库名称 在master下用（这个功能比较实用）</p>
		<p>sp_tables                                --当前数据库中而已查询的对象的列表</p>
		<p>sp_helpindex stuMarks  查看stuMarks表的索引<br /><br />Exec xp_cmdshell 'mkdir d:\bank',no_output 创建文件夹<br /><br />存储过程里也可以 调用视图<br /><br />用户自定义存储过程，<br /><br />1：不带参数的存储过程：<br /><br />create  exec proc 或者procedure  存储过程名 （过程名最好是proc_名称为好） <br />as<br />(可以在里面定义一些局部变量)<br />sql语句，任何都行<br />go<br /><br />调用<br />Exce 存储过程名<br /><br />2：带输入参数的存储过程：（每个参数 后面要有逗号）<br />create proc proc_name<br />(参数) @ mark1 int =60  (=60表示给了一个默认值，没传参数进来的时候，就用这个值)，<br />            @ mark2 int =60  (=60表示给了一个默认值，没传参数进来的时候，就用这个值)，<br />            @address varchar(20)<br />as<br />语句<br />go<br /><br />调用<br />1：Exce proc_name  不传任何值 表示使用默认的值 （但是@address没有给默认值所以 编译后会抱错）<br />  没有给默认值的输入参数，我们在调用存储过程的时候要给 值<br />  改：Exce proc_name @address='武汉'<br /><br />2：Exce proc_name 80，@address='武汉'  （只给了一个数字的参数，会默认把参数给第一个上面）<br /><br />3：Exce proc_name @mark2=80  @address='武汉'  这样才会把参数给到第2个上面<br />（要想不传参数必须所有的参数 在定义的时候都给上默认的值）<br /><br />3，带输出参数的存储过程<br /><br />创建：<br />create proc proc_name<br />--(定义参数)<br />@ id  int output  ,  --关键字，声明为输出参数，没有的话就是输入参数。<br />@ hehe int =10   --输入参数<br />as<br />sql 语句 给输出参数赋值/<br />go<br /> <br />调用<br />1：定义变量:用于接受存储过程返回的结果<br />  declare @id int<br />2： exec proc_name  @id output,60 --调用的时候也得声明<br /><br /><br />--------------------------------------------------------------------错误处理--------------------------------------------<br />raiserror 抛出错误<br />例子</p>
		<p>当我们不愿意的变量分数&gt;100时候</p>
		<p>if(@mark&gt;100)<br />begin<br />//开始抛出异常<br />Raiserror('几个分数不能是大于100的数字',16,1)  16代表错误等几  我门最好都写16，17，18，1表示错误状态，一般存储过程里都写1<br />return  --立即返回，退出存储过程</p>
		<p>end<br /><br /><br /><br /></p>
<img src ="http://www.blogjava.net/wwwlike/aggbug/91389.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wwwlike/" target="_blank">诚夏徕</a> 2007-01-02 14:50 <a href="http://www.blogjava.net/wwwlike/articles/91389.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> sql server数据管理与实现（高级特性2）</title><link>http://www.blogjava.net/wwwlike/articles/91375.html</link><dc:creator>诚夏徕</dc:creator><author>诚夏徕</author><pubDate>Tue, 02 Jan 2007 06:04:00 GMT</pubDate><guid>http://www.blogjava.net/wwwlike/articles/91375.html</guid><wfw:comment>http://www.blogjava.net/wwwlike/comments/91375.html</wfw:comment><comments>http://www.blogjava.net/wwwlike/articles/91375.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wwwlike/comments/commentRss/91375.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wwwlike/services/trackbacks/91375.html</trackback:ping><description><![CDATA[
		<p>-------------------------------------------------------事物--------------------------------------------------------------开始事物<br />begin transaction<br />提交事物<br />commit transaction<br />回滚事物<br />rollback transaction<br />一般是用系统变量 获得是否有错误的存在 <br />把@@error的值 累加到局部变量 @error里<br />最后判断@error是否为0为0 表示没有错误  可以提交事物</p>
		<p>不为0表示有错误 事物回滚<br /><br /><br />-------------------------------------------------------视图--------------------------------------------------------------<br />视图是虚拟表<br />我们一般只在视图上做查询<br /><br />视图的名称的起法 最好是view_数据库名_表名（或是一个使用这个视图人的名）<br />视图说明 也是放在 本数据库的sysObjects 里 通过name进行查找</p>
		<p>创建视图<br />create view 视图名<br />as<br />select语句 （可以在这里把列的名字 通过as ,=改成自己喜欢的中文）<br />go</p>
		<p>删除视图    drop view 视图名</p>
		<p>视图里存放的是sql语句</p>
		<p>使用视图的方法 select * from 视图名  （如果列名在上面被改了，这里查询时候就用改了后的）<br /><br />-------------------------------------------------------索引--------------------------------------------------------------<br />索引是sql server编排数据的内部方法，它为sql server提供一种方法来编排查询数据的路由<br />列的类型为 text,image,bit 的不能创建索引<br />查询的时候一般不需要人工指定使用哪个索引查寻 sql会根据所创的索引自动优化</p>
		<p>缺点：会降低增加 ，删除的速度，需要更多的存储空间<br />聚集索引 clustered  Index<br />唯一索引 unique  Index<br />非聚集索引  NoNclustered  Index<br /><br />创建了唯一约束，将会自动创建唯一索引，设置为主键，该列就默认为聚集索引<br /><br />聚集索引一个表只能一个，非聚集索引一个表可以多个<br /><br /><br /></p>
<img src ="http://www.blogjava.net/wwwlike/aggbug/91375.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wwwlike/" target="_blank">诚夏徕</a> 2007-01-02 14:04 <a href="http://www.blogjava.net/wwwlike/articles/91375.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> sql server数据管理与实现（高级特性1）</title><link>http://www.blogjava.net/wwwlike/articles/91364.html</link><dc:creator>诚夏徕</dc:creator><author>诚夏徕</author><pubDate>Tue, 02 Jan 2007 05:27:00 GMT</pubDate><guid>http://www.blogjava.net/wwwlike/articles/91364.html</guid><wfw:comment>http://www.blogjava.net/wwwlike/comments/91364.html</wfw:comment><comments>http://www.blogjava.net/wwwlike/articles/91364.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wwwlike/comments/commentRss/91364.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wwwlike/services/trackbacks/91364.html</trackback:ping><description><![CDATA[
		<p>（一） 声明局部变量<br /><br />在一个go里的是一个局部<br /><br />declare @变量名 变量类型<br /><br />给变量赋值：<br /><br />1set @变量名=变量值<br /><br />2select @变量名=列名 from 表名 where 产生一行数据<br /><br />用第2种情况的时候 注意最好只要产生一条记录，不然变量得到的值会是最后一条记录相应列上的值<br /><br />（2）全局变量<br /><br />例如：<br /><br />@@error<br />用于表示最近一条sql语句是否有错，有错返回非零的值</p>
		<p>@@identity<br />返回最后标识的值<br /><br />(3)T-sql里的一些语句<br /><br />1print '输出语句'<br /><br />2if  else 语句  如果有多条 语句就  if begin 语句1 语句2  end else begin 语句1 语句2 end  (2语句中间不用逗号)<br /><br />3while 循环语句                                                                            4条件判断 之 case<br />   while(循环条件).                                                                           case<br />begin                                                                                                      when 条件1 then 结果1<br />循环语句                                                                                              when 条件2 then 结果2<br />end                                                                                                   [else 结果3]<br />  可以用break跳出循环                                                                  end<br /><br /><br />（4）高级查询<br />1 in  ,not in  在条件判断时候用，表示是否在那个范围  他们后面多半是个查询语句 <br /><br />2exists ,not exists   多用在判断 是否有查询结果 exists(select * from jobs) 有查询结果 返回真ture.<br />所以这个多用在判断语句里<br /><br />3其他：<br />查询为null 用 is null<br /><br />给汉字的列赋值  select 汉字列名=(select查询语句 ，切记括号不能少)<br /><br />count(*)  表示满足条件的所有行数，就算某些列有空值也不影响 有多少行 count 的值就是多少<br />count(列名) 满足条件非空的这列 有多少行  count的值就是多少</p>
		<p>时间的表示 可以是<br />‘月-日-年’<br />也可以是<br />‘年/月/日’<br /><br />                                                                                                     <br /></p>
<img src ="http://www.blogjava.net/wwwlike/aggbug/91364.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wwwlike/" target="_blank">诚夏徕</a> 2007-01-02 13:27 <a href="http://www.blogjava.net/wwwlike/articles/91364.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>