• SQLServer 学习笔记之超详细基础SQL语句 Part 10


    Sqlserver 学习笔记

    by:授客 QQ1033553122
    -----------------------接Part 9-------------------

    删除约束的语法

    ALTER TABLE 表名 

    DROP CONSTRAINT 约束名

     

    6 创建登陆

    --添加SQL登陆账户(用户账号:laiyu, 密码:1234

    USE student

    GO

    EXEC SP_ADDLOGIN 'laiyu', '1234'

    SQLServer <wbr>学习笔记之超详细基础SQL语句 <wbr>Part <wbr>10

     

    双击登录名laiyu后可以进行密码的修改等

     

    7 创建数据库用户

    需要调用系统存储过程:

    SP_GRANTDBACCESS ‘登录名’ ‘对应数据库用户账户

    创建用户还可以用sp_adduserSP_GRANTDBACCESS的执行过程中也会使用sp_adduser,但是在安全性上要比sp_adduser好,因为它能建立一个安全性连接,如果仅仅从添加的用户来说,两者创建的用户没有设么本质的区别

    --创建用户

    EXEC SP_GRANTDBACCESS 'laiyu', 'username'

    其中,数据库用户名为可选参数,默认为登录帐户,即数据库用户默认和登录帐户同名。

     

    --在数据库student中添加两个用户

    USE student

    GO

     

     

    EXEC SP_GRANTDBACCESS 'jbtrains123', 's123dbuser'

    说明:jbtraining为计算机域名

    EXEC SP_GRANTDBACCESS 'zhangsan', 'zdbuser'

    --结果提示出错,因为登陆名不存在

     

    8 授权的语法为:

    GRANT 权限 [ON  表名 ]  TO  数据库用户

    --授权

     

    USE stuDB

    GO

     

    GRANT SELECT,INSERT,UPDATE

    ON stuInfo TO laiyu

     

    USE stuDB

    GO

     

    GRANT create table TO laiyu

     

    禁用权限的语法为:

    DENY 权限 [ON  表名 ]  TO  数据库用户

    --禁用权限

    USE stuDB

    GO

     

    DENY select,insert,update

    ON stuInfo TO laiyu

     

    --禁用权限

     

    DENY SELECT, INSERT, UPDATE

    ON std_table TO laiyu

     

    --删除权限

    --回收laiyu用户的建立表的权限[可以级联CASCADE或者有限制的(RESTRICT)的回收用户的权限]

    REVOKE CREATE TABLE FROM laiyu

    9 使用变量

    变量分为:

    1)   局部变量:

    a)   局部变量必须以标记@作为前缀 ,如@age

    b)   局部变量的使用也是先声明,再赋值

     

    2)   全局变量

    a)   全局变量必须以标记@@作为前缀,如@@version

    b)   全局变量由系统定义和维护,我们只能读取,不能修改全局变量的值

     

    局部变量

    声明局部变量

    DECLARE @变量名  数据类型

    赋值

    SET @变量名 =

    SELECT  @变量名 = FROM

     

    --局部变量的声明与赋值

    DECLARE @name CHAR(6)

    DECLARE @deptNo CHAR(2)

    --或者如下

    --DECLARE @name CHAR(6), @deptNo CHAR(2)

     

    SET @name = '张三'

    --或者如下方式

    SELECT @deptNo = 系部代码 FROM std_table WHERE 高考分数= 500;

    --这里要注意,执行的时候必须把声明和使用一起执行,即选定声明和使用声明的语句,然后执行,否则会出现须声明标量变量"@deptNo"”的错误提示

     

    示例

    SQLServer <wbr>学习笔记之超详细基础SQL语句 <wbr>Part <wbr>10

    问题:

    编写T-SQL查找李文才的左右同桌

    分析:

    第一步,找出李文才的座位号;

    第二步,李文才的座位号加1或减1

     

    DECLARE @name VARCHAR(7)--学员姓名

    SET @name='李文才'--使用SET 赋值

    SELECT * FROM stuInfo WHERE stuName = @name

     

     

    DECLARE @seat INT --座位号

    SELECT @seat=stuSeat FROM stuInfo --使用SELECT 赋值

    WHERE stuName=@name

    SELECT * FROM stuInfo

    WHERE(stuSeat = @seat+1) OR (stuSeat = @seat-1)

    GO

    WHERE stuName=@name

    SELECT * FROM stuInfo

    WHERE(stuSeat = @seat+1) OR (stuSeat = @seat-1)

    GO

     

    SQLServer <wbr>学习笔记之超详细基础SQL语句 <wbr>Part <wbr>10

     

    全局变量使用两个@@作为前缀标识

    SQLServer <wbr>学习笔记之超详细基础SQL语句 <wbr>Part <wbr>10

     

     

    全局变量示例

    --打印

    PRINT 'SQL Server的版本' + @@VERSION 

    SQLServer <wbr>学习笔记之超详细基础SQL语句 <wbr>Part <wbr>10

    PRINT 'SQL Server的名称' + @@SERVERNAME

    SQLServer <wbr>学习笔记之超详细基础SQL语句 <wbr>Part <wbr>10

     

    --先执行下下面这条错误语句,再打印错误号

    INSERT INTO std_table(学号, 姓名, 专业方向)

    VALUES(1,'jjk',信息管理)

    --如果错误号大于表示上一条语句,执行有错

    SQLServer <wbr>学习笔记之超详细基础SQL语句 <wbr>Part <wbr>10

     

     

    10 逻辑控制语句

    1.IFELSE语句

    SQL中的IF-ELSE语句

    IF (条件)

      BEGIN

        语句1

        语句2

        ……

      END

    ELSE

     BEGIN

        语句1

        语句2

        ……

      END

    注意:

    ELSE是可选部分

    如果有多条语句,才需要BEGIN-END语句块

    实例

    SQLServer <wbr>学习笔记之超详细基础SQL语句 <wbr>Part <wbr>10

    问题:

    统计并显示本班笔试平均分,如果平均分在70以上,显示成绩优秀,并显示前三名学员的考试信息;如果在70以下,显示本班成绩较差,并显示后三名学员的考试信息

    分析:

    第一步,统计平均成绩存入临时变量;

    第二步,用IFELSE判断;



     

  • 相关阅读:
    C#针对js escape解码
    .NET XML序列化与反序列化
    数据库文档生成工具(1)
    小欣外贸助手-国际站排名查询工具限量封测了
    七夕小福利
    利用正则表达式获取博客园随笔(四)
    利用正则表达式获取博客园随笔
    利用正则表达式获取博客园随笔(三)
    利用正则表达式获取博客园随笔(二)
    利用正则表达式获取博客园随笔(一)
  • 原文地址:https://www.cnblogs.com/shouke/p/10158059.html
Copyright © 2020-2023  润新知