**************************************
*************SELECT 查询*************
**************************************
查询单列字段信息:
SELECT 姓名
FROM 例子
**************************************
查询多字段信息:
SELECT 姓名,地址,电话
FROM 例子
**************************************
查询所有字段信息:
SELECT *
FROM 例子
**************************************
通过指定数据表中所有字段来查询数据信息:
SELECT 姓名,职务,地址,电话,编号,性别
FROM 例子
**************************************
* DISTINCT 去除重复 *
**************************************
取出查询结果中重复的值:
SELECT DISTINCT 姓名
FROM 例子
**************************************
去掉多列查询结果中的重复值:
SELECT DISTINCT 姓名,编号,电话
FROM 例子
**************************************
在查询数据时使用别名:
SELECT
编号 AS 'nomber'
姓名 AS 'name'
电话 AS 'phone'
FROM 例子
**************************************
**************************************
* ASC 升序排列 *
**************************************
将查询结果进行升序排列:
SELECT
编号,姓名,地址,电话
FROM 例子
ORDER BY 姓名 ASC
/*按照‘姓名’进行升序排列 ASC可省*/
**************************************
实现多列升序排序:
SELECT
编号,姓名,地址,电话
FROM 例子
ORDER BY 姓名,地址
**************************************
**************************************
* DESC 将序排列 *
**************************************
将查询结果进行将序排列:
SELECT
编号,姓名,地址,电话
FROM 例子
ORDER BY 姓名 DESC
**************************************
多列先升序后降序排列:
SELECT *
FROM 例子
ORDER BY 姓名 ASC,地址 DESC
**************************************
多列先降序后升序排列:
SELECT *
FROM 例子
ORDER BY 姓名 DESC,地址 ASC
**************************************
**************************************
* GROUP BY 分组查询 *
**************************************
将查询结果进行分组:
SELECT 科目,SUM(各科成绩) AS '各科总成绩'
FROM 成绩单
GROUP BY 科目
/*将各科成绩求和作为‘各科总成绩’的数据*/
**************************************
将分组数据升序排序:
SELECT 科目,SUM(各科成绩) AS '各科总成绩'
FROM 成绩单
GROUP BY 科目
ORDER BY 科目
**************************************
将分组数据降序排序:
SELECT 科目,SUM(各科成绩) AS '各科总成绩'
FROM 成绩单
GROUP BY 科目
ORDER BY 科目 DESC
**************************************
**************************************
* HAVING 对查询结果进行限制 *
**************************************
HAVING子句的应用:
SELECT 科目,SUM(各科成绩) AS '各科总成绩'
FROM 成绩单
GROUP BY 科目
HAVING SUM(各科成绩)<200
**************************************
**************************************
* WHERE 条件查询 *
**************************************
单条件查询:
SELECT 编号,姓名,性别
FROM 例子
WHERE 性别='女'
**************************************
**************************************
* 算术关系运算符查询 *
**************************************
使用运算符进行条件查询:
SELECT 姓名,性别,编号
FROM student
WHERE 年龄>20
/*
= 等于
> 大于 例:生日>'1990-10-01'
>= 大于等于
< 小于
<= 小于等于
<> 不等于(除条件以外的)
!= 不等于()
!> 不大于
!< 不小于
*/
**************************************
* BETWEEN 范围筛选 *
**************************************
使用BETWEEN运算符查询数值区间的数据:
SELECT *
FROM 例子
WHERE 编号 BETWEEN 1002 AND 1004
ORDER BY 编号
**************************************
**************************************
* TOP 指定查询结果中返回的行数 *
**************************************
使用TOP子句查询数据表中前三条记录:
SELECT TOP 3 *
FROM 例子
**************************************
在TOP子句中使用PERCENT关键字:
SELECT TOP 3 PERCENT *
FROM 例子
执行后:查询前百分之3条记录
**************************************
使用IS NOT NULL 运算符查询数据:
SELECT *
FROM 例子
WHERE 职务 IS NOT NULL
ORDER BY 编号
**************************************
使用IS NULL 运算符查询数据:
SELECT *
FROM 例子
WHERE 职务 IS NULL
ORDER BY 编号
**************************************
**************************************
* LIKE 模糊查询 *
**************************************
SQL中的通配符:
'_' 一个字符
% 任意长度的字符
[] 括号内所指定范围内的一个字符
[^] 不在括号内中指定范围内的任意一个字符
**************************************
使用LIKE进行查询:
SELECT *
FROM 例子
WHERE 地址 LIKE '山西'
**************************************
使用NOT LIKE进行查询:
SELECT *
FROM 例子
WHERE 地址 NOT LIKE '山西'
**************************************
使用'_'通配符进行查询:
SELECT *
FROM 例子
WHERE 地址 LIKE '山_'
/*'_'表示一个字符,结果中只有和'山_'字节数相同且满足LIKE数据*/
**************************************
将“_”放在与其一起作为匹配字符的前面:
SELECT *
FROM 例子
WHERE 地址 LIKE '_南'
**************************************
全部使用“_”通配符查询数据信息:
SELECT *
FROM 例子
WHERE 地址 LIKE '__'
执行后:结果中的“地址”列字节数与“_”个数相同
**************************************
使用“%”通配符:
SELECT *
FROM 例子
WHERE 地址 LIKE '%西'
/*%可以再前/中/后使用*/
**************************************
使用“[]”通配符:
SELECT *
FROM 例子
WHERE 地址 LIKE '[山]%'
注意:条件的字符数
**************************************
使用[^]通配符:
SELECT *
FROM 例子
WHERE 地址 LIKE '[^河]%'
执行后:结果中只有“地址”列以“河”开头以外的数据
**************************************
**************************************
* 逻辑运算查询 *
**************************************
使用AND运算符实现条件查询:
SELECT *
FROM 例子
WHERE 性别='女'
AND 编号>'1002'
**************************************
使用多个AND运算符实现条件查询:
SELECT *
FROM 例子
WHERE 性别='女'
AND 编号>'1002'
AND 地址 LIKE '山%'
**************************************
使用OR运算符实现条件查询:
SELECT *
FROM 例子
WHERE 性别='女'
OR 地址 LIKE '山%'
**************************************
使用多个OR运算符实现条件查询:
SELECT *
FROM 例子
WHERE 性别='女'
OR 地址 LIKE '河%'
OR 姓名='赵六'
**************************************
运算符AND OR 的组合使用:
SELECT *
FROM 例子
WHERE 性别='男'
AND 地址 LIKE '河%'
OR 地址='山西'
**************************************
多个AND OR 运算符的组合使用:
SELECT *
FROM 例子
WHERE 性别='男'
AND 地址 LIKE '河%'
OR 地址='山西'
OR 姓名 LIKE '刘%'
**************************************
使用IN 运算符进行查询:
SELECT *
FROM 例子
WHERE 性别 IN ('男')
**************************************
使用IN 运算符进行查询:
SELECT *
FROM 例子
WHERE 地址 IN ('河南','湖北')
**************************************
使用NOT IN 运算符进行查询:
SELECT *
FROM 例子
WHERE 地址 NOT IN ('河南','湖北')
**************************************
NOT 运算符查询:
SELECT *
FROM 例子
WHERE NOT 地址='河南'
**************************************
使用NOT 运算符实现查询:
SELECT *
FROM 例子
WHERE NOT 编号>1004
**************************************
NULL 的取反:
SELECT *
FROM 例子
WHERE NOT 职务 IS NULL
**************************************
NOT 的取反查询:
SELECT *
FROM 例子
WHERE NOT 职务<>'无'
**************************************
NOT 与BETWEEN 的组合使用:
SELECT *
FROM 例子
WHERE 编号 NOT BETWEEN '1003' AND '1005'
**************************************
**************************************
* 数学运算符的应用 *
**************************************
使用“+”运算符:
SELECT 货物编号,货物名称,数量,单价,货物运输单价,单价+货物运输单价 AS 实际单价
FROM 货物信息表
**************************************
使用“*”运算符:
SELECT 货物编号,货物名称,数量,单价,货物运输单价,数量*单价 AS 总价
FROM 货物信息表
**************************************
+ 加
- 减
* 乘
/ 除
% 取余
**************************************
**************************************
* 集合查询运算符 *
**************************************
************************
* UNION 并集 *
************************
UNION 运算符的应用:
SELECT 编号,姓名 FROM 员工信息表
UNION
SELECT 编号,姓名 FROM 学生信息表
执行后:将量表中的相关数据组合在一起
**************************************
组合带限制条件的数据表信息:
SELECT 编号,姓名 FROM 员工信息表
WHERE 姓名 LIKE '刘%'
UNION
SELECT 编号,姓名 FROM 学生信息表
**************************************
对多表进行UNION运算:
SELECT 编号,姓名 FROM 员工信息表
WHERE 编号<='1003'
UNION
SELECT 编号,姓名 FROM 学生信息表
WHERE 编号<='98002'
UNION
SELECT 编号,姓名 FROM 教师信息表
WHERE 编号<='99004'
**************************************
将使用UNION运算符将查询的结果进行排序:
SELECT 编号,姓名 FROM 员工信息表
WHERE 编号<='1003'
UNION
SELECT 编号,姓名 FROM 学生信息表
WHERE 编号<='98002'
UNION
SELECT 编号,姓名 FROM 教师信息表
WHERE 编号<='99004'
ORDER BY 编号
**************************************
************************
* INTERSECT 交集 *
************************
INTERSECT运算符的使用:
SELECT 姓名 FROM 员工信息表
INTERSECT
SELECT 姓名 FROM 学生信息表
**************************************
多个INTERSECT运算符的使用:
SELECT 姓名 FROM 员工信息表
INTERSECT
SELECT 姓名 FROM 学生信息表
INTERSECT
SELECT 姓名 FROM 教师信息表
**************************************
逻辑运算符与IN运算符的组合使用:
SELECT *
FROM 员工部门表
WHERE 部门 IN('生产部','营销部','财务部')
AND 姓名 LIKE '赵%'
**************************************
逻辑运算符与NOT运算符组合使用:
SELECT *
FROM 员工部门表
WHERE 性别='女'
AND
NOT 生日 BETWEEN '1980-01-01' AND '1982-12-31'
**************************************
逻辑运算符与数学运算符组合使用:
SELECT 货物编号,货物名称,数量,单价,数量*单价 AS 总价
FROM 货物信息
WHERE 数量*单价>100 AND 数量>50
**************************************
逻辑运算符与集合运算符的组合使用:
SELECT 编号,姓名 FROM 员工信息表
WHERE 编号>1003 AND 姓名 LIKE '刘%'
UNION
SELECT 学生编号,学生姓名 FROM 学生信息表
WHERE 学生编号>98002 OR 学生姓名 LIKE '赵%'
**************************************
数学运算符与NOT运算符组合使用:
SELECT 货物编号,货物名称,数量,单价,数量*单价 AS 总价,产地
FROM 货物信息表
WHERE NOT 产地='吉林长春'
**************************************
算术运算符与IN运算符组合使用:
SELECT 货物编号,货物名称,数量,单价,数量*单价 AS 总价,产地
FROM 货物信息表
WHERE 数量*单价>100 AND 产地 IN ('辽宁锦州','吉林长春')
**************************************
数学运算符与集合算符的组合使用:
SELECT 货物名称,数量*单价 AS 总价 FROM 货物信息表
UNION
SELECT 货物名称,数量*单价 AS 总价 FROM 采购信息表
**************************************
**************************************
* CAST 改变数据类型 *
**************************************
使用CAST 表达式转换日期数据类型:
SELECT 编号,姓名,性别,CAST(birthday AS CHAR(11)) AS '出生日期'
FROM 学生信息表
ORDER BY 编号
**************************************
使用CAST 表达式转换数值数据类型:
SELECT 货物编号,货物名称,CAST(数量 AS VARCHAR(3)) + '个' AS 货物数量,
CAST(单价 AS VARCHAR(6)) + '元' AS 货物单价,
FROM 货物信息表
ORDER BY 货物编号
**************************************
使用CAST 表达式转换数值与日期数据类型:
SELECT 货物编号,货物名称,CAST(数量 AS VARCHAR(3)) + '个' AS 货物数量,
CAST(单价 AS VARCHAR(6)) + '元' AS 货物单价,
CAST(运输日期 AS CHAR(11)) AS 货物运输日期
FROM 货物信息表
ORDER BY 货物编号
**************************************
**************************************
* CASE *
**************************************
CASE 表达式的应用:
SELECT 编号,姓名,性别,生日,娱乐分组=
CASE
WHEN 生日>'1981-01-01' AND 生日<'1989-01-01' THEN '青年组'
WHEN 生日>'1970-01-01' AND 生日<'1981-01-01' THEN '中年组'
WHEN 生日>'1955-01-01' AND 生日<'1970-01-01' THEN '老年组'
END
FROM 员工信息表
ORDER BY 编号
**************************************