Readonly 只读 变量的值不允许被改变(一旦申明就不能改变她的值,除非在静态构造函数)

Const 常量 必须要是一个恒定的值

实体

字段的数据的类型 对应的是数据库的字段类型

属性的名字对应的是数据库的字段的名字

SelectValue可以设置

CommanBehavier.CloseConnnection 随着reader 关闭而reader所依赖的Connnection关闭

 

子查询就是在一个结果集中再去查询 在内存上的结果集上面

如果子查询跟在from后面 要给这个结果集取一个别名

Math.Ceiling(11.2) 天花板函数 如果有小数 取整+1     12

事件源 就是这个这个事件是谁触发的 封装在object sender里面

 

  1 --left join 
  2 ----左边的表的列全部会显示出来 如果右边的表没有对应就
  3 ---显示null
  4 
  5 ----右连接  right join
  6 ----右边的表的列全部会显示出来 如果左边的表没有对应就
  7 ---显示null
  8 -----cross join 交叉连接  笛卡儿积3*3 不写连接条件
  9 
 10 -----视图的本质就是一条SQL语句
 11 ----视图是一张虚拟的表 真正的数据是存在与视图相关的表中
 12 ---视图的作用 减少代码的复杂度
 13 
 14 -------------------------------------
 15 -----视图删除--如果涉及多个表的操作 就会失败---
 16 --如果只有一个表 就可以删除
 17 
 18 -------------------------------
 19 
 20 ----视图修改---如果会影响多个基表就会失败,如果只影响
 21 ----一个表 就可以修改成功
 22 ---------------------------------
 23 
 24 ----------视图插入---
 25 ---视图插入如果新增会影响多个基表 则新增会失败
 26 ---如果视图的列在于数据表中的列相匹配并且视
 27 ---图中没有出现的列,允许为null,或者默认值 新增成功
 28 
 29 
 30 ---------------------------------
 31 -----视图中只能存储查询语句 查询的结果集只有一个
 32 
 33 
 34 
 35 ----------------------------------------------------------
 36 
 37 -----局部变量
 38 ---------声明一个局部变量-----只在一个处理批次有效(go关键字)
 39 declare @rowCount int
 40 declare @max int
 41 ----赋值
 42 set @rowCount=12
 43 select @rowCount=13
 44 select @rowCount
 45 --------
 46 select @rowCount=Count(*),@max=Max(StudentNo) from Student
 47 select @rowCount,@max
 48 -----通过select赋值的时候 如果有多个列 会赋最后一个的值
 49 select @max=StudentNo from Student
 50 select @rowCount,@max
 51 
 52 --------全局变量
 53 ---全局变量是有系统的来定义的和维护 以@@开头
 54 declare @@test int ---也是局部变量 只不过是以@test命名的变量
 55 -------几个重要的全局变量
 56 select @@VERSION
 57 select @@IDENTITY
 58 insert into Grade values('jdiadio')
 59 select @@IDENTITY
 60 select @@ROWCOUNT ---1
 61 insert into Grade values('dsfs')
 62 insert into Grade values('fsfs')
 63 select @@ROWCOUNT ---1
 64 select @@ERROR------这能保存上一条语句的错误,
 65 ---如果是在一个批次是保存该批次的错误,否则就是全局的错误
 66 
 67 ----------事务-----
 68 declare @myerror int
 69 begin transaction
 70 -----在roolback或者commit之前的对数据库的操作会看作一个整体
 71 update Grade set GradeName='事务'
 72 set @myerror+=@@ERROR
 73 update Grade set GradeName=null
 74 set @myerror+=@@ERROR
 75 if @myerror<=0
 76 begin
 77 print'没错误'
 78 commit transaction----对数据库操作确认
 79 end
 80 else
 81 begin
 82 print '有错误'
 83 rollback transaction------对数据库的操作回滚(只是对数据的操作回滚,其他操作不变)
 84 end
 85 
 86 
 87 
 88 -------------每一种错误都有一个消息号 没有错误消息号就是0
 89 
 90 ---C#版的事务 SqlTransaction
 91 ----开启事务之前必须要打开
 92 -----要将sql事务对象传给命令对象
 93 
 94 
 95 
 96 
 97 ----------------存储过程
 98 --相当于C#中德方法 封装了一段业务逻辑代码
 99 
100 ---创建存储
101 ----以下是一个没有返回值 没有参数的存储过程
102 go
103 create proc myproc
104 As
105 begin
106 select * from Student
107 end
108 
109 ---修改
110 go
111 Alter proc myproc
112 AS
113 begin
114 select top 10 * from Student
115 end
116 ---调用存储过程
117 exec myproc
118 
119 ------创建带参数的存储过程
120 go
121 create proc myProcWithI
122 (
123 @name nvarchar(20)
124 )
125 AS
126 begin
127 select top 10 * from Student where StudentName=@name
128 end
129 ---传参数的时候 如果传递的是变量 执行存储过程的时候 必须要加上exec
130 declare @myName nvarchar(20)='花木兰女'
131 --myProcWithI '花木兰'---不报错
132 ----myProcWithI @myName---报错
133 exec myProcWithI @myName
134 
135 go
136 create proc myProcWithIAny
137 (
138 @name nvarchar(20),---用逗号隔开
139 @GradeId int=1---可以给默认值
140 )
141 AS
142 begin
143 select top 10 * from Student where StudentName=@name and GradeId=@GradeId
144 end
145 ---调用的时候 传递的参数 类型 顺序要一致
146 declare @myNames nvarchar(20)='花木兰女'
147 --myProcWithI '花木兰'---不报错
148 ----myProcWithI @myName---报错
149 ---显示传递参数
150 exec myProcWithIAny @name='花木兰女',@GradeId=1
151 
152 ---------
153 exec myProcWithIAny @myNames,2
154 exec myProcWithIAny '花木兰女',default
155 
156 ------带输出参数的存储过程  --ref  out
157 go
158 create proc myProcWithIOut
159 (
160 @rowCount int OutPut ---用output关键字标明这个参数是一个输出参数
161 )
162 AS
163 begin
164 select top 10 * from Student
165 select @rowCount=Count(*) from Student
166 end
167 
168 declare @myRowCount int ---默认值是null
169 exec myProcWithIOut @myRowCount output
170 select @myRowCount
171 
172 ----带返回值的存储过程
173 go
174 create proc up_testForRet
175 @StudentNo int=12
176 AS
177 begin
178 select * from Student where StudentNo=@StudentNo
179 return 10
180 end
181 declare @you int
182  exec @you=up_testForRet
183 select @you
184 
185 ---------触发器
186 ----触发器是基于表的
187 ----触发器是特殊的存储过程 自动调用 不能带参数
188 go
189 create trigger tg_test on Grade
190 after insert  ---只能insert update delete  但是select是不允许
191 AS
192 begin
193 select * from Grade
194 end
195 insert into Grade values('sadad')
196 
197 
198 ----instead of-------代替原来的操作---------------------------
199 go
200 create trigger tg_test2 on Grade
201 instead of insert  ---只能insert update delete  但是select是不允许
202 AS
203 begin
204 select * from Grade
205 end
206 insert into Grade values('errrrr')
207 
208 ------------------------------------------------
209 ---------触发器里面有两个表
210 ---inserted 表存的是新数据
211 ---deleteed 表存的是久数据
212 go
213 create trigger tg_test3 on Grade
214 after insert  ---只能insert update delete  但是select是不允许
215 AS
216 begin
217 select * from inserted
218 select * from deleted
219 end
220 insert into Grade values('sadad')
221 --------------------------------
222 go
223 create trigger tg_test4 on Grade
224 after insert,update,delete  ---只能insert update delete  但是select是不允许
225 AS
226 begin
227 select * from inserted
228 select * from deleted
229 end
230 insert into Grade values('sadad')
231 
232 -------触发器可以用来数据备份  方法:表拷贝
233 ----update(列名) 判断指定的列是否被更新
234 go
235 create trigger tg_test5 on Grade
236 after update  ---只能insert update delete  但是select是不允许
237 AS
238 begin
239 if(update(GradeName))
240 select * from inserted
241 select * from deleted
242 end
243 go
244 create trigger tg_test6 on Grade
245 for update  ---for也行
246 AS
247 begin
248 if(update(GradeName))
249 select * from inserted
250 select * from deleted
251 end
252 ------------前面是DML
253 ------------------DDL
254 
255 
256 -------------索引页可以提高查询效率 但是会降低 增删改的效率
257 
258 
259 ---------------填充因:为索引页预留的空间   可以自己设定   
260 ---在右键 选择要设定的索引   “填充规范”里面 里面填的是百分数----
261 -----
262 ------------------------------------
263 -----聚集索引 物理数据表上的排序的依据(索引) 可以设定 右键 选择要设定的索引  设定为聚集索引 是
264 -----一个表中聚集索引自能
265 -----非聚集索引 逻辑索引
266 
267 --------局部临时表 : 只能在当前连接中 表存在系统数据库的tempdb中
268 -----一旦连接关闭 就没法访问
269 create table #tableTemp
270 (
271 id int identity(1,1),
272 nname nvarchar(20)
273 )
274 select * from #tableTemp
275 --------希望结果集临时存储
276 ------------全局临时表 可以在所有的连接中访问 但是
277 ----一旦创建这个临时表的连接关闭 就没法访问
278 create table ##tableTemps
279 (
280 id int identity(1,1),
281 nname nvarchar(20)
282 )
283 
284 select * from ##tableTemps
285 -----表变量  但存储数据很少
286 declare @table table(co1 int,col2 varchar)

 

posted on 2013-01-03 00:26  陈谨  阅读(160)  评论(0编辑  收藏  举报