首页 > 代码库 > 数据库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语句作为一个整体一起向系统提交,要么都执行、要么都不执行。语法步骤:

  1. 开始事务:begin transaction  
  2. 事务提交:commit transaction 
  3. 事务回滚:rollback transaction

存储过程:就像数据库中运行方法(函数) 和C#里的方法一样,由存储过程名/存储过程参数组成/可以有返回结果。 前面学的if else/while/变量 等,都可以在存储过程中使用。

  1. 由系统定义,存放在master数据库中 名称以“sp_”开头或”xp_”开头。

  2. 由用户在自己的数据库中创建的存储过程

1 CREATE  PROC[EDURE]  存储过程名 
2     @参数1  数据类型 = 默认值 OUTPUT,-------------参数是输出类型
3     @参数n  数据类型 = 默认值 OUTPUT
4     AS----------------------------------------------------后跟要执行的代码
5       SQL语句
  1. 参数说明: 参数可选 ------------参数分为输入参数、输出参数------------ 输入参数允许有默认值
  2. 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-----------非触发器代码