0
点赞
收藏
分享

微信扫一扫

3.数据查询操作--SQL查询

书写经典 2022-03-12 阅读 85

1、查询语法的基本结构如下:
        select 列名-----要查询的字段
        from 表名-----要选项的表
        where 限制条件-----过滤数据
        group by 列名-----分组数据
        having 列名-----分组后过滤
        order by 列名-----排序数据
        limit N-----限制条数

        关键字顺序:SELECT ... FROM ... WHERE ... GROUP BY ... HAVING ... ORDER BY ...

SQL语句注释: 

        如果是单行注释可以用"--" (行前面加:--)

        如果是段落注释可以用"/* */ "(段首:/* 段尾:*/) 

2、检索单个列

        这里查询用到 select 命令,从哪个表里选取哪个列,select 后跟列名,from 后跟表名。

        如:SELECT 列名 FROM 表;

3、检索多个列

        如:SELECT 列1,列2,…… FROM 表;

4、检索所有列

        如:SELECT * FROM 表; 

5、去重检索

① 用distinct检索不同的记录,也就是去重

        如:SELECT DISTINCT 列 FROM 表; 

② 用distinct检索多列不同记录,以下示例代表<列1&列2>去重

        如: SELECT DISTINCT 列1,列2 FROM 表;

③ 用group by检索不同记录

        如: SELECT 列 FROM 表 GROUP BY 列;

④ 用group by检索多列不同记录

        如:SELECT 列1,列2 FROM 表 GROUP BY ALL 列1,列2; 

6、对检索结果进行条数限制

 ① mysql:SELECT 列 FROM 表 LIMIT m;  m代表限制的条数

              SELECT 列 FROM 表 LIMIT m,n; 代表获取第m行以后的n行数据

② sql server: SELECT TOP m 列 FROM 表 ;  m代表限制的条数

    获取第7条~9条记录: select top 3 列 from 表 where 列 not in (select top 6 列 from 表) 

7、排序 

           ASC是ascend 升序意思

           DESC是descend 降序意思

① 升序

        排序用到 order by 关键字,默认是升序,也可以直接写明 ASC

        如:SELECT 列 FROM 表 ORDER BY 列;

               SELECT 列 FROM 表 ORDER BY 列 ASC;

② 降序

        如:SELECT 列 FROM 表 ORDER BY 列 DESC;

 ③ 多个列排序

        如:SELECT 列1,列2 FROM 表 ORDER BY 列1 ASC,列2 DESC;

8、过滤数据

        过滤/筛选数据通常用到 where 子句,它常用的查询条件如下表所示: 

 ① 单条件过滤

        单条件过滤,后常跟比较运算符=,<,<=,>,>=,<>

        如:select  列  from  表  where  列  >  值;

 ② 多条件过滤

        多条件过滤常用到逻辑运算符:AND OR NOT

        如:select  列  from  表  where  列  >  值  and  列 < 值;

③ 范围过滤

        指定范围通常用到 between and 命令,between 后是范围的下限,and 后跟上限。

         如:select  列  from  表  where  列  between  值1  and  值2;

④ 集合筛选

        IN 功能是筛选在某一集合里的数据

        select 列 from 表 where 列 IN (值 1,值 2,值 3); 

        不在集合里的筛选就是 NOT IN

        select 列 from 表 where 列 NOT IN (值 1,值 2,值 3);

9、缺失值判断 

         缺失值为 null,查询数据是否为空,where 条件子句后用 is null

        select 列 from 表 where 列 is null;

        值不为空值,用 is not null,注意不是 not is null,

        select 列 from 表 where 列 is not null;

        有的缺失值可能是空格,可以用!=或<>

        select 列 from 表 where 列 != ''; 

10、模糊匹配 

        模糊匹配用 LIKE    

        select 列 from 表 where 列 LIKE 条件;

        百分号(%)表示多个任意想要匹配的字符。

        如 like ‘a%’ 表示以 a 开头的任意长度字符串,like '%a'表示以a结尾的任意长度字符串,也可以用‘%a%’表示含有a的任意长度字符串。

举报

相关推荐

0 条评论