欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

基本的SQL代码

程序员文章站 2022-07-03 07:58:28
...
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语句 数据库