Transact-SQL 学习笔记
1、 简单查询:
查询所有产品编号、名称和成本。
…
select p_id,p_name,cost from products /*用逗号分开多个查询
…
2、*通配符
查询数据库中所有列的值。
…
select * from employee
…
3、 查询结果添加列:
查询产品编号、名称、库存数量和成本,并计算每种产品的总成本。
…
select p_id,p_name,quantity,cost,cost*quantity as sum_cost from products /*在结果中将多出一列sum_cost (产品总成本)*/
…
4、 使用where语句:
查询工资在2000-3000之间的员工姓名。
…
select e_name from employee where e_wage between 2000 and 3000
…
5、 使用distinct 防止出现重复结果:
列出工资大于3000的员工所属的部门编号
…
select distinct dept_id from employee where e_wage>3000
…
6、 使用IN 关键字简化查询:
查询编号为1001和1002的部门中工作的员工姓名。
…
select e_name from employee where dept_id in (‘1001’,’1002’)
…
7、 使用通配符:
查找公司中所有姓张,且全名为两个字的员工姓名、所在部门编号
…
select e_name,dept_id from employee where e_name like ‘张__’ /*张__中“__”为两个下划线,因为一个汉字站用两个字符*/
…
8、 使用逃逸字符:
语法:LIKE ‘字符串’ ESCAPE ‘逃逸字符’
查找号码为C_D开头,HK结尾,中间有不确定字符的号码。
…
select * from cd_inf where cd_no like ‘C#_D_HK’ escape ‘#’ /*前一个_为实际字符,后一个_为通配符
…
9、 对查询结果进行排序:
查询工资级别为‘2’的员工姓名,查询结果按工资排序。
…
Select e_name from employee where job_level=’2’ order by e_wage
…
查询由编号‘1003’的部门生产的产品编号、名称、成本、库存数量,结果按产品成本降序,库存数量升序排序。
…
select p_id,p_name,cost,quantity from products where dept_id=’1003’ order by cost desc,quantity
…
10、 前几行数据:
用法:TOP n 或 TOP n PERCENT 经常和ORDER 子句一起使用。
查询工资最高的3名员工工资和姓名。
…
select top 3 e_name,e_wage from employee order by e_wage desc
…
11、 查询结果分组显示:
1) GROUP BY:
查询工作级别为‘2’的员工姓名,结果按部门分组。
…
select e_name,dept_id from employee where job_level=’2’ group by dept_id,e_name
…
2)WITH{CUBE|ROLLUP}:
查询公司编号、公司所订购的产品编号和应支付的金额,查询结果按公司编号和产品编号分组。
…
select firm_id,p_id,sum(o_price*o_quantity) as sum_value from orders group by firm_id,p_id with cube
…
3)HAVING:
将组的一些属性与常数值进行比较,如果一个组满足HAVING子句中的逻辑表达式,它就可以包含在查询结果中。
查询有多个员工的工资不低于3000的部门编号。
…
select dept_id,count(*) from employee where e_wage>=3000 group by dept_id having count(*)>1
…
说明:select语句中WHERE、GROUP BY、HAVING子句的执行次序如下:WHERE子句从数据源中祛除不符合条件的记录;GROUP BY搜索数据列到各个组中;HAVING子句去掉不符合其组搜索条件的各组数据行。
from:asp学习网/title:Transact-SQL 学习笔记/ time:2007-2-10 22:23:26
本文主题sql