T-SQL查询语句

1.T-SQL的组成

DML语言:insert、delete、update、select

DDL语言:create、drop

DCL语言:grant、revoke

2.插入数据的语法格式:

insert [into]  <表名> [列名] <值列表>

说明:

     ①标识符列不能手工输入值

     ②插入数据时,数值的个数、类型,顺序一定要与列名表一致,不指定列名时,必须为所有列输入值(允许空的列可以输入具体值或null)

     ③字符串类型的值,一定使用''括起来,另外,日期型也要用''括起来

     ④不允许空的列必须输入值允许为空的列用null

3.更新数据的语法格式:

update  <表名> set  <列名=更新值> [where <更新条件>]

说明:

     ①set后面可以紧跟多个数据列的更新值,用逗号分隔

     ②where子句是可选的,用来限制条件。不加则更新所有记录

     ④标识符列不能手工输入值

     ⑤插入的数据不能违法check约束

4.删除数据语法格式:

DELETE  FROM  <表名>  [WHERE <删除条件>]

Truncate  table <表名>

    区别:truncate只能删除所有数据

5.查询数据语法格式:

SELECT 列1,列2,....    --指定要查询的列(内容)

[INTO 新表]        --将查询的结果放到一个新表中

FROM 表名        --指定查询的表

[ WHERE 条件 ]          --指定查询条件

[GROUP BY 列名] --指定查询结果的分组条件(一般为列名)

[HAVING 条件] --指定分组后的筛选条件

[ORDER BY 列 [ASC|DESC] ] --排序的可以是升序(asc)或降序(desc),默认升序

6.常见的比较运算符:

=

等于

>

大于

<

小于

>=

大于或等于

<=

小于或等于

<>

不等于

!=

不等于

BETWEEN

指定值的包含范围(包含边界),使用 And 分隔开始值和结束值 成绩 between 70 and 90 等价于 成绩>=70 and 成绩<=90

IS [Not] NULL

指定是否搜索空值或非空值  备注  is  null  或 备注  is  not  null

LIKE

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

IN

是否在数据范围里面 如 成绩  in(70,80,90)

7.常用的通配符:

通配符

含义

示例

_’

任何单个字符

name LIKE ‘_ean’

%

任意长度的字符串

name LIKE ‘%ean%

[ ]

括号中所指定范围内的一个字符

name LIKE ‘[张,刘]%

[^]

不在括号中所指定范围内的任意一个字符

name LIKE ‘car[^afg]’

8.常用的逻辑运算符

逻辑运算符

含义

AND

组合两个条件,并在两个条件都为True时取值为True   姓名 like '张%' and 性别='女'

OR

组合两个条件,并在两个条件之一为 True 时取值为True 姓名 like '张%' or 性别='女'

NOT

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

目录

 根据此表运用T-SQL中的SELECT语法进行查询数据

1)查询表中所有列 

        SELECT * FROM table_name

例:查询employee表中所有员工信息

        SELECT * FROM employee

2)查询表中特定列

         SELECT column_name_1,column_name_2,..... FROM table_name

例:查询employee表中“姓名”“职务”“基本工资”列内容。

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

3)查询表中特定列——条件查询

         SELECT select_list FROM table_name WHERE search_conditions

例:1.查询employee表中所有运维工程师的姓名

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

        2.查询employee表中基本工资为8000~10000的员工所有信息

              SELECT * FROM employee WHERE 基本工资 between 8000 and 10000

        3.查询employee表中基本工资低于10000或高于20000的公司员工信息

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

        4.查询employee表中基本工资为8000,9000和10000的员工所有信息

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

        5.查询employee表中身份证号以66开头的员工所有信息

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

        6.查询employee表中姓杨的运维工程师的信息

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

        7.查询employee表中备注不为空的员工所有信息

              SELECT * FROM employee WHERE 备注 is not null

4)限制查询返回的行数

        SELECT Top n select_list FROM table_name    //住:n为需要返回的行数

例:查询employee表中前五行的数据

           SELECT TOP 5 *FROM employee

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

        SELECT column_name AS column_alias FROM table_name

例:查询employee表中“姓名” 和“身份证号” 两列数据,查询结果“姓名”列名称显示为“name”;“身份证号”列名称显示为“idcard”

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

6)查询结果排序

       SELECT select_list FROM table_name ORDER BY column_name [ASC|DESC]

注:ASC:表示升序            DESC:表示降序 

    ORDER BY:可以改变查询结果的显示顺序

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

           SELECT * FROM employee ORDER BY 基本工资 DESC

7)查询时去重

     SELECT DISTINCT column_name FROM table_name

注:DISTINCT:可以将查询结果中的重复数据清除掉

例:查询employee表中有哪些职务

          SELECT DISTINCT 职务 FROM employee

8)综合查询

例:在employee表中列出满足身份证号的左起第三位是0、除了CTO以外的,所有员工的姓名、身份证号、职务和基本工资,其中姓名字段显示为name,查询结果按照基本工资的由高到低排序。

    SELECT 姓名 AS name,身份证号,职务,基本工资 FROM employee

    WHERE 身份证号 LIKE '_0%' AND 职务!='CTO'

    ORDER BY 基本工资 DESC

10.使用SELECT生成新

数据

1)SELECT 使用INTO关键字

可以从一个表中选择一些数据插入新表中

作用:从表2查到的结果保存到表1,表1不能事先存在

语法:

SELECT 列1,列2,...  INTO 表1      FROM 表2

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

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

2)INSERT 使用 SELECT子句    

作用:--将从表2的查询结果添加到表1里,表名1必须事先存在,表2列的类型与数量要与表1一致

语法:

INSERT  INTO 表名1 [列名]

SELECT 列名 FROM 表名2

3)使用UNION关键字,合并多张表

作用:--将表1和表2的查询结果,添加到表3里,表3要事先存在

语法:

INSERT  INTO 表3  [column_name]   

SELECT 列1,列2,... from 表1  

UNION

SELECT 列1,列2,... from 表2

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老棋儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值