T-SQL常用关键字和语法

CREATE DATABASE TABLENAME
(
    --主数据文件的具体描述
    name='employee1',
    filename='d:、databas、eemployee1_data.mdf',
    size=10,
    filegrowth=10%
)
(
    --次数据文件的具体描述
    name='employee2',
    filename='d:、databas、eemployee2_data.ndf',
    size=20
    maxsize=100,
    filegrowth=1
)
log on
(
    --日志文件1的具体描述
    name='employeelog1',
    filename='d:、databas、eemployeelog1_data.ldf',
    size=10,
    filegrowth=1
)
(
    --日志文件2的具体描述
    name='employeelog2',
    filename='d:、databas、eemployeelog2_log.ldf',
    size=10,
    filegrowth=1
)
 建表

create table stuMarks(
    ExamNo varchar(10) not null primary key,--主键
    stuNo varchar(6) references stuInfo(stuNo) not null,--stuInfo表内stuNo的外键
    writtenExam int,
    labExam int
)
创建用户和分配权限


--创建WINDOWS身份验证的帐户
exec sp_grantlogin 'windows 域名域帐户'

--创建SQL身份验证的帐户
exec sp_addlogin '帐户名' '密码'

--创建数据库用户
exec sp_grantdbaccess '登录帐户' '数据库帐户'

--向数据库用户授权
grant 权限 [表名] to 数据库帐户
use studb
go
--为zhangshan分配对表stuinfo的select,insert,update的权限
grant select,insert,update,on stuInfo to zhangshan
--为zhangshan分配建表的权限
grant create table to zhangshan
变量和IF ELSE的应用

declare @myavg float --声明一个float类型的变量
select @myavg=avg(writtenExam) from stuMarks --把查询结果赋给这个变量
print '本班平均分:'+convert(varchar(5),@myavg) --将变量的值转换为varchar类型并打印出变量的值
if (@myavg>70)
    begin
        print '本班笔试成绩优秀,前三名的成绩为'
        select top 3 * from stuMarks order by writtenExam desc
    end
else
    begin
        print '本班笔试成绩较差,后三名的成绩为'
        select top 3 * from stuMarks order by writtenExam asc
    end

 CASE的应用

SELECT 姓名=stuName,学号=stuNo,
笔试成绩=CASE
            when WrittenExam is null '缺考'
            ....
            else convert(varchar(5),WrittenExam)
        end
from stuMark
子查询

--包括子查询的结果集
select stuName from stuInfo where stuno in (select stuNo from stumarks)
--不包括子查询的结果集
select stuName from stuInfo where stuno not in(select stuNo from stumarks)
--将找到的结果赋给sutno
select stuName from stuInfo where stuno=(select stuno from wtumarks where id=4)
--将最后个结果赋给stuno
select stuName from stuInfo where stuno=(select stuno from wtumarks)
事务的例子


开始事务:begin transaction
提交事务:commit transaction
回滚事务:rollback transaction
用隐式事务前需要设置:set implicit_transactions on 将隐式事务模式打开

begin transaction
--定义变量,用于累计事务执行过程中的错误次数
declare @errorsun int
update bank set currentMoney=currentMoner-1000 where customername='张三'
--累计是否有错误
set @errorsun=@errorsun+@@error
update bank set currentMoney=currentMoner+1000 where customername='李四'
set @errorsun=@errorsun+@@error
if @errorsun<>0
    begin
        print '交易失败,回滚事务'
        rollback transaction
    end
else
    begin
        print '交易成功,提交事务'
        commit transaction
    end
go


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sntyy/archive/2007/08/07/1730158.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值