zoukankan      html  css  js  c++  java
  • 基本的查询语句

    查询的格式:
    select [distinct] *(所有)| 字段名... from 表名 [where 条件过滤]
    查询指定字段信息pname price
    select pname,price from products;

    查询表中所有字段
    select * from products;

    去除金额重复的记录
    select distinct price from products;

    别名查询 使用的as关键字 as可以省略
    select pname as 名称 ,price as 价格 from products;
    select pname 名称,price 价格 from products;

    我们在sql语句中的操作中,可以直接对列进行运算
    select (1+1);
    select (5/2);

    查询出所有的商品价格,把价格增加20元
    select pname ,price+20 from products;


    条件查询语句
    格式:
    select [distinct] *(所有)|字段名,....from 表名 [where 条件过滤]
    比较运算符
    > < >= = <= <>(!=)
    is null是否为null
    逻辑运算符
    与 and
    或 or
    非 not
    模糊查询
    like
    %:任意多个字符
    _:单个字符
    查询商品名称为"花花公子"的商品信息
    select * from products where pname = '花花公子';
    select * from products where pname in ('花花公子');

    查询价格为800的商品
    select * from products where price = 800;

    查询价格不是800的所有商品
    select * form products where price !=800;
    select * from products where price <>800;
    seelct * from products where price not in (800);
    select * from products where not price in (800);

    查询商品价格大于60的所有商品信息
    select * from products where price >60;

    查询商品价格在200到1000之间的所有商品
    select * from products where price >=200 and <=1000;
    使用between and 进行改造
    小的数值必须写在前面 可以对日期进行查询
    select * from products where price between 200 and 1000;

    查询商品价格是200或800的所有商品
    SELECT * FROM products WHERE price=200 OR price=800;

    使用in(多个字段)改造
    SELECT * FROM products WHERE price IN(200,800);

    查询名称以'香'开头的所有商品
    SELECT * FROM products WHERE pname='香'; -- 没有结果
    SELECT * FROM products WHERE pname LIKE '香%'

    查询名称以'霸'结尾的所有商品
    SELECT * FROM products WHERE pname LIKE '%霸'

    查询名称含有'霸'字的所有商品
    SELECT * FROM products WHERE pname LIKE '%霸%'

    查询出名称中是五个字的所有商品
    SELECT * FROM products WHERE pname LIKE '_____';

    查询名称第二个字为'想'的所有商品
    SELECT * FROM products WHERE pname LIKE '_想%';

    查询商品名称是null的值
    SELECT * FROM products WHERE pname IS NULL;

    查询商品名称不是null的值
    SELECT * FROM products WHERE pname IS NOT NULL; -- 是不空
    SELECT * FROM products WHERE NOT (pname IS NULL);

    排序查询
    格式:
    select 字段|* from 表名 [where 条件过滤] [order by 字段[ASC][DESC]]
    升序:ASC 默认为升序
    降序:DESC
    注意:
    排序order by 要写在select语句末尾

    1.使用价格排序(升序)
    SELECT * FROM products ORDER BY price ASC;
    SELECT * FROM products ORDER BY price;

    2.使用价格排序(降序)
    SELECT * FROM products ORDER BY price DESC;

    3.显示商品的价格(去重复),并排序(降序)
    SELECT DISTINCT price FROM products ORDER BY price DESC;

    4.显示商品的价格大于1000的商品所有信息,并排序(降序)
    SELECT * FROM products WHERE price >1000 ORDER BY price DESC;

    5.根据商品名称排序 默认使用编码表排序
    SELECT * FROM products ORDER BY pname DESC;

    聚合函数:
    对列进行操作,返回的结果是一个单一的值,忽略空值
    count:统计指定列不为NULL的记录行数;
    sum:计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0;
    max:计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;
    min:计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;
    avg:计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;
    格式:
    select 聚合函数(字段) from 表名

    1 查询商品的总条数
    SELECT COUNT(*) FROM products;-- 13
    SELECT COUNT(pname) FROM products;-- 忽略空值 12
    SELECT COUNT(price) FROM products;-- 13

    2 查询价格大于200商品的总条数
    SELECT COUNT(*) FROM products WHERE price >200;

    3. 对商品表查询,对所有的金额求和计算
    SELECT SUM(price) FROM products;
    对非数值字段求和结果为0
    SELECT SUM(pname) FROM products;

    4.对商品表查询,对所有的金额计算平均值
    SELECT AVG(price) FROM products;

    5. 统计出商品表中价钱的最大与最小值
    SELECT MAX(price),MIN(price) FROM products;
    SELECT MAX(price)最大值,MIN(price)最小值 FROM products;

    SELECT * FROM products;

    分组查询语句:
    select 被分组的字段 from 表名 group by 字段 [having 字段]
    注意:
    被分组的字段,一定要写在select后面

    需求:
    根据商品名称相同,对数据进行分组,对每组数据进行求和

    SELECT pname,SUM(price) FROM products GROUP BY pname;

    -- 需求:对分组求和的结果进行过滤,只显示求和结果大于1000的商品
    /*
    where:只能在查询的过程中进行过滤,不能对结果过滤
    having:对分组数据的查询结果,再次进行条件过滤
    */
    -- 先查询出价格大于1000的商品,对大于1000的商品进行分组求和
    SELECT pname,SUM(price) s FROM products WHERE price > 1000 GROUP BY pname;

    SELECT pname,SUM(price) s FROM products GROUP BY pname
    HAVING s>1000;

    SELECT pname,SUM(price) s FROM products GROUP BY pname
    HAVING SUM(price)>1000;


    分页查询
    可以使用关键字 limit m,n
    m:可以变化页码1,2,3,4
    n:固定不变的分页数(每页5条)
    数据库的数据是从0开始

    -- 只要前5条数据
    SELECT * FROM products LIMIT 5;

    -- 要0开始到5结束的数据(第一页的数据)
    -- 从0开始要5个数据
    SELECT * FROM products LIMIT 0,5;

    -- 要6开始到10结束的数据(第一页的数据)
    -- 从6开始要5个数据
    SELECT * FROM products LIMIT 5,5;

    -- 要11开始到15结束的数据(第一页的数据)
    -- 从10开始要5个数据
    SELECT * FROM products LIMIT 10,5;

  • 相关阅读:
    Linux sort命令使用方法
    Linux awk命令使用方法
    Linux sed命令使用方法
    Python调用外部系统命令
    [ Python入门教程 ] Python正则表达式与re模块介绍
    [ Python入门教程 ] python异常处理方法
    Python操作远程服务器paramiko模块介绍
    Hibernate的应用及注解开发
    JQuery Validate插件与实现
    Struts2的核心——拦截器
  • 原文地址:https://www.cnblogs.com/caigq/p/7049194.html
Copyright © 2011-2022 走看看