SQL语句创建数据库:
create table student(id int not null primary key
,number nvarchar not
null
,name nvarchar not null
,brithday DateTime default
getdate()
, adress nvarchar )
创建一个学生表,主键为id,not null 表示不为空,default getdate()表示设定默认值为当前时间。
空值处理函数:select isnull
(Name,‘佚名‘) as 姓名 from Employee---Name列中有null则变为佚名处理。
局部变量:先声明再赋值---declare @变量名 数据类型;-------declare @name
nvarchar(50)。赋值有两种方式【1】set @变量名=值--------用于普通赋值。【2】 select
@变量名=值--------用于从表中查询到数据并赋值---------select @name=title from book where
id=2!
全局变量:系统变量,全局变量必须以@@作为前缀,比如@@version(SQL
Server的版本)-----全局变量由系统定义和维护,我们只能读取,不能修改全局变量的值。[email protected]@identity,最后一次插入的标识值(SQLhelper有其使用)。
SQL server中的if else语句:
1 IF(条件表达式)
2 BEGIN -----------------------相当于C#里的{
3 语句1 -----------------------判断语句
4 .......
5 END --------------------------相当于C#里的}
6 ELSE
7 BEGIN
8 语句1
9 ……
10 END
SQL server中的while语句:
1 WHILE(条件表达式)
2 BEGIN -------------------------------相当于C#里的{
3 语句
4 ……
5 BREAK------------------------------------不能省!
6 END ----------------------------------相当于C#里的}
事务-为什么需要事务?
比如,借钱问题: 假定钱从A转到B,至少需要两步:【1】 A的资金减少 【2】然后B的资金相应增加.
指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)-----也就是由多个sql语句组成,必须作为一个整体执行-----这些sql语句作为一个整体一起向系统提交,要么都执行、要么都不执行。语法步骤:
- 开始事务:begin transaction
- 事务提交:commit transaction
- 事务回滚:rollback transaction
存储过程:就像数据库中运行方法(函数)
和C#里的方法一样,由存储过程名/存储过程参数组成/可以有返回结果。 前面学的if else/while/变量 等,都可以在存储过程中使用。
- 由系统定义,存放在master数据库中 名称以“sp_”开头或”xp_”开头。
- 由用户在自己的数据库中创建的存储过程
1 CREATE PROC[EDURE] 存储过程名
2 @参数1 数据类型 = 默认值 OUTPUT,-------------参数是输出类型
3 @参数n 数据类型 = 默认值 OUTPUT
4 AS----------------------------------------------------后跟要执行的代码
5 SQL语句
- 参数说明: 参数可选 ------------参数分为输入参数、输出参数------------ 输入参数允许有默认值
- EXEC 过程名
[参数]-----------执行存储过程。
1 CREATE PROC USP_GetBookById
2 @ cateid int
3 AS
4 select * from Book where cid=@cateid
5
6 --执行存储过程:
7 EXEC USP_GetBookById 5
触发器:触发器是一种特殊类型的存储过程,它不同于前面介绍过的一般的存储过程(方法)。一般的存储过程通过存储过程名称被直接调用,而触发器主要是通过事件进行触发而被执行。
常见的触发器有三种:分别应用于Insert , Update , Delete 事件。
1 CREATE TRIGGER triggerName ON Table-------------------------表上创建触发器
2 for UPDATE/INSERT/DELETE------------------------------三种触发器
3 AS------------------------------------后跟要执行的代码
4 begin-----------------------------------{
5 .......6 end-------------------------------------}
实例:
1 CREATE TRIGGER testForFun ON dbo.Category
2 for UPDATE
3 AS
4 begin
5 select * from book---------------------------------执行下面update代码之后,执行的语句select * from book
6 end
7 -------------update Category set c_name = ‘Android2‘ where c_id=3-----------非触发器代码
数据库2014年6月10日11:13:10