数据查询(1)-简单查询(芮)

理解查询的机制
查询产生一个虚拟表,看到的是表形式显示的结果,但结果并不真正存储,每次执行查询只是先从数据表中提取数据,并按照表的形式显示出来
 
查询
SELECT    <列名>
FROM      <表名>
[WHERE    <查询条件表达式>]
[ORDER BY <排序的列名>[ASC或DESC]]
SELECT SCode,SName,SAddress
FROM            Students
WHERE SSEX = 0
ORDER BY     SCode
 
数据查询-基础
查询全部的行和列
SELECT * FROM Students
 
数据查询-给列取别名(3种方式)
使用AS来命名列(其中as可以省略)
SELECT FirstName+'.'+LastName AS '姓名'
FROM Employees
使用=来命名列
SELECT '姓名' = FirstName+'.'+LastName
FROM Employees
 
数据查询-查询部分行
SELECT SCode,SName,SAddress FROM Students
WHERE SAddress <> '河南新乡'
 
数据查询-查询NULL值
SELECT SName FROM Students WHERE SEmail IS NULL
 
数据查询-使用常量列
SELECT 姓名=SName,地址= SAddress,'河北新龙' AS 学校名称
FROM Students
 
数据查询-限制行数
1. 限制固定行数
SELECT TOP 5 SName, SAddress
FROM Students WHERE SSex = 0
 
2. 返回百分之多少行
SELECT TOP 20 PERCENT SName, SAddress
FROM Students WHERE SSex = 0
 
数据查询-排序
注意排序中的字段可以使用表达式:
1.      升序
SELECT StudentID As 学员编号,(Score*0.9+5) As 综合成绩
FROM Score
WHERE (Score*0.9+5)>60
ORDER BY Score
 
2.      降序
SELECT Au_Lname +'.' +Au_fName AS EMP
From Authors Union
SELECT fName +'.'+ LName AS EMP
From Employee
ORDER BY EMP DESC
 
3.      按多列排序
SELECT StudentID As 学员编号, Score As 成绩
FROM Score
WHERE Score>60
ORDER BY Score,CourseID
 
数据查询-使用函数(这个在前面已经介绍过了)
SELECT ListNumber
FROM    SellRecord
ORDER BY
Convert(int, Left(ListNumber, CharIndex('-', ListNumber)-1)),
Convert(int, Stuff(ListNumber,1, Charindex('-', ListNumber), ''))

 

posted @ 2014-11-13 16:36  博斯芮网络科技  阅读(291)  评论(0编辑  收藏  举报