zoukankan      html  css  js  c++  java
  • ##Mysql数据库DQL查询工具的使用

    在开始进行查询工具的学习之前我们需要做一些准备工作,也把我们之前的只是稳固下:

    1,新建数据库day03

      语法:CREATE DATABASE 数据库名;

    2,展示数据库

      语法:SHOW DATABASES;

    3,展示当前新建数据库

      语法:SHOW CREATE DATABASE 数据库名;

    4,查询数据库

      语法:SELECT DATABASE();

    5,换库

      语法:USE 数据库名;

    CREATE DATABASE day03;
    #展示数据库
    SHOW DATABASES;
    #展示当前数据库
    SHOW CREATE DATABASE day03;
    #删除数据库
    DROP DATABASE day03;
    #查询数据库
    SELECT DATABASE();
    #换库
    USE day03;

    6,新建数据表product(商品)

      语法:CREATE TABLE product();

    7,添加数据:

      语法:INSERT INTO product(pid,pname,price,category_id)VALUES();

    8,查询表结构

      语法:DESC product;

    #新建数据表product
    CREATE TABLE product(
        #商品序号
        pid INT PRIMARY KEY,
        #商品名称
        pname VARCHAR(20),
        #商品价格
        price DOUBLE,
        #商品分类
        category_id VARCHAR(60)
    );
    #查询表结构
    DESC product;
    #添加数据
    INSERT INTO product(pid,pname,price,category_id)VALUES(1,'劲霸男装',1314,'服装'),
    (2,'红蜻蜓皮鞋',320,'服装'),
    (3,'鳄鱼鞋业',2313,'服装'),
    (4,'香奈儿',521,'化妆品'),
    (5,'防晒喷剂',34,'化妆品'),
    (6,'曼秀雷敦',220,'化妆品'),
    (7,'干红',342,'饮品'),
    (8,'五粮液',120,'饮品'),
    (9,'醇啤酒',4,'饮品'),
    (10,'叶麦片',45,'谷物'),
    (11,'小米加面',4,'谷物'),
    (12,'红豆',10,'谷物'),
    (13,'黑厚学',20,'书籍'),
    (14,'儿诗三百首',15,'书籍'),
    (15,'童话大全',35,'书籍'),
    (16,'华为P30',4999,'手机'),
    (17,'苹果P8s',7800,'手机'),
    (18,'三星A8s',3299,'手机'),
    (19,'健身跑步机',12000,'健身'),
    (20,'杠铃',45,NULL);
    #如果我已经添加完数据,但是我又想添加
    INSERT INTO product(pid,pname,price,category_id)VALUES(21,'泳镜',67,'健身');
    #查询表数据
    SELECT*FROM product;

    到这一步的时候,我们现在基本上准备工作就做好了,下面我们开始查询

    一:简单查询:

    1,1查询多字段的表

      语法:SELECT 字段名,字段名FROM 表名;

    1,2查询所有商品的列表

      语法:SELECT 字段名,字段名,字段名,字段名 FROM 表名;  此方法不推荐使用:效率低

          SELECT *FROM product;

    1,3查询商品价格并过滤重复  关键字:Distinct

      语法:Select Distinct 字段名 From 表名;

         Select Distinct 字段名,字段名。 From 表名;

    1.4g给表起别名

      语法:Select * From 表名 AS 名字;(AS可以省略不写)

    1.5给字段起别名

      语法:Select 字段名  新名字,字段名 新名字 From 表名;(如果新名字you空格记得要用单引号或者双引号引起来)

    1.6进行数据运算

      语法:Select(运算);

    1.7查询进行运算之后的数据表

      语法:Select  字段名,字段名+1000 From 表名;

    #查询商品的价格和商品名
    SELECT pname,price FROM product; 
    #查询商品表所有列的信息
    SELECT pid,pname,price,category_id FROM product;
    SELECT *FROM product;
    #查询商品价格列,过滤重复的部分
    SELECT price FROM product;
    SELECT DISTINCT price FROM product;
    SELECT DISTINCT pid,pname,price,category_id FROM product;
    #给表起别名
    SELECT *FROM product AS p;
    SELECT *FROM product p;
    #给字段起别名
    SELECT pname 商品名称,price 商品价格 FROM product;
    SELECT pname 商品名称,price '商品价格 涨价' FROM product;
    #查询语句中可以直接进行数据运算
    SELECT(2*23);
    #查询商品名称和商品价格涨价后的价格
    SELECT pname,price+1000 FROM product;

    二:条件查询

    2,1比较运算符

      基本运算符   <   >  <=  >=  <>(不等于)  !=

      表示查询区间    between   and    >=&&<=

      表示多个条件    in(。。。)  例子:in(10,20)  10||20

      表示空的     is null

    #查询数据库表
    SELECT *FROM product;
    #商品名称为香奈儿的商品信息
    SELECT *FROM product WHERE pname='香奈儿';
    #查询价格为12000的商品
    SELECT *FROM product WHERE price=12000;
    #查询商品价格不为12000的商品
    SELECT *FROM product WHERE price<>12000;
    SELECT * FROM product WHERE price !=12000;
    #查询商品价格大于200的商品
    SELECT *FROM product WHERE price>200;
    #查询价格再10-500之间的商品
    SELECT * FROM product WHERE price BETWEEN 10 AND 500;
    SELECT *FROM product WHERE price>=10 AND price<=1000;
    SELECT *FROM product WHERE price>5&&price<=50;
    #查询价格是10或者45的商品
    SELECT *FROM product WHERE price IN(10,45);
    SELECT *FROM product WHERE price=10 OR price=45;

    2,2模糊查询  使用关键字:like

      多个任意字符%

      一个任意字符_

    #查询商品名称以鳄鱼开头的商品
    SELECT *FROM product WHERE pname LIKE '%鱼%';
    SELECT *FROM product WHERE pname LIKE'__';
    SELECT *FROM product WHERE pname LIKE'____';

    2,3逻辑运算符

      与  and  &&

      或  or    ||

      非  !    not

    #商品没有分类的商品
    SELECT *FROM product WHERE category_id IS NULL;
    SELECT *FROM product WHERE category_id IS NOT NULL;
    SELECT *FROM product WHERE NOT(category_id IS NULL);

    三:聚合查询:

    3,1查询的结果是进行排序 ASC是升序 DESC是降序

      语法:select *from 表名 order by 字段名 排序方法;

    3,2显示价格 去掉重复的价格 降序

      语法:SELECT DISTINCT 字段名FROM 表明ORDER BY 字段名 ASC;

            SELECT DISTINCT 字段名FROM 表明ORDER BY 字段名 DESC;

    3,3再分类的降序

      语法:SELECT *FROM 表名ORDER BY 字段名 DESC;

    3.4对某列的数据进行查询 结果是一个单一的直,会忽略null的直

    3.5count统计指定列不为null行数

    3.6sum指定列的数值和,如果指定的列不是数值类型,结果为0

    3.7max指定列的最大直, 如果指定的列是字符串类型,那么结果为采用字符串运算

    3.8min 小

    3.9avg 平均值,如果指定的列不是数值类型, 那么计算结果为0

    /*
    查询的结果是进行排序 ASC是升序    DESC是降序
    语法:select *from 表名 order by 字段名 排序方法;
    */
    SELECT *FROM product ORDER BY price ASC;
    SELECT *FROM product ORDER BY price;
    SELECT *FROM product ORDER BY price DESC;
    #显示价格 去掉重复的价格 降序
    SELECT DISTINCT price FROM product ORDER BY price ASC;
    SELECT DISTINCT price FROM product ORDER BY price DESC;
    SELECT *FROM product;
    #再分类的降序
    SELECT *FROM product ORDER BY category_id DESC;
    #查询商品总条数
    SELECT COUNT(*)FROM product;
    SELECT COUNT(pid)FROM product;
    SELECT COUNT(pname)FROM product;
    SELECT COUNT(price)FROM product;
    SELECT COUNT(category_id)FROM product;
    #查询价格大于50元的商品总数
    SELECT COUNT(*)FROM product WHERE price>50;
    #查询商品的总价格
    SELECT SUM(price)FROM product;
    #查询分类为服装的所有商品价格之和
    SELECT SUM(price)FROM product WHERE category_id='服装';
    #查询商品的平均值
    SELECT AVG(price)FROM product;
    SELECT AVG(price)FROM product WHERE category_id='化妆品';
    #查询商品价格中最大的价格和最小的价格
    SELECT MAX(price),MIN(price)FROM product;
    SELECT MAX(price),MIN(price)FROM product WHERE category_id="饮品";
    SELECT *FROM product;
    #sum avg如果指定的类型不是数值类型那么计算结果为0
    SELECT SUM(pname)FROM product;
    SELECT AVG(pid)FROM product;

    四:分组查询  重重之重  关键字:Group By   Having

    含义:select被分组的字段,求和,平均值,个数,最大,最小。from表名[where条件]grop by 被分组的字段

    4,1按商品的类别进行分组,统计哥分类商品的个数

      语法:SELECT 字段名,COUNT(*)FROM 表名GROUP BY 字段名;

    4,2按商品的类别进行分组,统计各个分类商品的平均价格

      语法:SELECT 字段名,AVG(字段名)FROM 表名GROUP BY 字段名;

    4,3先按商品的类别分组,统计各个分组商品的个数,只查询每组商品大于200的商品

      语法:SELECT 字段名,COUNT(字段名)FROM 表名WHERE 字段名>200 GROUP BY 字段名;

    4,4先按商品的类别分组,统计各个分组商品的个数,只显示统计个数等于三的信息

      语法:SELECT 字段名,COUNT(*)FROM 表名GROUP BY 字段名HAVING COUNT(*)=3;

    #按商品的类别进行分组,统计哥分类商品的个数
    SELECT category_id,COUNT(*)FROM product GROUP BY category_id;
    #按商品的类别进行分组,统计各个分类商品的平均价格
    SELECT category_id,AVG(price)FROM product GROUP BY category_id;
    #where用于分组钱进行条件guolv
    #having用于分组后,对分完组的数据进行过滤
    #先按商品的类别分组,统计各个分组商品的个数,只查询每组商品大于200的商品
    SELECT category_id,COUNT(price)FROM product WHERE price>200 GROUP BY category_id ;
    #先按商品的类别分组,统计各个分组商品的个数,只显示统计个数等于三的信息
    SELECT category_id,COUNT(*)FROM product GROUP BY category_id HAVING COUNT(*)=3;
  • 相关阅读:
    工具类-vim在shell中卡死的情况
    tomcat日志分类
    逻辑运算
    牛客练习赛29 F 算式子
    牛客练习赛29 B
    查询
    hdu 5984
    zoj 4057
    zoj 4056
    zoj 4054
  • 原文地址:https://www.cnblogs.com/liurui-bk517/p/10981819.html
Copyright © 2011-2022 走看看