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;
  • 相关阅读:
    poj 2411 Mondriaan's Dream 骨牌铺放 状压dp
    zoj 3471 Most Powerful (有向图)最大生成树 状压dp
    poj 2280 Islands and Bridges 哈密尔顿路 状压dp
    hdu 3001 Travelling 经过所有点(最多两次)的最短路径 三进制状压dp
    poj 3311 Hie with the Pie 经过所有点(可重)的最短路径 floyd + 状压dp
    poj 1185 炮兵阵地 状压dp
    poj 3254 Corn Fields 状压dp入门
    loj 6278 6279 数列分块入门 2 3
    VIM记事——大小写转换
    DKIM支持样本上传做检测的网站
  • 原文地址:https://www.cnblogs.com/liurui-bk517/p/10981819.html
Copyright © 2011-2022 走看看