非常抱歉,忘记上传今天讲解使用的数据库了。特此附上:
http://download.csdn.net/detail/xc5683/4761054
今天我们学习SQL知识,我们今天开始我们的重点select查询语句。
今天用到的知识:SQL通配符和SQL函数。
先来看通配符:
通配符 | 描述 |
---|---|
% | 替代一个或多个字符 |
_ | 仅替代一个字符 |
[charlist] | 字符列中的任何单一字符 |
[^charlist] 或者 [!charlist] | 不在字符列中的任何单一 |
函数 | 描述 |
---|---|
AVG(column) | 返回某列的行数 |
COUNT(column) | 返回某列的行数(不包括NULL值) |
COUNT(*) | 返回被选行数 |
COUNT(DISTINCT column) | 返回相异结果的数目 |
FIRST(column) | 返回在指定的域中第一个记录的值(SQLServer2000 不支持) |
LAST(column) | 返回在指定的域中最后一个记录的值(SQLServer2000 不支持) |
MAX(column) | 返回某列的最高值 |
MIN(column) | 返回某列的最低值 |
SUM(column) | 返回某列的总和 |
USE TeachingDB;--查询Student中的所有信息SELECT * FROM StudentInfo;--查询student中的学生的Sname和Saddress信息SELECT Sname,Saddress FROM StudentInfo;--查询student中的学生的Sname和Saddress信息,并设定别名SELECT Sname AS '姓名',Saddress AS '地址' FROM StudentInfo;SELECT Sname '姓名',Saddress '地址' FROM StudentInfo;SELECT Sname 姓名,Saddress 地址 FROM StudentInfo;SELECT Sname AS 姓名,Saddress AS 地址 FROM StudentInfo;--这里的四种方法都行,但是建议用第一种方法--查询student表中的前5行信息,用topSELECT TOP 5 Sname,Sage FROM StudentInfo;--查询student表中前10%的信息SELECT TOP 10 PERCENT * FROM StudentInfo;--这个表中共有30条记录,所以这个结果显示前3条信息--那么查询倒数5行信息呢?SQL中没有down之类的语句,大家思考一下这个问题--下面用下面这个表看一下SELECT * FROM StudentCourse;--这个表中的Sno有重复的项,共60条记录啊--那么怎么去掉重复项呢?SELECT DISTINCT Sno FROM StudentCourse;--现在就剩30条了--查询地址为四川绵阳的学生SELECT * FROM StudentInfo WHERE Saddress='四川绵阳';--查询年龄大于19岁的学生信息SELECT * FROM StudentInfo WHERE Sage>19;--查询年龄在18和20之间的SELECT * FROM StudentInfo WHERE Sage>18 AND Sage<20;SELECT * FROM StudentInfo WHERE Sage BETWEEN 18 AND 20;--注意观察这两个区别?范围有区别的哦--查询学生地址为四川自贡和四川成都的学生信息SELECT * FROM StudentInfo WHERE Saddress='四川自贡' OR Saddress='四川成都';--查询学生地址不是自贡的学生信息SELECT * FROM StudentInfo WHERE NOT(Saddress='四川自贡'); SELECT * FROM StudentInfo WHERE Saddress!='四川自贡'; SELECT * FROM StudentInfo WHERE Saddress<>'四川自贡'; --查询Sno以02开头的学生信息SELECT * FROM StudentInfo WHERE Sno LIKE '02%';--查询Sname中带有小字的学生信息SELECT * FROM StudentInfo WHERE Sname LIKE '%[小]%';SELECT * FROM RankPayment;--查询平均paymentSELECT AVG(payment) FROM RankPayment;select * from courseinfo;--统计所有的行数SELECT COUNT(*) FROM CourseInfo;--查询coursehour最大的课程信息SELECT MAX(CouresHour) FROM CourseInfo;--查询coursehour最小的课程信息SELECT min(CouresHour) FROM CourseInfo;--查询coureshour大于平均课时的课程信息SELECT * FROM CourseInfo WHERE CouresHour>avg(coureshour);--哦,出错了,怎么回事啊?我们明天继续