基本的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. 数据表(创建|修改|删除)


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

   drop table BookType

--创建图书类型表:BookType

(

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

)

alter table BookType

--删除表BookType


3. 创建主键

--为表添加主键

add constraint PK_ProductInfo_ProductId primary key(ProductId)


4. 创建外键

--为表添加外键

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


5. 检查约束

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

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

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

6. 惟一约束


alter table productinfo


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

--T-SQL中定义变量

declare @i int;

set @sum = 0;

select @sum=0,@i=1;

8. T-SQL编程(if-else循环)


declare @i int;

if(@i%2 = 0)

else

go

9. T-SQL编程(while)


declare @i int;

while (@i

  print @i;

end

10. T-SQL编程(case)


select intComputerId,

        when intInUse=0 then '空闲'

        end,

from tblcomputer;

select intComputerId,

        when 0 then '空闲'

        end,

from tblcomputer

11. 视图


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. 存储过程(无参数)

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

as

  select * from tblcomputer;

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



13. 存储过程(含输入参数)


create procedure pro_getComputerState

as

  select intComputerId,

when 0 then '未使用'

end,

    chvDescription

  where intInuse=@state

go

declare @state int;

exec pro_getComputerState @state;

14. 存储过程(含输入参数、输出参数)


create proc pro_getComputerStateById

@state int output

begin

  from tblcomputer

end

declare @state int, @computerId int;

exec pro_getComputerStateById @computerId,@state output


15. 触发器

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

  drop trigger tr_insertRecord

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

on TblRecordInfo

as

  declare @cardid int, @startTime datetime;

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

end

16. 事务处理


declare @sumError int;

begin transaction

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

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

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

begin

rollback transaction

else

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

end


[/align]

你可能感兴趣的:(sql语句,数据库)