SQLserver运维必备:T-SQL语句简介

发布时间:2020-07-15 19:49:05 作者:小生博客
来源:网络 阅读:2480

   小生博客:http://xsboke.blog.51cto.com

   



                                -------谢谢您的参考,如有疑问,欢迎交流



一、T-SQL语言组成

T-SQL主要有三种语言组成:

  1.      DML:数据操纵语言(data manipulation language

  2.      DDL:数据定义语言(data definition language

  3.      DCL:数据控制语言(data control language

二、SELECT语法结构

1. select语句的语法。

SELECT select_list

[INTO new_table_name]

FROM table_name

[ WHERE search_conditions ]

[GROUP BY group_by_expression] [HAVING search_conditions]

[ORDER BY order_expression [ASC|DESC] ]

  参数解释:

2. 表达式,一般用于设置条件时。

  1)条件表达式

常量:表示单个指定数据值的字母、数字或符号

②列名:表中列的名称

③一元运算符:仅有一个操作数的运算符:“+”表示正数,“-”表示负数

④二元运算符:将两个操作数组合执行操作的运算符:算术运算符、位运算符、逻辑运算符、比较运算符

    SQLserver运维必备:T-SQL语句简介

    SQLserver运维必备:T-SQL语句简介

  2)逻辑表达式

   用逻辑运算符将条件连接起来,运算结果是一个逻辑值:TRUE(真)或FALSE(假)

    SQLserver运维必备:T-SQL语句简介

    关键字“in”可以用来限制范围,

    例:限制付款时可以使用的信用卡种类

    付款方式=‘信用卡’ and 信用卡 in 牡丹卡金穗卡龙卡阳光卡

 

3. as的用法(as就是给某个输出结果的列名设置别名,然后输出时列名用别名显示)

  优点是可以事查询结果更人性化显示,比如把英文的列名输出成为中文的列名。

  例:查询表student中所有学员的平均分

  1)  不加as

   Select  AVG(成绩)

   From student

   SQLserver运维必备:T-SQL语句简介

  2)  as

   Select  AVG(成绩) as 平均成绩

   From student

   SQLserver运维必备:T-SQL语句简介

4. Like的用法(用于不完全匹配的条件)

  例:查询出表student中姓张的学员

  SQLserver运维必备:T-SQL语句简介

5. In的用法(限制范围)

  例:查询出student表中成绩为899091的学生。

  SQLserver运维必备:T-SQL语句简介

6. Top的用法(限制查询返回值的行数)

  例:查询student表中的前五行的学员

  SQLserver运维必备:T-SQL语句简介

7. 函数count的用法(统计行)

  例:查询出表中每种职位的总人数

  SQLserver运维必备:T-SQL语句简介

 

三、多表查询

1. 表的连接类型

  1内连接(INNER JOIN

    只返回两个数据集合之间完全匹配关系的行

  2外连接(左右外连接其实差不多,记住一个即可)

    ①左外连接(LEFT JOIN/leftouter join

     结果集包括左表的所有行

    ②右外连接(RIGHT JOIN/rightouter join

     结果集包括右表的所有行

    ③完整外连接(FULL JOIN/fullouter join

     返回左表和右表中的所有行

  3交叉连接(cross join,一般不用)

    返回左表与右表挨个连接的所有行

2. 内连接:只返回两个表中完全匹配的行

  例:在表A和表B中使用内连接查询学生姓名和职业(两个表中存在的姓名是不完全一样的)

  1)  方法1:结果显示如下图

    select A.name,a.school,b.job

    from A,B

    where a.name=b.name

  SQLserver运维必备:T-SQL语句简介

  2)  方法2:结果显示如下图

    select A.name,a.school,b.job

    from A innerjoin B

    on A.name=b.name

  SQLserver运维必备:T-SQL语句简介

3. 外连接

  1)  左外连接

    例:在表A和表B中用左外连接查询学生姓名、学校和职业

    SQLserver运维必备:T-SQL语句简介

  2)  右外连接

    例:在表A和表B中用左外连接查询学生姓名、学校和职业

    SQLserver运维必备:T-SQL语句简介

  3)  完整外连接:不再举例,完整外连接将只显示两张表中完全匹配的内容

4. 事务(如果执行的语句中有一条错误,此语句将不执行,并数据恢复语句执行前)

  1)  事务简介

    ①  概念

      事务是一个不可分割的工作逻辑单元,包括一组命令,这组命令要么都执行,要么都不执行。

    ②  属性



    1. 原子性:事务是一个完整的操作。事务的各元素是不可分的。

    2. 一致性:当事务完成时,数据必须处于一致状态。

    3. 隔离性:事务是独立的,它不以任何方式依赖于或影响其他事务。

    4. 持久性:一旦事务被提交,事务的效果会被永久的保留在数据库中。

  2)  执行事务的语法

    ①开始事务:BEGIN TRANSACTION

    ②提交事务:COMMITTRANSACTION

    ③回滚(撤销)事务:ROLLBACKTRANSACTION

  3)  例:


    select *from bank

 

    updatebank set 余额=余额-1000

    where 账户='张三'

    updatebank set 余额=余额+1000

    where 账户='李四'

 

    print  '查看转帐事务前的余额'

    select *from bank

    /*--开始事务(指定事务从此处开始,后续的T-SQL语句都是一个整体--*/

    begintransaction

    /*--定义变量,用于累计事务执行过程中的错误--*/

    declare@errorsum int --声明变量,用于保存所有T-SQL语句错误号的和

    set@errorsum=0

    /*--转帐:张三的帐户少1000元,李四的帐户多1000--*/

 

    updatebank set 余额=余额-1000

    where 账户='张三'

 

    set@errorsum=@errorsum+@@ERROR     --累计是否有错误

    updatebank set 余额=余额+1000

    where 账户='李四'

    set@errorsum=@errorsum+@@ERROR     --累计是否有错误

 

    print  '查看转帐事务过程中的余额'

    select *from bank

 

    /*--根据是否有错误,确定事务是提交还是撤销--*/

    if@errorsum<>0     --如果有错误

    begin

    print  '交易失败,回滚事务'

    rollbacktransaction

    end

    else

    begin

    print  '交易成功,提交事务,写入磁盘,永久地保存'

    committransaction

    end

    go

    print  '查看转帐事务后的余额'

    select *from bank

    go

推荐阅读:
  1. 【运维安全】- BurpSuite/Fiddler简介03
  2. linux故障定位,运维必备

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

sql 语句 dba

上一篇:代码运行顺序(部分)

下一篇:深入浅出Zabbix 3.0 -- 第七章 模板配置与管理

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》