MYSQL数据库基本操作-DQL-基本查询

这篇具有很好参考价值的文章主要介绍了MYSQL数据库基本操作-DQL-基本查询。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一.概念

数据库管理系统一个重要功能就是数据查询。数据查询不应是简单返回数据库中存储的数据,还应该根据需要对数据进行筛选以及确定数据以什么样的格式显示。

MySQL提供了功能强大,灵活的语句来实现这些操作。

MySQL数据库使用select语句来查询数据。

二:语法

MYSQL数据库基本操作-DQL-基本查询,数据库,mysql

 三:数据准备

MYSQL数据库基本操作-DQL-基本查询,数据库,mysql

四.简单查询 

MYSQL数据库基本操作-DQL-基本查询,数据库,mysql

五.运算符

1.简介

数据库中的表结构确立后,表中的数据代表的意义就已经确定。通过MySQL运算符进行运算,就可以获取到表结构以外的另一种数据。

例如。学生表中存在一个birth字段,这个字段表示学生的出生年份。而运用MySQL的算术运算符用当前的年份减学生出生的年份,那么得到的就是这个学生的实际年龄数据。

2.类型

(1)算术运算符

MYSQL数据库基本操作-DQL-基本查询,数据库,mysql

(2)比较运算符

MYSQL数据库基本操作-DQL-基本查询,数据库,mysql

(3)逻辑运算符

MYSQL数据库基本操作-DQL-基本查询,数据库,mysql

(4)位运算符

MYSQL数据库基本操作-DQL-基本查询,数据库,mysql

位运算符是在二进制数上进行计算的运算符。位运算符会先将操作数变成二进制数,进行位运算。然后再将计算结果从二进制数变回十进制数。

六.运算符操作

1.算术运算符

MYSQL数据库基本操作-DQL-基本查询,数据库,mysql

2.条件查询

MYSQL数据库基本操作-DQL-基本查询,数据库,mysql

MYSQL数据库基本操作-DQL-基本查询,数据库,mysql

%用于表示任意字符;'_'匹配单个字符;

MYSQL数据库基本操作-DQL-基本查询,数据库,mysql

如果求最小值时,有个值为null,则不会进行比较,结果直接为null;

如果求最大值时,有个值为null,则不会进行比较,结果直接为null;

3.位运算符

位运算符是在二进制数上进行计算的运算符。位运算符会先将操作数变成二进制数,进行位运算。然后再将计算结果从二进制数变回十进制数。

MYSQL数据库基本操作-DQL-基本查询,数据库,mysql

(1)位与MYSQL数据库基本操作-DQL-基本查询,数据库,mysql

每一位相比较,都为1,结果才为1

(2)位或MYSQL数据库基本操作-DQL-基本查询,数据库,mysql

 每一位相比较,只要有一个为1,结果就是1(结果为0111,再转化为十进制:7)

(3)位异或MYSQL数据库基本操作-DQL-基本查询,数据库,mysql

每一位相比较,相同为0,不同为1(结果是0110,转化为十进制:6)

MYSQL数据库基本操作-DQL-基本查询,数据库,mysql向右移一位,补零(转化为十进制:1)

(4) MYSQL数据库基本操作-DQL-基本查询,数据库,mysql向左移一位,补零(转化为十进制:6)

(5)MYSQL数据库基本操作-DQL-基本查询,数据库,mysql0变成1,1变成0

七:排序查询

1.介绍

如果我们需要对读取的数据进行排序,就可以使用MySQL的 order by 子句来设定你想按哪个字段哪种方式来进行排序,再返回搜索结果

2.语法

MYSQL数据库基本操作-DQL-基本查询,数据库,mysql

MYSQL数据库基本操作-DQL-基本查询,数据库,mysql

3.特点

(1)asc代表升序,desc代表降序,如果不写默认升序

(2)order by 用于子句中可以支持单个字段,多个字段,表达式,函数,别名

(3)order by 子句,放在查询语句的最后面,LIMIT子句除外

八:聚合查询

1.简介

之前我们做的查询都是横向查询,它们都是根据条件一行一行的进行判断,而使用聚合函数查询是纵向查询,它是对一列的值进行计算,然后返回一个单一的值;另外聚合函数会忽略空值。

2.函数

MYSQL数据库基本操作-DQL-基本查询,数据库,mysql

-- 1.查询商品的总个数
select count(pid) from product;
select count(*) from product;

-- 2.查询价格大于200商品的总个数
select count(pid) from product where price > 200;

-- 3.查询分类为'c001'的所有商品总和
select sum(price) from product where category_id = 'c001';

-- 4.查询商品的最大价格
select max(price) from product;

-- 5.查询商品的最小价格
select min(price) from product;

-- 6.查询分类为'c002'所有商品的平均价格
select avg(price) from product where category_id = 'c002';

3.聚合查询对null值的处理

(1)count函数对null值的处理

如果count函数的参数为星号(*)【count(1)也代表全部,与count(*)相同】,则统计所有记录的个数。而如果参数为某字段,不统计含null值的记录个数

(2)sum和avg函数对null值的处理

这两个函数忽略null值的存在,就好像该条记录不存在一样

(3)max和min函数对null值的处理

max和min两个函数同样忽略null值的存在

九:分组查询

1.简介

分组查询是指使用 group by 子句对查询信息进行分组(分组可以根据一个字段,也可以根据多个字段,如果是一个字段,则该字段相同就会分到一组,如果是对公字段,则多个字段都相同才能分到同一组

2.操作:统计各个分类商品的个数

MYSQL数据库基本操作-DQL-基本查询,数据库,mysql

如果要进行分组的话,则select字句之后,只能出现分组的字段和统计函数,其他的字段不能出现(分组之后,selete的后面只能写分组字段和聚合函数)

MYSQL数据库基本操作-DQL-基本查询,数据库,mysql

由图可得,先找到表,再group by 分成几个想要的表,再进行count,再筛选想要的字段表示出来 

3.分组之后的条件筛选—having

(1)分组之后对统计结果进行筛选的话必须使用having,不能使用where

(2)where子句用来筛选from子句中指定的操作所产生的行

(3)group by 子句用来分组where子句的输出

(4) having子句用来从分组的结果中筛选行

(selete-->from-->where-->group by-->having)

MYSQL数据库基本操作-DQL-基本查询,数据库,mysqlMYSQL数据库基本操作-DQL-基本查询,数据库,mysql

十:分页查询-limit

1.简介

分月查询再项目开发中常见,由于数据量很大,显示屏长度有限,因此对数据需要采取分页显示方式,例如数据共有30条,每页显示5条,第一页显示1-5条,第二页显示6-10条

2.操作

MYSQL数据库基本操作-DQL-基本查询,数据库,mysql

十一:insert into select语句

1.简介:将一张表的数据导入到另一张表中,可以使用insert into select语句

2.格式

MYSQL数据库基本操作-DQL-基本查询,数据库,mysql

十二:正则表达式--regexp

1.介绍

正则表达式描述了一种字符串匹配的规则,正则表达式本身就是一个字符串,使用这个字符串来描述,用来匹配规则,匹配一系列符合某个语法规则的字符串,在开发中,正则表达式通常被用来检索,替换那些符合某个规则的文本。MYSQL通过regexp关键字支持正则表达式进行字符串匹配。

2.格式(符合条件则匹配,结果为1,否则为0)

MYSQL数据库基本操作-DQL-基本查询,数据库,mysql

MYSQL数据库基本操作-DQL-基本查询,数据库,mysql

3.操作

use  mydb1;
-- 正则表达式


-- ^在字符串开始处进行匹配
-- 从product表中筛选出pname(商品名称)是以海开头的

-- $在字符串末尾进行匹配
select 'abc' regexp 'a$';   -- 0
select 'abc' regexp 'c$';   -- 1
select * from product where pname regexp '水$';
-- 从product表中筛选出pname(商品名称)是以水结尾的

-- .匹配任意单个字符(除了换行符之外的任意字符)
select 'abc' regexp '.b';   -- 1
select 'abc' regexp '.c';   -- 1
select 'abc' regexp 'a.';   -- 1

-- [...]匹配括号内的任意单个字符
select 'abc' regexp '[xyz]';   -- 0
-- 任意字符是否在前面出现,未出现过为0,xyz未在abc中出现过
select 'abc' regexp '[xaz]';   -- 1

-- [^...]注意^只有在[]内才是取反的意思,在别的地方都是表示开始处匹配
select 'abc' regexp '[^xyz]';   -- 1
-- 任意字符是否在前面出现,未出现过为1,xyz未在abc中出现过
select 'abc' regexp '[^axy]';   -- 0
select 'abc' regexp '[^a]';   -- 1
-- 除了a,还有其他字符,也算

-- a*匹配0个或多个a,包括字符串。可以作为占位字符使用,有没有指定字符都可以匹配到数据
select 'stab' regexp '.ta*b';   -- 1
select 'staaab' regexp '.ta*b'; -- 1
select 'stb' regexp '.ta*b';    -- 1
select '' regexp 'a*';					-- 1

-- a+ 匹配1个或者多个(至少一次),但是不包括空字符串
select 'stab' regexp '.ta+b';  -- 1
select 'stb' regexp '.ta+b';   -- 0

-- a? 匹配0个或者1个a
select 'stb' regexp '.ta?b';   -- 1
select 'stab' regexp '.ta?b';  -- 1
select 'staab' regexp '.ta?b'; -- 0

-- a1|a2 匹配a1或a2都行
select 'a' regexp 'a|b';    -- 1
select 'b' regexp 'a|b';    -- 1
select 'b' regexp '^(a|b)'; -- 1
select 'a' regexp '^(a|b)'; -- 1
select 'c' regexp '^(a|b)'; -- 0
-- 匹配是否以a或b开头

-- a{m} 匹配m个a
select 'auuuuc' regexp 'au{4}c';  -- 1
select 'auuuuc' regexp 'au{3}c';  -- 0

-- a{m,} 匹配m个或者更多个a(至少m个)
select 'auuuuc' regexp 'au{3,}c';  -- 1
select 'auuuuc' regexp 'au{4,}c';  -- 1
select 'auuuuc' regexp 'au{5,}c';  -- 0

-- a{m,n} 匹配m到n个a,包含m和n
select 'auuuuc' regexp 'au{3,5}c';   -- 1
select 'auuuuc' regexp 'au{4,5}c';   -- 1
select 'auuuuc' regexp 'au{5,10}c';  -- 0

-- (abc) abc作为一个序列匹配,不用括号括起来都是用单个字符去匹配,如果要把多个字符作为一个整体去匹配就需要用到括号,所以括号适合上面的所有情况
select 'xababy' regexp 'x(abab)y';    -- 1
select 'xababy' regexp 'x(ab)*y';     -- 1
-- 匹配0个或多个ab
select 'xababy' regexp 'x(ab){1,2}y'; -- 1
-- 匹配1到2个ab
select 'xababy' regexp 'x(ab){3}y';   -- 0

其他注意事项: 

(1)书写顺序:select-->from-->where-->group by-->having-->order by-->limit 

(2)执行顺序:from-->where-->group by-->count(*)-->having-->select-->order by-->limit

(3)ifnull(comm,0)   如果comm的值为null,则当作0,不为null,则还是原来的值 文章来源地址https://www.toymoban.com/news/detail-822570.html

到了这里,关于MYSQL数据库基本操作-DQL-基本查询的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Mysql】数据库基础与基本操作

    🌇个人主页:平凡的小苏 📚学习格言:命运给你一个低的起点,是想看你精彩的翻盘,而不是让你自甘堕落,脚下的路虽然难走,但我还能走,比起向阳而生,我更想尝试逆风翻盘 。 🛸 Mysql专栏 : Mysql内功修炼基地 家人们更新不易,你们的👍点赞👍和⭐关注⭐真的对我

    2024年02月13日
    浏览(35)
  • MySQL数据库——DML基本操作

    前面我们学习了MySQL——DDL操作,对数据库和表的结构的操作,那么今天我将为大家分享MySQL——DML操作,对表数据的操作。 MySQL DML操作有以下几种: 插入操作(INSERT):用于向数据库中插入新的数据行。可以一次插入单行数据,也可以使用一条SQL语句一次性插入多行数据。

    2024年02月15日
    浏览(47)
  • 1.MySQL数据库的基本操作

    数据库操作过程: 1.用户在客户端输入 SQL 2.客户端会把 SQL 通过网络发送给服务器 3.服务器执行这个 SQL,把结果返回给客户端 4.客户端收到结果,显示到界面上 这里的数据库不是代表一个软件,而是代表一个数据集合。 语法: 大写的表示 [] 是可选项 CHARACTER SET: 指定数

    2024年02月12日
    浏览(43)
  • MySQL 数据库表的基本操作

    在数据库中,数据表是数据库中最重要、最基本的操作对象,是数据存储的基本单位。数据表被定义为列的集合,数据在表中是按照行和列的格式来存储的。每一行代表一条唯一的记录,每一列代表记录中的一个域。 通常在创建表时,应该使用语句USE 数据库名,指定在哪个

    2024年02月12日
    浏览(70)
  • MySQL数据库和表的基本操作

    MySQL是一个客户端服务器结构的程序 主动发送数据的这一方,客户端(client) 被动接受数据的这一方,服务器(server) 客户端给服务器发送的数据叫做: 请求(request) 服务器给客户端发送的数据叫做: 响应(response) 客户端和服务器之间是通过网络进行通信的 服务器是存储数据的主体

    2024年01月19日
    浏览(32)
  • 头歌 MySQL数据库 - 数据库和表的基本操作(一)答案

    第1关:查看表结构与修改表名 编程要求 根据提示,在右侧编辑器补充代码: 把数据表 tb_emp 改名为 jd_emp ; 查看该数据库下数据表的列表; 查看数据表 jd_emp 的 基本结构 。 第2关:修改字段名与字段数据类型 编程要求 根据提示,在右侧编辑器补充代码: 把数据表 tb_emp 的字

    2024年02月01日
    浏览(86)
  • MySQL数据库---库基本操作 以及 表结构的操作(DDL)

    目录 前言 一.数据库的操作 1.1显示当前数据库 1.2创建数据库 1.3使用数据库  1.4删除数据库  二.数据类型 2.1数值类型 2.2字符串类型 2.3日期类型 三.数据表的操作  3.1 创建表结构。  3.2查看数据库中拥有的数据表  3.3查看指定的表结构   3.4修改表结构   3.5删除表结构  

    2024年02月09日
    浏览(52)
  • 【MySQL数据库重点】第二节:MySQL基础知识(基本操作)

    目录 一:数据库的操作 1.显示数据库 2.创建数据库 3.使用数据库 4.删除数据库 二:常用数据类型 1.数值类型:整型和浮点型 2.字符串类型 3.日期类型 三:表的操作 1.查看表结构 2.创建表 3.删除表 1.显示数据库 语法: show databases;  2.创建数据库 (1)简化语法 create database 数

    2024年02月08日
    浏览(42)
  • MySQL 数据库实用指南:测试数据准备、SQL语句规范与基本操作

    欢迎来到小K的MySQL专栏,本节将为大家准备MySQL测试数据、以及带来SQL语句规范、数据库的基本操作的详细讲解 要学习SQL查询语句,首先必须解决一个问题,数据问题。为了方便大家学习阅读我的文章,在这里提供了一个test.sql文件 ✨ 登录MySQL,输入 source xxx/test.sql 导入sql文

    2024年02月08日
    浏览(66)
  • 【MySQL】数据库的增删改查、备份、还原等基本操作

    大写的表示 [] 是可选项 CHARACTER SET: 指定数据库采用的字符集 COLLATE: 指定数据库字符集的校验规则 创建数据库的时候,有两个编码集: 1.数据库编码集——数据库未来存储数据 2.数据库校验集——支持数据库进行字段比较使用的编码,本质也是一种读取数据库中数据采

    2024年02月08日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包