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
1901

被折叠的 条评论
为什么被折叠?



