美文网首页
SQL的查询语句

SQL的查询语句

作者: DramaScript | 来源:发表于2018-03-11 08:05 被阅读9次

    查询语句,在开发中使用的次数最多。比如如何分组查询,按条件查询等等。首先我们先建立一个账务的表:

    CREATE TABLE zhangwu (
      id INT PRIMARY KEY AUTO_INCREMENT, -- 账务ID
      zname VARCHAR(200), -- 账务名称
      zmoney DOUBLE -- 金额
    );
    

    然后我们添加一些数据

    INSERT  INTO zhangwu(id,zname,zmoney) VALUES (1,'吃饭支出',247);
    INSERT  INTO zhangwu(id,zname,zmoney) VALUES (2,'工资收入',12345);
    INSERT  INTO zhangwu(id,zname,zmoney) VALUES (3,'服装支出',1000);
    INSERT  INTO zhangwu(id,zname,zmoney) VALUES (4,'吃饭支出',325);
    INSERT  INTO zhangwu(id,zname,zmoney) VALUES (5,'股票收入',8000);
    INSERT  INTO zhangwu(id,zname,zmoney) VALUES (6,'打麻将支出',8000);
    INSERT  INTO zhangwu(id,zname,zmoney) VALUES (7,NULL,5000);
    

    查询的语法

    • 查询指定列的数据
    /*
       查询指定列的数据
       格式:
         select 列名1,列名2 from 表名
    */
    SELECT zname,zmoney FROM zhangwu;
    
    • 查询所有列的数据
    /*
      查询所有列的数据
      格式:
        select * from 表名
    */
    SELECT * FROM zhangwu;
    
    • 查询去掉重复记录
    /*
       查询去掉重复记录
       DISTINCT 关键字 跟随列名
    */
    SELECT  DISTINCT zname FROM zhangwu
    
    • 查询重新命名列
    /*
      查询重新命名列
      as 关键字
    */
    SELECT zname AS 'name' FROM zhangwu 
    
    • 查询数据中,直接进行数学计算
    /*
      查询数据中,直接进行数学计算
      列对数字进行计算
    */
    SELECT zname,zmoney+1000 AS'sum' FROM zhangwu
    

    条件查询

    where语句表条件过滤。满足条件操作,不满足不操作,多用于数据的查询与修改。
    格式 :select 字段 from 表名 where 条件;

    • while条件的种类如下:


      图片.png
    • 示例:
    -- 查询所有的吃饭支出
    SELECT * FROM zhangwu WHERE zname='吃饭支出'
    
    -- 查询金额大于1000
    SELECT * FROM zhangwu WHERE zmoney>1000
    
    -- 查询金额在2000到5000之间 
    SELECT * FROM zhangwu WHERE zmoney >= 2000 AND zmoney <= 5000
    -- 改造成between and 方式
    SELECT * FROM zhangwu WHERE zmoney BETWEEN 2000 AND 5000
    
    -- 查询金额是 1000,3500,5000 其中一个
    SELECT * FROM zhangwu WHERE zmoney = 1000 OR zmoney=3500 OR zmoney=5000
    -- 改造成in方式
    SELECT * FROM zhangwu WHERE zmoney  IN (1000,3500,5000)
    
    
    -- like 模糊查询 配合通配符
    -- 查询所有的支出
    SELECT * FROM zhangwu WHERE zname LIKE '%支出%'
    
    
    -- 查询账务名字,五个字符的
    SELECT * FROM zhangwu WHERE zname LIKE'_____'
    
    -- 查询账务名,不为空的
    SELECT * FROM zhangwu WHERE zname IS NOT NULL
    
    SELECT * FROM zhangwu WHERE   NOT ( zname IS NULL)
    
    

    查询排序

    对查询的结果进行排列

    /*
      查询,对结果集进行排序
      升序,降序,对指定列排序
      order by 列名 [desc][asc]
      desc 降序
      asc  升序排列,可以不写
    */
    -- 查询账务表,价格进行升序
    SELECT * FROM zhangwu ORDER BY zmoney ASC
    
    -- 查询账务表,价格进行降序
    SELECT * FROM zhangwu ORDER BY zmoney DESC
    
    -- 查询账务表,查询所有的支出,对金额降序排列
    -- 先过滤条件 where 查询的结果再排序
    SELECT * FROM zhangwu WHERE zname LIKE'%支出%' ORDER BY zmoney DESC
    

    分组查询

    我需要对查询的数据按照一组一组不同的情况进行分组排序,如何实现?

    /*
        查询所有的数据
        吃饭支出 共计多少
        工资收入 共计多少
        服装支出 共计多少
        股票收入 共计多少
        打麻将支出 共计多少钱
        
        分组查询:  group by 被分组的列名
        必须跟随聚合函数
        select 查询的时候,被分组的列,要出现在select 选择列的后面
    */
      SELECT SUM(zmoney),zname FROM zhangwu GROUP BY zname
      
    -- 对zname内容进行分组查询求和,但是只要支出
    SELECT SUM(zmoney)AS 'getsum',zname FROM zhangwu WHERE zname LIKE'%支出%'
    GROUP BY zname
    ORDER BY getsum DESC
    
    -- 对zname内容进行分组查询求和,但是只要支出, 显示金额大于5000
    -- 结果集是分组查询后,再次进行筛选,不能使用where, 分组后再次过滤,关键字 having
    SELECT SUM(zmoney)AS 'getsum',zname FROM zhangwu WHERE zname LIKE'%支出%'
    GROUP BY zname HAVING getsum>5000
    

    聚合函数

    聚合函数就是比入需要对查出的一列数据进行计算最大值,或者总和的函数。
    例如:

    /*
       使用聚合函数查询计算
    */
    
    -- count 求和,对表中的数据的个数求和  count(列名)
    -- 查询统计账务表中,一共有多少条数据
    SELECT COUNT(*)AS'count' FROM zhangwu
    
    -- sum求和,对一列中数据进行求和计算 sum(列名)
    -- 对账务表查询,对所有的金额求和计算
    SELECT SUM(zmoney) FROM zhangwu
    -- 求和,统计所有支出的总金额
    SELECT SUM(zname) FROM zhangwu WHERE zname LIKE'%收入%'
    
    INSERT INTO zhangwu (zname) VALUES ('彩票收入')
    
    -- max 函数,对某列数据,获取最大值
    SELECT MAX(zmoney) FROM zhangwu
    
    -- avg 函数,计算一个列所有数据的平均数
    SELECT AVG(zmoney)FROM zhangwu
    
    

    完了,SQL语句大致内容就这些,后面讲解在Java中利用jdbc连接MySQL数据库。至于Python如何连接可以参考我的Python系列文章。

    相关文章

      网友评论

          本文标题:SQL的查询语句

          本文链接:https://www.haomeiwen.com/subject/recrfftx.html