数据查询(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), ''))