SQL--数据的检索

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右范围值”

原文地址:https://www.cnblogs.com/D-LW/p/8526011.html