Transact-SQL语言

系统 1678 0

1.SQL语句通常分成4类:数据查询语言、数据操作语言、数据定义语言和数据控制语言

2.设置日期格式

      
        SET
      
      
         DATEFORMAT mdy


      
      
        GO
      
      
        DECLARE
      
      
        @datevar
      
      
        datetime
      
      
        SET
      
      
        @datevar
      
      
        =
      
      
        '
      
      
        03/21/2013
      
      
        '
      
      
        SELECT
      
      
        @datevar
      
    

 

3.局部变量与全局变量

  局部变量:用DECLARE语句声明,用SET语句为其赋值

    定义整形局部变量和一个可变长字符局部变量并赋值

      
        DECLARE
      
      
        @local_variable_int
      
      
        int
      
      , 
      
        @local_variable_char
      
      
        nvarchar
      
      (
      
        9
      
      
        )


      
      
        SELECT
      
      
        @local_variable_int
      
      
        =
      
      
        40
      
      
        SET
      
      
        @local_variable_char
      
      
        =
      
      
        '
      
      
        welcome to guangzhou
      
      
        '
      
      
        SELECT
      
      
        @local_variable_int
      
      
        SELECT
      
      
        @local_variable_char
      
      
        GO
      
    

  全局变量:是SQL Server 系统所提供并赋值的变量,用户不能建立全局变量,也不能使用SET语句去修改全局变量的值,全局变量的名字以@@开头

  常用的全局变量:

  @@connections:返回今天试图连接到本服务器的连接数目

  @@rowcount:返回上一条T-SQL语句影响到的数据行数

  @@error:返回上一条T-SQL语句执行后的错误号

  @@procid:返回当前存储过程的ID标识

  @@remserver:返回登录记录中远程服务器的名字

  @@spid:返回当前服务器进程的ID标识

  @@version:返回当前SQL Server 服务器的版本、处理器类型等

4.数学函数

      
        SELECT
      
      
        ABS
      
      (
      
        -
      
      
        2
      
      ) 
      
        /*
      
      
        绝对值
      
      
        */
      
      
        ,

       
      
      
        SQRT
      
      (
      
        16
      
      )
      
        /*
      
      
        开方
      
      
        */
      
      
        ,

       
      
      
        POWER
      
      (
      
        4
      
      ,
      
        2
      
      )
      
        /*
      
      
        平方
      
      
        */
      
      
        ,

       
      
      
        RAND
      
      (
      
        2
      
      )
      
        /*
      
      
        返回0到1之间的随机float值
      
      
        */
      
    

5.字符串函数

      
        SELECT
      
      
        SUBSTRING
      
      (
      
        '
      
      
        MICROSOFT SQL SERVER 2012 
      
      
        '
      
      ,
      
        11
      
      ,
      
        10
      
      ),
      
        /*
      
      
        SQL SERVER
      
      
        */
      
      
        REVERSE
      
      (
      
        '
      
      
        MICROSOFT
      
      
        '
      
      )
      
        /*
      
      
        逆序返回
      
      
        */
      
    

 6. 流程控制语言

   CASE表达式

      
        CASE
      
      
         expression 

{
      
      
        WHEN
      
       expression 
      
        THEN
      
       result}
      
        [
      
      
        ,...n
      
      
        ]
      
      
        [
      
      
        ELSE result
      
      
        ]
      
      
        END
      
    

   BEGIN... END

      
        BEGIN
      
      
         

 Sql_statement

 
      
      
        END
      
    

  IF...ELSE

      
        IF
      
      
         Boolean_expression

 Sql_statement

 
      
      
        [ 
      
      
        ELSE [IF Boolean_expression
      
      
        ]
      
      
        

  Sql_statement

 ]
      
    

  WHILE语句

      
        WHILE
      
      
         boolean_expression

 sql_statement

 
      
      
        [
      
      
        BREAK
      
      
        ]
      
      
        

 {Sql_statement}

 
      
      
        [
      
      
        CONTINUE
      
      
        ]
      
      
        

 {Sql_statement}
      
    

7.ERA模型

  在ERA模型中,实体一般用长方形表示,关系一般用棱形,属性一般用椭圆形

 

8 从student 表检索名字的第二个字不是“红”或“虹”的同学的资料;

  李红[大](student表中有两个学生“李红”同名同姓,分别以李红[大]、李红[小]加以区分)同学的信息

      
        select
      
      
        *
      
      
        from
      
       student 
      
        where
      
       student_name 
      
        like
      
      
        '
      
      
        _[^红,虹]%
      
      
        '
      
      
        select
      
      
        *
      
      
        from
      
       student 
      
        where
      
       student_name 
      
        like
      
      
        '
      
      
        李红b[大b]
      
      
        '
      
      
        escape
      
      
        '
      
      
        b
      
      
        '
      
    

  在ESCAPE 子句中,定义"b"为转义字符,这样,like 子句中紧跟字符"b"后面的字符被定义为匹配字符而不再是通配符

 

9.多表查询:基于主键和外键指定查询条件, 连接条件可使用"主键=外键"

  从student、course及student_course 三个表中检索学生的学号,姓名,学习课程号、学习课程名及课程成绩

      
        select
      
       student.student_id,student.student_name,student_course.course_id,course.course_name,student_course.grade
      
from student, course,student_course where student.student_id = student_course.student_id and course.course_id = student_course.course_id

10.使用UNION子句:把两个或多个SELECT 语句查询的结果组合成一个结果集

      
        select
      
       student_id,student_name 
      
        from
      
      
         student


      
      
        union
      
      
        select
      
       teacher_id,teacher_name 
      
        from
      
       teacher
    

11.Having 子句 是针对Group By 子句的,没有group by 子句时使用having 子句是没有意义的

      
        select
      
       student_id,
      
        sum
      
      (grade) 
      
        from
      
      
         student_course 


      
      
        group
      
      
        by
      
      
         student_id 


      
      
        having
      
      
        sum
      
      (grade)
      
        >
      
      
        450
      
    

12.使用compute 和coupute by 子句

      
        select
      
        student_id ,grade 
      
        from
      
       student_course 
      
        order
      
      
        by
      
      
         student_id 


      
      
        compute
      
      
        sum
      
      (grade)
    

 

      
        select
      
       student_id,grade 
      
        from
      
       student_course 
      
        order
      
      
        by
      
      
         student_id 


      
      
        compute
      
      
        sum
      
      (grade) 
      
        by
      
       student_id
    

13.若建临时表,必须在表前设置#(局部临时表)或##(全局临时表)#temp_grade

14.删除表的列:

      
        alter
      
      
        table
      
      
        [
      
      
        dbo
      
      
        ]
      
      .
      
        [
      
      
        Students
      
      
        ]
      
      
        drop
      
      
        column
      
      
        [
      
      
        student_num
      
      
        ]
      
    

  修改表的列

      
        alter
      
      
        table
      
      
        [
      
      
        dbo
      
      
        ]
      
      .
      
        [
      
      
        Students
      
      
        ]
      
      
        alter
      
      
        column
      
      
        [
      
      
        course_id
      
      
        ]
      
      
        int
      
      
        not
      
      
        null
      
    

 

 

Transact-SQL语言


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论