1.
SELECE 姓名,DATEDIFF(year,出生日期,GETDATE()) AS 年龄
FROM 职员档案表
WHERE 薪金 BETWEEN 2000 AND 3000
AND 所属部门 IN("技术部","企划部")
DATEDIFF()和GETDATE()都是SQL中的聚集函数:
DATEDIFF(datepart,startdate,enddate) 返回跨两个指定日期的日期和时间边界数
GETDATE() 返回当前系统日期和时间
2.
NULL表示未知,不是0.
另外,SELECT * FROM 职员档案表 WHERE 薪金=NULL 输出结果:一条记录都没有
SELECT * FROM 职员档案表 WHERE 薪金 IS NULL 输出结果:薪金为空的记录
3.
字符匹配
使用%通配符可连接任意数目的字符;
使用_可匹配任意一个字符;
如:SELECT * FROM 读者反馈表 WHERE 姓名 LIKE '李%'
SELECT * FROM 读者反馈表 WHERE 电话 LIKE '135_______25'
4.
SELECT * FROM 职员档案表 ORDER BY 出生日期 //默认为升序排序
SELECT * FROM 职员档案表 ORDER BY 薪金 DESC //降序
5.
ALL 返回所有行,它是默认值,相当于*
DISTINCE 只返回唯一行
6.
聚合函数:
AVG() 求平均值
COUNT() 求记录数
MAX() 求最大值
MIN() 求最小值
SUM() 求和
7.
使用GROUP BY语句中的SELECT字句,除了GROUP BY 子句中的分组字段和使用聚合函数进行运算的字段外,其他均为非法的
如:SELECT 编号,薪金,所属部门 FROM 职员档案表 GROUP BY 所属部门 //编号,薪金是非法的
SELECT 所属部门 AS 部门,COUNT(编号) AS 人数,SUM(薪金) AS 工资总额,AVG(薪金) AS 平均工资 FROM 职员档案表 GROUP BY 所属部门 //都合法
HAVING字句限定组,常和GROUP BY语句同时出现;HAVING字句的用法与WHERE字句类似,只不过WHERE字句限定的是行
8.
INSERT INTO 职员档案表 VALUES(10,'郑好','男','1975-03-04',3,2180.00,'220105750304230')
UPDATE 职员档案表 SET 薪金=薪金*1.1
DELETE FROM 考勤表 WHERE 姓名='周伊'
9.
数据备份
BACKUP DATABASE 汽配管理系统 TO DISK='d:/bak.bak'
数据还原
RESTORE DATABASE jxc FROM DISK='d:/bak.bak'
10.
联接