当前位置: 数据库>sqlserver
SQL学习笔记三 select语句的各种形式小结
来源: 互联网 发布时间:2014-10-04
本文导语: 代码如下:Select * from T_Employee select FName,FAge from T_Employee select FName from T_Employee where FSalary < 5000 select FName as 姓名,FAge as 年龄,FSalary as 月薪from T_Employee where FSalary < 5000 select FName as 姓名,FAge as 年龄,FSalary as 月薪,getdate() as 当前时间fr...
代码如下:
Select * from T_Employee
select FName,FAge from T_Employee
select FName from T_Employee where FSalary < 5000
select FName as 姓名,FAge as 年龄,FSalary as 月薪from T_Employee where FSalary < 5000
select FName as 姓名,FAge as 年龄,FSalary as 月薪,getdate() as 当前时间from T_Employee
3.3.1 SELECT命令的格式与基本使用
Ø数据查询是数据库中最常见的操作。
ØSQL语言提供SELECT语句,通过查询操作可得到所需的信息。
ØSELECT语句的一般格式为:
SELECT〈列名〉[{,〈列名〉}]
FROM〈表名或视图名〉[{,〈表名或视图名〉}]
[WHERE〈检索条件〉]
[GROUP BY [HAVING ]]
[ORDER BY [ASC|DESC]];
ØØ查询的结果是仍是一个表。
ØSELECT语句的执行过程是:
Ø根据WHERE子句的检索条件,从FROM子句指定的基本表或视图中选取满足条件的元组,再按照SELECT子句中指定的列,投影得到结果表。
Ø如果有GROUP子句,则将查询结果按照相同的值进行分组。
Ø如果GROUP子句后有HAVING短语,则只输出满足HAVING条件的元组。
Ø如果有ORDER子句,查询结果还要按照的值进行排序。
Ø例3.21 查询全体学生的学号、姓名和年龄。
SELECT SNO, SN, AGE FROM S
Ø例3.22 查询学生的全部信息。
SELECT * FROM S
Ø用‘ * '表示S表的全部列名,而不必逐一列出。
Ø例3.23 查询选修了课程的学生号。
SELECT DISTINCT SNO FROM SC
Ø查询结果中的重复行被去掉
ØØ上述查询均为不使用WHERE子句的无条件查询,也称作投影查询。
Ø另外,利用投影查询可控制列名的顺序,并可通过指定别名改变查询结果的列标题的名字。
例3.24 查询全体学生的姓名、学号和年龄。
SELECT SNAME NAME, SNO, AGE FROM S
Ø其中,NAME为SNAME的别名
3.3.2 条件查询
Ø当要在表中找出满足某些条件的行时,则需使用WHERE子句指定查询条件。
ØWHERE子句中,条件通常通过三部分来描述:
1. 列名;
2. 比较运算符;
3. 列名、常数。
3.3.2.1 比较大小
例3.25 查询选修课程号为‘C1'的学生的学号和成绩。
SELECT SNO,SCORE FROM SC WHERE CNO='C1'Ø例3.26 查询成绩高于85分的学生的学号、课程号和成绩。
SELECT SNO,CNO,SCORE FROM SC WHERE SCORE>85
Ø3.3.2.2 多重条件查询
Ø当WHERE子句需要指定一个以上的查询条件时,则需要使用逻辑运算符AND、OR和NOT将其连结成复合的逻辑表达式。
Ø其优先级由高到低为:NOT、AND、OR,用户可以使用括号改变优先级。
Ø例3.27 查询选修C1或C2且分数大于等于85分学生的的学号、课程号和成绩。
SELECT SNO,CNO,SCORE
FROM SC
WHERE(CNO='C1' OR CNO='C2') AND SCORE>=85
3.3.2.3 确定范围
例3.28 查询工资在1000至1500之间的教师的教师号、姓名及职称。
SELECT TNO,TN,PROF
FROM T
WHERE SAL BETWEEN 1000 AND 1500
Ø等价于
SELECT TNO,TN,PROF
FROM T
WHERE SAL>=1000 AND SAL