基本的SQL代码

1.创建数据库
/*创建数据库libraryDB*/
CREATE DATABASE libraryDB
ON
(
/*数据库文件的详细描述*/
NAME = 'libraryDB_mdf', --主数据库文件的逻辑名
FILENAME = 'E:\library\libraryDB_mdf.mdf', --主数据文件的物理名
SIZE = 3MB, --初始大小
FILEGROWTH = 20% --增长率
)
LOG ON
(
/*日志文件的详细描述*/
NAME = 'libraryDB_ldf', --日志文件的逻辑名
FILENAME = 'E:\library\libraryDB_ldf.ldf', --日志文件的物理名
SIZE = 1MB, --初始大小
MAXSIZE = 15MB, --最大值
FILEGROWTH = 10% --增长率
)
GO

2. [b]数据表(创建|修改|删除)[/b]


if exists (select 1 from sysobjects where [name]='BookType')

drop table BookType

--创建图书类型表:BookType

(

TypeName varchar(50) not null, --图书类型名称

)

alter table BookType

--删除表BookType


3. [b]创建主键[/b]

--为表添加主键

add constraint PK_ProductInfo_ProductId primary key(ProductId)


4. [b]创建外键[/b]

--为表添加外键

add constraint FK_Promotion_Product foreign key (ProductId) references ProductInfo(ProductId)


5. [b]检查约束[/b]

--创建检查约束(商品编号的长度大于2)

add constraint CK_Product_Number check(len(ProductNumber)>2)--删除外键只需要将add替换为drop

--check(Gender in ('男', '女'))

6. [b]惟一约束[/b]


alter table productinfo


7. [b]T-SQL编程(定义变量、为变量赋值)[/b]

--T-SQL中定义变量

declare @i int;

set @sum = 0;

select @sum=0,@i=1;

8. [b]T-SQL编程(if-else循环)[/b]


declare @i int;

if(@i%2 = 0)

else

go

9. [b]T-SQL编程(while)[/b]


declare @i int;

while (@i

print @i;

end

10. [b]T-SQL编程(case)[/b]


select intComputerId,

when intInUse=0 then '空闲'

end,

from tblcomputer;

select intComputerId,

when 0 then '空闲'

end,

from tblcomputer

11. [b]视图[/b]


create view view_RecordDetail

select cp.chvComputerName, ci.chvUserName, ri.dtmStart, ri.dtmEnd, ri.mnyFee

inner join TblCardInfo as ci on ri.intCardId=ci.intCardId--内连接用inner join,同时应该为两张表指定连接字段

--使用视图(和表很相似)


12. [b]存储过程(无参数)[/b]

--创建不带参数的存储过程

as

select * from tblcomputer;

--调用不带参数的存储过程



13. [b]存储过程(含输入参数)[/b]


create procedure pro_getComputerState

as

select intComputerId,

when 0 then '未使用'

end,

chvDescription

where intInuse=@state

go

declare @state int;

exec pro_getComputerState @state;

14. [b]存储过程(含输入参数、输出参数)[/b]


create proc pro_getComputerStateById

@state int output

begin

from tblcomputer

end

declare @state int, @computerId int;

exec pro_getComputerStateById @computerId,@state output


15. [b]触发器[/b]

--判断触发器是否存在,存在则删除触发器

drop trigger tr_insertRecord

--如何定义|创建一个触发器

on TblRecordInfo

as

declare @cardid int, @startTime datetime;

select '卡号:'+convert(nvarchar(5), @cardid);

end

16. [b]事务处理[/b]


declare @sumError int;

[b]begin transaction[/b]

--通过系统变量@@error可以获取上次被执行的sql是否执行成功,如果执行成功@@error的值为0,否则为1

update tblaccount set mnycurrentmoney = mnycurrentmoney - 200000 where chvAccountName='安钢集团'

--判断是否在执行过程中出现错误

begin

[b]rollback transaction[/b]

else

print '事务执行成功,即将提交'

end


[/align]

你可能感兴趣的:(数据库)