SQL语句备忘,重点语句!!
写SQL语句的时候,老是忘记这些,现在要记清楚了。。
数据分组:(Group By)
想到数据分组,联想到数据排序用到的(Order By)
数据分组是将某个列的相同数据分为一组。
语法:Group By 必须放到 Where 语句后面!没有出现在Group By中的字段,不能出现在Select后面的列名中!(聚合函数除外)
Having 语句:
联想:Where语句
Where语句不能出现聚合函数,所以,聚合函数只能放在Having语句中;
而Having语句要放在Group By之后;
注意:出现在Having后的语句,必须能放在Select语句后
如:Select * from emp Group By Salary Having Salary>2000
这样就不行,因为Salary>2000 不能放在Select后面!
Having不能替代Where,作用不一样,Having是对组进行过滤!
限制结果集的函数:
取出数据的前几条Top语句
Select Top 3 ,* from emp
只显示查询结果的前三条,配合Row_Number 可用与数据分页!
去掉重复(Distincy):
Select distincy salary from Emp
注意:distncy 是对真个结果进行消除重复处理,而不是对某个字段!
联合查询(union):
联合查询就是将两条Select语句查询的结构合并到一起!
注意:使用联合查询两个Select语句的字段个数要相同,对应的字段类型要相容,
而且使用后自动去掉重复的的值,如果不需要去掉重复的值,则在union后加个all
几个常忘记的数据库函数:
GetDate()取得当前日期时间;
DateADD(datepart,number,date)计算增加以后的日期;
第一个参数放year、mouth、day等等
第二个参数放增量
第三个参数放date
如:dateadd(mouth,3,date) 就是将月份增加3;
DateDiff(datepart,stardate,enddate)计算连个日期的差额;
第一个参数同上
第二个参数放日期
第三个参数放日期
这样就计算出两个日期之间的差额