Windows server 2016——SQL server T-SQL查询语句
作者:mmseoamin日期:2023-12-18

Windows server 2016——SQL server T-SQL查询语句,第1张

  • 作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 

  • 公众号:网络豆

  •  座右铭:低头赶路,敬事如仪

  • 个人主页: 网络豆的主页​​​​​

目录

写在前面

介绍

一.SQL简介

1.SQL和T-SQL

2.T-SQL的组成

二.使用T-SQL语句操作数据

1.插入数据

2.更新数据

​编辑 3.删除数据

(1)DELETE语句

(2)Truncate Table语句

(3)Delete和Truncate table区别

三.使用使用T-SQL语句查询数据

1.select 语法结构

2.条件表达式

3.逻辑表达式

4.查询列

 5.改变查询结果集列名称

6.查询结果排序

7.使用SELECT生成新数据  


写在前面

本系列文章将会讲解SQL server 中 server T-SQL查询语句,并且会同步视频进行安装讲解。

视频教程:T-SQL查询语句教程

前期回顾:Windows server 2016——SQL server 数据库和表的管理


介绍

SQL Server是由微软公司开发的关系型数据库管理系统,现在是全世界主流数据库之一。它具备方便使用、可伸缩性好、相关软件集成程度高等优势,能够从单一的笔记本上运行或以高倍云服务器集群为基础,或在这两者之间任何一种方式上运行。

一.SQL简介

1.SQL和T-SQL

SQL (结构化查询语言)

  • 关系数据库的标准语言
  • 非过程化语言
  • 统一的语言

    Windows server 2016——SQL server T-SQL查询语句,第2张

    T-SQL是Transact-SQL的缩写,是SQL在Microsoft SQL Server上的增强版,它是用来让应用程序与SQL Server沟通的主要语言。T-SQL提供标准SQL的DDL和DML功能,加上延伸的函数、系统预存程序以及程式设计结构(例如 IF 和 WHILE)让程式设计更有弹性。

    Windows server 2016——SQL server T-SQL查询语句,第3张


    2.T-SQL的组成

    DML:数据操纵语言

    • 查询,插入,删除和修改数据

      DDL:数据定义语言

      • 建立数据库,数据库对象和定义其列

        DCL:数据控制语言

        • 控制数据库组件的存储许可,储存权限等

          二.使用T-SQL语句操作数据表

          1.插入数据

          insert [INTO] <表名> [列名] values <值列表>
          #      可选    必须   可选
          • 如果省略[列名],<值列表>与表中字段的顺序保持一致
          • 多个列名和多个值列表用逗号分隔

            例:

            向employee表中插入一行数据

            insert into employee (姓名, 身份证号, 职务, 出生日期, 基本工资) 
                VALUES ('郭靖', '111222333444555666', 
                                '运维工程师, '1995/1/1', 8000)
            

            Windows server 2016——SQL server T-SQL查询语句,第4张

            2.更新数据

            UPDATE  <表名>  SET  <列名 = 更新值>  [WHERE  <更新条件>]
            #                                    可选,用来限制更新条件
            •  如果省略WHERE字句,表中所有数据行将被更新

              例:

              更改employee表中黄蓉的基本工资为11000

              update employee SET 基本工资='11000' 
              WHERE 姓名='黄蓉'
              

              Windows server 2016——SQL server T-SQL查询语句,第5张 3.删除数据

              (1)DELETE语句

              DELETE  FROM  <表名>  [WHERE <删除条件>]
              #                     可选的, 用来限制删除条件
              
              • 如果省略WHERE字句,表中所有数据行将被删除

                例:

                删除employee表中杨过的记录

                DELETE FROM employee WHERE 姓名='杨过'
                

                Windows server 2016——SQL server T-SQL查询语句,第6张

                (2)Truncate Table语句

                Truncate  table <表名>
                

                 例:

                删除employee表中的所有记录行

                Truncate  table  employee
                

                Windows server 2016——SQL server T-SQL查询语句,第7张

                (3)Delete和Truncate table区别

                条件删除

                记录事物日志

                重置标识符列

                外键约束

                Delete

                使用where子句按条件删除

                是,数据可以恢复

                可以用于含有外键约束的表

                Truncate table

                只能清空整个表

                否,数据无法恢复

                重置标识符列为0

                不能用于含有外键约束的表

                • Truncate Table执行速度更快,用于清空大数据量表
                • 在执行Truncate Table前要确保数据可删除

                  三.使用使用T-SQL语句查询数据

                  1.select 语法结构

                  SELECT select_list   指定查询内容
                   
                  [INTO new_table_name]  把查询结果存放到一个新表中
                  FROM table_name   指定查询源
                  [ WHERE search_conditions ]   指定查询条件
                  [GROUP BY group_by_expression]   指定查询结果的分组条件
                  [HAVING search_conditions]  指定分组搜索条件,与GROUP BY子句一起使用
                  [ORDER BY order_expression [ASC|DESC] ]  指定查询结果的排序方式
                  

                  2.条件表达式

                  • 不等于:<>或!=
                  • 指定值包含的范围:between... and .….
                  • 是否为空:isnull
                  • 模糊查询:like ,常与通配符%和_使用。
                  • 在数据范围里面:in()

                    比较运算符

                    含义

                    =

                    等于

                    >

                    大于

                    <

                    小于

                    >=

                    大于或等于

                    <=

                    小于或等于

                    <>

                    不等于

                    !=

                    不等于

                    BETWEEN

                    指定值的包含范围(包含边界),使用 And 分隔开始值和结束值

                    IS [Not] NULL

                    指定是否搜索空值或非空值

                    LIKE

                    模糊查询,与指定字符串进行模式匹配

                    IN

                    是否在数据范围里面

                    3.逻辑表达式

                    用逻辑运算符将条件连接起来

                    运算结果是一个逻辑值

                    • TRUE 或 FALSE

                      逻辑运算符

                      含义

                      AND

                      组合两个条件,并在两个条件都为True时取值为True

                      OR

                      组合两个条件,并在两个条件之一为 True 时取值为True

                      NOT

                      和其他操作符一起使用,取反的操作

                      4.查询列

                      查询表中所有列

                      SELECT * FROM table_name
                      

                      查询employee 表中的所有员工信息、

                      SELECT * FROM employee
                      

                      例:

                      查询employee表中姓名、职务、基本工资列的内容

                      SELECT 姓名,职务,基本工资 FROM employee
                      

                      Windows server 2016——SQL server T-SQL查询语句,第8张

                       查询表中特定行—— 条件查询

                      SELECT select_list FROM table_name WHERE search_conditions
                      

                      例:

                      查询所有运维工程师的姓名

                      SELECT 姓名 FROM employee WHERE 职务=’运维工程师’
                      

                      Windows server 2016——SQL server T-SQL查询语句,第9张

                      查询基本工资为8000~10000的员工所有信息

                      SELECT * FROM employee 
                      WHERE 基本工资 BETWEEN 8000 AND 10000
                      

                      Windows server 2016——SQL server T-SQL查询语句,第10张

                       查询基本工资<10000或>20000的员工所有信息

                      SELECT * FROM employee 
                      WHERE 基本工资<10000 OR 基本工资>20000
                      

                      Windows server 2016——SQL server T-SQL查询语句,第11张

                       查询基本工资为8000、9000和1000的员工所有信息

                      SELECT * FROM employee WHERE 基本工资 IN (8000,9000,10000)
                      

                      Windows server 2016——SQL server T-SQL查询语句,第12张

                       查询身份证号以66开头的员工所有信息

                      SELECT * FROM employee WHERE 身份证号 LIKE “66%”
                      

                      Windows server 2016——SQL server T-SQL查询语句,第13张

                       查询姓杨的运维工程师的信息

                      SELECT * FROM employee 
                      WHERE 姓名 LIKE '杨%' AND 职务=’运维工程师’
                      

                      Windows server 2016——SQL server T-SQL查询语句,第14张

                       查询备注不为空的员工所有信息

                      SELECT * FROM employee WHERE 备注 is not NULL
                      

                      Windows server 2016——SQL server T-SQL查询语句,第15张

                      查询employee表中前5行的数据 

                      SELECT top 5 * FROM employee
                      

                      Windows server 2016——SQL server T-SQL查询语句,第16张

                       5.改变查询结果集列名称

                      SELECT column_name AS column_alias    FROM table_name
                      #                  改变结果集的列名称
                      

                      列:

                      查询employee表中姓名和身份证号两列数据

                      SELECT 姓名 AS name, 身份证号 as idcard  FROM employee
                      

                      Windows server 2016——SQL server T-SQL查询语句,第17张

                      6.查询结果排序

                      SELECT select_list 
                      FROM table_name 
                      ORDER BY column_name [  ASC  |   DESC ]
                      #                      升序      降序

                      默认是升序(ASC)排列 

                      例:

                      查询employee表中所有员工信息,按照基本工资从高到低显示查询结果

                      SELECT * FROM employee ORDER BY 基本工资 DESC
                      

                      Windows server 2016——SQL server T-SQL查询语句,第18张

                      查时去重

                      SELECT DISTINCT column_name FROM table_name
                      

                      查询employee表中员工的所有职务 

                      SELECT DISTINCT  职务 FROM employee
                      

                      Windows server 2016——SQL server T-SQL查询语句,第19张

                      7.使用SELECT生成新数据  

                      SELECT使用INTO关键字
                      SELECT select_list  INTO new_table_name #把一个表中的数据经过筛选插入到另一个表中
                      FROM table_name
                      

                      例:

                      将employee表中所有员工的姓名、身份证号和职务生成一个新表new01

                      SELECT 姓名,身份证号,职务 INTO new01 FROM employee
                      

                      Windows server 2016——SQL server T-SQL查询语句,第20张

                      使用UNION关键字

                      INSERT  INTO table-name  [column_name] 
                      SELECT select_list1   UNION
                      SELECT select_list2   UNION
                      ……
                      SELECT select_listn
                      

                      UNION 将多个不同的数据或查询结果合并成一个新的结果集

                      将employee表中所有员工的姓名、职务和出生日期,以及新输入2名员工相关信息,一起保存到新表new03

                      INSERT INTO new03 (姓名,职务,出生日期) 
                      SELECT '欧阳锋','人事经理','1988-08-08' UNION
                      SELECT '一灯','财务经理','1977-07-07' UNION
                      SELECT 姓名,职务,出生日期 FROM employee
                      

                      实战案例

                      素材:SQL server 2008 素材

                      • 3、查询employee 表中的所有员工信息
                      • 4、查询employee表中姓名、职务、基本工资列的内容
                      • 5、查询所有运维工程师的姓名
                      • 6、查询基本工资为8000~10000的员工所有信息
                      • 7、查询基本工资<10000或>20000的员工所有信息
                      • 8、查询基本工资为8000、9000和1000的员工所有信息
                      • 9、查询身份证号以66开头的员工所有信息
                      • 10、查询姓杨的运维工程师的信息
                      • 11、查询备注不为空的员工所有信息
                      • 12、查询employee表中前5行的数据
                      • 13、查询employee表中“姓名”和“身份证号”两列数据,查询结果“姓名”列名称显示为“name”,“身份证号”列名称显示为“idcard”
                      • 14、查询employee表中所有员工信息,按照基本工资从高到低显示查询结果
                      • 15、查询employee表中有哪些职务(去除重复的职务)
                      • 16、在employee表中列出满足身份证号的左起第三位是0、除CTO以外的,所有员工的姓名、身份证号、职务和基本工资,其中姓名字段显示为name,查询结果按照基本工资的由高到低排列。
                      • 17、将employee表中所有员工的姓名、身份证号和职务生成一个新表new01
                      • 18、将employee表中所有基本工资大于等于15000的员工的姓名、职务和出生日期保存到新表new02。(提前先创建表new02)
                      • 19、将employee表中所有员工的姓名、职务和出生日期,以及新输入2名员工相关信息,一起保存到新表new02。(提前先创建表new02)
                      • 新输入的2名员工信息如下:
                      •     '欧阳锋','人事经理','1988-08-08'
                      •     '一灯','财务经理','1977-07-07'