1、 数据准备
创建一个表格:
CREATE TABLE T_Employee (FNumber VARCHAR(20), FName VARCHAR (20), Fage INT, FSalary DECIMAL(10, 2), PRIMARY KEY (FNumber))
插入数据
INSERT INTO T_Employee(FNumber, FName, FAge, FSalary) VALUES("DEV001","Tom",25,8300);
INSERT INTO T_Employee(FNumber, FName, FAge, FSalary) VALUES("DEV002","Jerry",28,2300.80);
INSERT INTO T_Employee(FNumber, FName, FAge, FSalary) VALUES("SALE001","John",23,5000);
INSERT INTO T_Employee(FNumber, FName, FAge, FSalary) VALUES("SALE002","Kerry",28,6200);
INSERT INTO T_Employee(FNumber, FName, FAge, FSalary) VALUES("SALE003","Stone",22,1200);
INSERT INTO T_Employee(FNumber, FName, FAge, FSalary) VALUES("HR001","Jane",23,2200.88);
INSERT INTO T_Employee(FNumber, FName, FAge, FSalary) VALUES("HR002","Tina",25,5200.36);
INSERT INTO T_Employee(FNumber, FName, FAge, FSalary) VALUES("IT001","Smith",28,3900);
2、 简单的数据检索
取出一张表中的所有数据:SELECT * FROM 表名
例如 SELECT * FROM T_Employee
如果要检索其中某一列的数据,则将上述语句的*替换成对应的列名
SELECT FName FROM T_Employee
若要检索多个列,则输入多个列名,用逗号隔开
列别名:只需要在列名后面输入 as 别名 即可 (通常把as省略)
例如:SELECT FName 姓名,FAge 年龄FROM T_Employee
3、 数据汇总
SQL中提供了聚合函数来完成计算统计结果集条数、某个字段的最大值、某个字段的最小值、某个字段的平均值以及某个字段的合计值等数据统计的功能
函数名 说明
MAX 计算字段最大值
MIN 计算字段最小值
AVG 计算字段平均值
SUM 计算字段合计值
COUNT 统计数据条数
这几个聚合函数都有一个参数,表示要统计的字段名
例:SELECT MAX(FSalary) FROM T_Employee WHERE Fage>25
4、 排序
SELECT语句允许使用ORDER BY子句来执行结果集的排序方式
ORDER BY子句位于SELECT语句的末尾,他允许指定按照一个列或者多个列进行排序,还可以指定排序方式是升序(ASC)还是降序(DESC)
例:SELECT * FROM T_Employee ORDER BY FAge ASC
ORDER BY 子句支持指定多个排序列,各列之间用逗号分开即可
例:SELECT * FROM T_Employee ORDER BY FAge DESC,FSalary DESC
按照年龄从大到小排序,如果年龄相同则按照工资从大到小排序
对于多个排序规则,数据库系统会按照优先级进行处理。
ORDER BY语句还可以与WHERE搭配使用,需要注意的是ORDER BY语句需要放在WHERE语句后面。
5、通配符过滤
SQL中的通配符过滤使用LIKE关键字,可以像使用OR、AND等操作符一样使用它,它是一个二元操作符,左表达式为待匹配的字段,而右表达式为待匹配的通配符表达式。通配符表达式由通配符和普通字符组成,主流数据库系统支持的 通配符有单字符匹配和多字符匹配,有的数据库系统还支持集合匹配。
- 单字符匹配
进行单字符匹配的通配符为半角下划线“_”,它匹配单个出现的字符。比如通配符表达式“b_d”匹配第一个字符为b,第二个字符为任意字符,第三个字符为d的字符串
例如:SELECT * FROM T_Employee WHERE FName LIKE “_erry
- 多字符匹配
进行多字符匹配的通配符为半角百分号”%“,它匹配任意次数(零次或多次)出现的任意字符。比如通配符表达式”k%”匹配以“k“开头,任意长度的字符串
6、 空值检测
在SQL语句中对空值的处理有些特别,不能使用普通的等于运算符进行判断,而是使用IS NULL关键字,使用方法为“待检测字段名IS NULL”,比如要查询所有姓名未知的员工信息,则运行下面的SQL语句:
SELECT * FROM T_Employee WHERE FAname IS NULL
如果要检测“字段不为空”,则要使用IS NOT NULL
7、 反义运算符
MSSQLServer、DB2提供了“!”运算符来对运算符求反义,也就是“!=“表示不等于、
“!<”表示不小于。
不过这个运算符只在MSSQLServer和DB2两种数据库系统上提供支持,如果在其他数据库系统上则可以用其他的变通方式实现,最常用的变通实现方式有两种:使用同义运算符、使用NOT运算符
同义运算符:“<>”不等于、”<=”不大于、”>=”不小于
NOT运算符:如表达“年龄不小于20”,那么使用“NOT(Fage<20)
8、 多值检测
为了解决进行多个离散值的匹配问题,SQL提供了IN语句,使用IN我们只要指定要匹配的数据集合就可以了,使用方法为“IN(值1,值2,值3……)”。
例如:SELECT FAge,FNumber,FName FROM T_Employee WHERE FAge IN(23,25,28)
9、 范围值检测
专门用于范围值检测的语句”BETTWEEN AND”,它可以用来检测一个值是否处于某个范围中(包括范围的边界值,也就是闭区间)。
使用方法如下:“字段名BETTWEN左范围值AND右范围值”