第7讲 数据查询.ppt
文本预览下载声明
数据查询;本章内容;6.1 基本查询;简单查询
语法格式:
SELECT [ALL|DISTINCT]
[TOP n [PERCENT]] select_list FROM
table_name
说明:
(1) ALL:表示输出所有记录,包括重复记录。
(2)select_list:所要查询的选项的集合,多个选项之间用逗号分开。
(3)table_name:要查询的表。; 例6-1? 分别显示Sales数据库中的员工表employee、商品表goods、销售表sell_order表和部门表department中的所有记录。
SELECT * FROM employee
SELECT * FROM goods
SELECT * FROM sell_order
SELECT * FROM department;例6-2? 显示employee表中全部员工的姓名和年龄,去掉重名。
SELECT DISTINCT employee_name AS 姓名,YEAR(GETDATE())-YEAR(birth_date) AS 年龄
FROM employee;例6-3 对employee表,分别查询公司的员工总数和公司员工的平均收入。
SELECT COUNT(*) AS 总数 FROM employee
???
SELECT AVG(wages) AS 平均收入 FROM employee;带条件查询
语法格式:
SELECT [ALL|DISTINCT]
[TOP n [PERCENT]] select_list FROM
table_name
WHERE search_condition
;例6-4? 对employee表,列出月工资在2000以上的员工记录。
SELECT * FROM employee WHERE wages2000
例6-5? 对employee表,求出男员工的平均工资。
??? SELECT AVG(wages) as 平均工资 FROM employee WHERE sex=男‘;*例6-6 对employee表,列出市场部和销售部的员工名单。
SELECT d.department_name, e.employee_name
FROM employee e INNER JOIN department d ON e.department_id = d.department_id
WHERE d.department_name IN (市场部, 销售部)
语句中的WHERE子句还有等价的形式:
? WHERE (d.department_name = 市场部) OR (d.department_name = 销售部);例6-7 对employee表,列出月工资在2000到3000之间的员工名单。
SELECT * FROM employee
WHERE wages BETWEEN 2000 AND 3000
语句中的WHERE子句还有等价的形式:
WHERE wages=2000 AND wages=3000;例6-8 对employee表,列出所有的姓“张”的员工名单。
SELECT * FROM employee
WHERE employee_name LIKE 张%
语句中的WHERE子句还有等价的形式:
WHERE LEFT(employee_name,1)= 张
例6-9 对employee表,列出所有工资为空值的员工编号和姓名。
SELECT employee_id,employee_name FROM employee WHERE wages IS NULL;查询结果处理
1. 排序输出(ORDER BY)
语法格式:
SELECT [ALL|DISTINCT]
[TOP n [PERCENT]] select_list FROM
table_name
WHERE search_condition
ORDER BY order_by_expression1[ASC|DESC]
[,order_by_expression2[ASC|DESC]] [,…]];例6-10 对employee表,按性别顺序列出员工的编号、姓名、性别、部门编号及工资,性别相同的再先按部门后按工资由高到低排序。
SELECT employee_id,employee_name,sex,department_id,wages
FROM employee
ORDER BY sex,department_id,wages DESC;2. 重定向输出(INTO)
语法格式:
SELECT [ALL|DISTINCT] INTO new_table
[TOP n [PERCEN
显示全部