Mysql的DQL查询操作全面分析讲解

目录
  • DQL简介
  • 具体操作
    • 数据准备
    • 简单查询
    • 运算符
    • 条件查询
    • 排序查询
    • 聚合查询
    • null值的处理
    • 分组查询
    • 分页查询
    • insert into select语句
  • 总结

DQL简介

概念:DQL(data query language)数据查询语言 select操作

排序规则:

- select 表达式1|字段,.... - from 表名 where 条件 - group by 列名 - having 条件 - order by 列名 asc|desc - limit 位置,数量

语法结构:

SELECT [ALL | DISTINCT] ALL表示查询出所有的内容 DISTINCT 去重
            {* | 表名.* | 表名.字段名[ AS 别名][,...]} 指定查询出的字段的
        FROM
            表名[AS 别名][,表1... AS 别名]
        [INNER | [LEFT | RIGHT] [OUTER] JOIN 另一张表名 [AS 别名] ON 关联条件]
        [WHERE 条件]
        [GROUP BY 分组字段[,...]] 
        [HAVING 给分组后的数据进行条件筛选]
        [ORDER BY 排序字段[,...]]
        [LIMIT [startIndex,]pageSize]

具体操作

数据准备

create database if not exists test;
use test;
create table if not exists data(
id tinyint primary key auto_increment,
price double NOT null,
name varchar(20) not null,
type varchar(20) not null)
;
insert into data values
(null,900,'洗衣机','b'),
(null,1900,'冰箱','b'),
(null,2900,'空调','b'),
(null,3900,'电视','b'),
(null,150,'衣服','c'),
(null,180,'裤子','c'),
(null,200,'鞋子','c'),
(null,188,'洗面奶','a'),
(null,188,'洗发水','a'),
(null,199,'洗衣液','a'),
(null,88,'沐浴露','a'),
(null,5,'泡面','d'),
(null,15,'饼干','d'),
(null,30,'咖啡','d');

简单查询

select * from data;
select name,price from data;
select * from data as d;
select * from data d;
select d.name,d.price from data d;
select  distinct price from data;
select name,price +100 newprice from data;

运算符

算术运算符

select name,price *1.5 newprice from data;

条件查询

select * from data where name='洗衣机';
select * from data where  !(price>100);
select * from data where price between 200 and 1000;
select * from data where price in(188,900);
-- 等于下面两句
select * from data where price = 188 or price =900;
select * from data where price = 188 || price =900;
select * from data where name like '%衣%';
select * from data where name like '衣%';
select * from data where name like '_衣%';
select * from data where id is null;

注释:当有NULL作为比较大小的对象时,最大值和最小值均为null

排序查询

select * from data order by price;
select * from data order by price desc;
select distinct price from data order by price desc;
select * from data order by price,id;

聚合查询

select count(*) from data;
-- 不全为空的行数
select count(id) from data;
-- 通过主键值查询行数
select count(*) from data where price<200;
select sum(price) from data where type='A';
select max(id) from data;
select min(price) from data;
select max(price) max_price,min(price) min_price from data;
select avg(price) from data where type='c';

null值的处理

分组查询

select sum(price) from data group by type;
select type,count(id) from data group by type;

条件筛选

select type,count(id) count from data group by type having count=4 order by type;

分页查询

分页显示

select * from data limit 5;
-- 从第四条开始依次向后显示五条
select * from data limit 3,5;

insert into select语句

create table data2(
name varchar(10),
price double);
insert into data2 select name,price from data;
select * from data2;
create table data3(
type varchar(10),
num int
);
insert into data3 select type,count(*) from data group by type order by count(*);
select * from data3;

总结

到此这篇关于Mysql的DQL查询操作全面分析讲解的文章就介绍到这了,更多相关Mysql DQL查询内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • MySQL的 DDL和DML和DQL的基本语法详解

    目录 一.DDL(数据定义语言) 二.DML(数据操作语言) 三.DQL(数据查询语言) 四.聚合函数 前言 SQL语句,即结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询.更新和管理关系数据库系统,同时也是数据库脚本文件的扩展名. SQL标准规定的SQL语句分为:DDL(Data Define Language 数据定义语言).  DML(Data Manipulation Language 数

  • MySQL数据库操作DQL正则表达式

    前言: 正则表达式(regular expression)描述了一种字符串匹配的规则,正则表达式本身就是一个字符串,使用这个字符串来描述.用来定义匹配规则,匹配一系列符合某个句法规则的字符串.在开发中,正则表达式通常被用来检索.替换那些符合某个规则的文本. MySQL通过REGEXP关键字支持正则表达式进行字符串匹配. -- ^ 在字符串开始处进行匹配 SELECT 'abc' REGEXP '^a'; -- 1 -- $ 在字符串末尾开始匹配 SELECT 'abc' REGEXP 'a$';

  • mysql语法之DQL操作详解

    目录 简单查询 运算符查询 排序查询 聚合查询 分组查询 分页查询 一张表查询结果插入到另一张表 SQL语句分析 DQL小练习1 DQL小练习2 正则表达式 总结 DQL(Data Query Language),数据查询语言,主要是用来查询数据的,这也是SQL中最重要的部分! 简单查询 #DQL操作之基本查询 #创建数据库 CREATE DATABASE IF NOT EXISTS mydb2; #使用数据库 USE mydb2; #创建表 CREATE TABLE IF NOT EXISTS

  • MySQL 使用DQL命令查询数据的实现方法

    本篇文章博主将带大家一起学习MySQL中常用的数据查询语言. DQL(Data Query Language 数据查询语言) SELECT 语法 SELECT [ALL | DISTINCT] { * | table.* | [table.field1 [as alias1][,table.field2] [as alias2][,...]]} FROM table_name [as table_alias] [left | out | inner join table_name2] #联合查询

  • Mysql学习之数据库检索语句DQL大全小白篇

    目录 1.简单检索数据 2.排序检索数据 2.1.基本语法 2.2.指定排序方向 3.检索过滤数据 3.1使用简单where子句 3.2组合where子句 3.3使用通配符 4.使用正则表达式检索数据 5.检索计算字段 5.1使用拼接字段 5.2使用别名 5.3执行算数计算 6.使用函数检索数据 6.1常用文本处理函数: 6.2日期和时间处理函数: 6.3数值处理函数: 6.4聚集函数: 7.分组检索数据 7.1.简单分组 7.2过滤分组: 8.使用子查询检索数据 8.1子查询简介 8.2各种子

  • Mysql的DQL查询操作全面分析讲解

    目录 DQL简介 具体操作 数据准备 简单查询 运算符 条件查询 排序查询 聚合查询 null值的处理 分组查询 分页查询 insert into select语句 总结 DQL简介 概念:DQL(data query language)数据查询语言 select操作 排序规则: - select 表达式1|字段,.... - from 表名 where 条件 - group by 列名 - having 条件 - order by 列名 asc|desc - limit 位置,数量 语法结构:

  • MySQL单表查询操作实例详解【语法、约束、分组、聚合、过滤、排序等】

    本文实例讲述了MySQL单表查询操作.分享给大家供大家参考,具体如下: 语法 一.单表查询的语法 SELECT 字段1,字段2... FROM 表名                   WHERE 条件                   GROUP BY field                   HAVING 筛选                   ORDER BY field                   LIMIT 限制条数 二.关键字的执行优先级(重点) 重点中的重点:关键

  • MySQL三表联合查询操作举例

    目录 一.题目概述 二.查询思路 三.错误总结 附:sql 三个表联合查询(三表左联查询) 总结 一.题目概述 给定三张表(学生表.科目表.成绩表),查出各科成绩最高的学生的信息(学号.姓名.科目名称.成绩).三张表下所示. 二.查询思路 1.查询出各科的最高成绩 select max(s.`Score`) as MaxScore from score s group by s.`SubjectId` 2.查询出各科的最高成绩及对应的科目和学生编号(关键步骤) 此处通过子查询完成.根据步骤1中查

  • mysql多表联合查询操作实例分析

    本文实例讲述了mysql多表联合查询操作.分享给大家供大家参考,具体如下: MySQL多表联合查询是MySQL数据库的一种查询方式,下面就为您介绍MySQL多表联合查询的语法,供您参考学习之用. MySQL多表联合查询语法: 复制代码 代码如下: SELECT * FROM 插入表 LEFT JOIN 主表 ON t1.lvid=t2.lv_id select * from mytable,title where 表名1.name=表名2.writer ; mysql版本大于4.0,使用UNIO

  • mysql慢查询操作实例分析【开启、测试、确认等】

    本文实例讲述了mysql慢查询操作.分享给大家供大家参考,具体如下: mysql有些sql会执行很慢,有可能造成服务器负载飙升 首先查询 确定影响负载的是mysql ,使用top命令,ps命令等 其次,进入MySQL,使用show full processlist查询执行中的sql语句,看看问题,使用explain 命令 查看状态 最后找出sql语句杀死或者优化 centos7上面安装mariadb服务 yum -y install mariadb-server mariadb-devel 开启

  • python针对Oracle常见查询操作实例分析

    本文实例讲述了python针对Oracle常见查询操作.分享给大家供大家参考,具体如下: 1.子查询(难): 当进行查询的时候,发现需要的数据信息不明确,需要先通过另一个查询得到, 此查询称为子查询: 执行顺序:先执行子查询得到结果以后返回给主查询 组成部分: 1).主查询部分 2).子查询部分 [注意事项]: 子查询一定需要被定义/包裹在小括号内部,可以认为是显示的提升了代码执行的优先级 需求1: 查询薪资比Abel的高的有谁? 分析: ①.先查询出Abel的薪资是多少? ②.将过滤条件定义为

  • tp5(thinkPHP5框架)时间查询操作实例分析

    本文实例讲述了tp5(thinkPHP5框架)时间查询操作.分享给大家供大家参考,具体如下: 在项目中 可能会遇到 跨月份进行查询 比如在 当输入201809 会获取当月的开始时间$start_month 和 结束时间 $end_month 会查询2018年9月份的数据 但是当其中的一个数据是在201809到201810 ,数据库的字段是 start_time end_time 这时候 Db::name("表名")->where('start_time','<= time'

  • tp5.1框架数据库子查询操作实例分析

    本文实例讲述了tp5.1框架数据库子查询操作.分享给大家供大家参考,具体如下: 首先构造子查询SQL,可以使用下面三种的方式来构建子查询. 使用fetchSql方法 fetchSql方法表示不进行查询而只是返回构建的SQL语句,并且不仅仅支持select,而是支持所有的CURD查询. $subQuery = Db::table('think_user') ->field('id,name') ->where('id', '>', 10) ->fetchSql(true) ->

  • node.js中 mysql 增删改查操作及async,await处理实例分析

    本文实例讲述了node.js中 mysql 增删改查操作及async,await处理.分享给大家供大家参考,具体如下: 要对mysql进行操作,我们需要安装一个mysql的库. 一.安装mysql库 npm install mysql --save 二.对mysql进行简单查询操作 const mysql = require('mysql'); //创建数据库连接 let conn = mysql.createConnection({ //主机地址 host: '127.0.0.1', //用户

  • mysql详细分析讲解子查询的使用

    出现在其他语句中的 select 语句,称为子查询或内查询:外部的查询语句,称为主查询或 外查询 . -- 子查询 -- 查询的条件来自于另一查询的结果 SELECT * FROM t_user WHERE number=(SELECT number FROM t_user WHERE NAME='张三') 当然子查询也有类型,分为以下几种 : 标量子查询(结果集只有一行一列) 列子查询(结果集只有一列多行) 行子查询(结果集有一行多列)(较少) 表子查询(结果集一般为多行多列) 这里我们以新建

随机推荐