首页 > 代码库 > 数据库2014年6月10日11:13:10
数据库2014年6月10日11:13:10
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的版本)-----全局变量由系统定义和维护,我们只能读取,不能修改全局变量的值。--------@@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-----------非触发器代码