赞
踩
(1)比较条件
select Sno,Sname
from Students
where Dno = 'D03'
格式:
select [预查询数据]
from [表名]
where [条件]
如果是多个条件复合,则用and相连
select [预查询数据]
from [表名]
where [条件1] and [条件2] and …
SQL涉及的运算符和函数
=,>,<,>=,<=,!=,!<,!> | 等于,大于,小于… |
---|---|
BETWEEN AND,NOT BETWEEN AND | 介于两者之间,不介于两者之间 |
IN, NOT IN | 在其中,不在其中 |
LIKE, NOT LIKE | 匹配,不匹配 |
IS NULL, IS NOT NULL | 是空值,不是空值 |
NOT, AND, OR | 非,与,或 |
COUNT(*), COUNT(列名), SUM(列名),AVG(列名),MAX(列名),MIN(列名) | 统计元组个数,统计列值个数,列值汇总,列值平均值,列值最大值,列值最小值 |
列子:
select Sname,Datename(yyyy,getdate()) - year(Birthday) Sage
from Students
where dataname(yyyy,getdate()) - year(Birthday) >= 18 and
datename(yyyy,getdate()) - year(Birthday) <= 22
也可以写成:
select Sname,Datename(yyyy,getdate()) - year(Birthday) Sage
from Students
where dataname(yyyy,getdate()) - year(Birthday) between 18 and 22
如果要查询不在18到22之间的,则为
select Sname,Datename(yyyy,getdate()) - year(Birthday) Sage
from Students
where dataname(yyyy,getdate()) - year(Birthday) not between 18 and 22
在SQL中,%表示任意长度字符(可为0),_表示单个字符。
下面,我们从例子来讲解这些东西。
select Sname,Sno,Ssex
from Students
where Sname like '刘%'
则输出所有Sname 第一个字为刘的。
如果要所有包含刘字的,那么使用 %刘%
如果要刘某某,则使用刘__
如果要查询所有不姓刘的,则使用:
select Sname,Sno,Ssex
from Students
where Sname not like '刘%'
如果要查询的信息包含_,例如,查询Cname名为 “DB_设计” 的数据,那么可以使用
select Cno,Credits
from Courses
where Cname like 'DB\_设计' escape '\'
ecape ‘\’ 表示 \ 为换码字符
对于列数据为NULL的数据,不可以用=来查询。要用is null跟is not null来查询.
比如:
select Sno,Cno
from Reports
where Grade is null
如果用Grade = null,会导致得不到正确的查询结果。
语句:
select Sno,Grade
from Reports
where Cno = 'C03'
order by Grade desc
这里再次说一下,asc是升序排列,desc是降序排列
格式为:
select [列名]
from [表名]
where [条件]
order by [列名] [排列方式]
语句:
select count(*)
from Students
以上语句输出列数
语句:
select count(distinct Sno)
from Students
以上语句输出Students的Sno列数(不重复)
其他的max,min,avg,sum等跟这个类似。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。