MySQL之数据库基本查询语句

——————·今天距2020年43天·——————

这是ITester软件测试小栈第80次推文

SELECT

基本查询语句

查询单个列

#查询Author表name列的值
select name from Author;

查询多个列

#查询Author表id,name两列的值
select id,name from Author;

查询所有列

#查询Author表所有列的信息
select * from Author;

查询不同的行(distinct去重)

#查询Article表所有作者
select distinct author from Article;

限制查询结果(limit分页)

#查询Article表前3行的文章类型
select type from Article limit 1,3;
select type from Article limit 3;

SELECT

ORDER BY子句

对单个查询列进行排序(order by)

#Article表按aid从低到高查询作者姓名和文章类别
select aid,author,type from Article order by aid;

对多个查询列进行排序(order by a,b:a排序的基础上,b再排序):

#Article表按aid和粉丝数从低到高查询作者姓名和文章类别
select aid,author,type,fans from Article order by aid,fans;

对单个列降序排列(desc降序,从高到低)

#按粉丝数降序排列Article信息
select * from Article order by fans desc;

对多个列降序排列

#按fans降序排列Article信息,再对articles排序
select * from Article order by fans desc,articles;
#以上仅对fans降序,articles仍为升序,articles降序需加desc

select..from..order by ..desc limit..;

#根据文章数降序排列查询前三条Article信息
select * from Article order by articles desc limit 3;

根据字符集进行排序

#如果字符集采用的是 gbk(汉字编码字符集),直接在查询语句后边添加 ORDER BY
select * from Article order by type;#如果字符集采用的是 utf8(万国码),需要先对字段进行转码然后排序
select * from Article order by convert(type using gbk);

SELECT

grop by子句

对条件进行分组排序 

#分别统计coco和vivi的文章数
select au_id,count(*) as '数目' from Article where author='coco' or author='vivi' group by au_id;

分组排序复合查询(having) 

#根据aid统计文章总数大于5的
select au_id,count(*) as '数目' from Article group by au_id having count(*)>5;

with rollup实现在分组统计数据基础上再进行统计

#将Article按author进行分组,再统计每个人的总文章数
select author,sum(articles) as '总文章数' from Article group by author with rollup;

使用 coalesce 来设置一个可以取代 NUll 的名称

#coalesce 语法:select coalesce(a,b,c);
select coalesce(author,'昵称') ,sum(articles) as '总文章数' from Article group by author with rollup;

SELECT

WHERE子句

where单个条件查询 

#查询Python文章类型的QQ交流群号信息
select type,qq_group from Article where type='Python';
#查询粉丝数大于400的Article信息,按降序排列
select * from Article where fans>400 order by fans desc;
#查询粉丝数不是450的Article信息
select * from Article where fans!=450;
select * from Article where fans not in(450);

between ..and..(在什么之间)

#查询粉丝数在400到450之间的Article信息,按文章数降序排列
select * from Article where fans between 400 and 450 order by articles desc;

is null(查询某个列的值为空)

#查询fans为空的Article信息(没有则返回空表)
select * from Article where fans is null;

SELECT

数据过滤

and操作符查询多个条件,每多一个条件就多加一个and

#查询粉丝数为450且文章类型为Python的Article信息
select * from Article where fans=450 and type='Python';

or操作符 查询匹配任一条件的行

#查询粉丝数为300或400的Article信息
select * from Article where fans=300 or fans=400;

and ..or..高级过滤(and计算次序更高,需要用圆括号明确分组操作符)

#查询文章数在10以上并且粉丝数为300或400的Article信息
select * from Article where (fans=300 or fans =400 )and articles>10;

in操作符(值由逗号分隔,括在圆括号中)

#查询粉丝数在400和500的Article信息,降序排列
select * from Article where fans in(400,500) order by fans desc;

not操作符与in操作符结合

#查询粉丝数不是300和400的Article信息,按文章数降序排列
select * from Article where fans not in(300,400) order by articles desc;

SELECT

通配符进行过滤查询

like操作符与百分号(%)通配符

#查询QQ群以6开头的Article信息
select * from Article where qq_group like '6%';
#查询作者名中有o的Article信息,按粉丝数降序排列
select * from Article where author like '%o%' order by fans desc;
#查询aid以2开头、1结尾的Article信息,按文章数降序排列
select * from Article where aid like '2%1' order by articles desc;

like操作符与下划线(_)通配符

#匹配单个字符
select * from Article where type like 'Seleni_m';

SELECT

正则表达式进行过滤查询

regexp正则提取匹配的字符

#查询Type中有SQL的Article信息
select * from Article where type regexp '.SQL';

regexp 正则或(|)

#查询学生粉丝数为300或400的Article信息,按文章数降序排列
select * from Article where fans regexp '300|400' order by articles desc;

regexp 正则和([])

#查询文章类型中e前有L或S的Article信息
select * from Article where type regexp '[SL]e' order by type;

regexp 正则匹配范围[a-b]

#查询文章数为20-25的Article信息
select * from Article where articles regexp '2[0-5]';

regexp 正则匹配特殊字符\\转义(.*@!_等)

#查询姓名中有*的学生信息
select * from Article where type regexp '\\*';

SELECT

使用函数处理数据

concat()函数拼接

#将类型和对应的qq群连接起来,并按类型排序(a-z)
select concat(type,'(',qq_group,')')from Article order by type;

使用列别名

select concat(type,'(',qq_group,')') as '技术交流QQ群' from Article order by type;

upper():将文本转换为大写

#将Article表的文章类型转换为大写TYPE_UPPER,列出type和TYPE_UPPER
select type,upper(type) as TYPE_UPPER from Article order by type;

lower():将文本转换为小写

#将Article表的文章类型转换为小写TYPE_LOWER,列出type和TYPE_LOWER
select type,lower(type) as TYPE_LOWER from Article order by type;

length():返回字符串的长度

#计算Article表的文章类型的字符长度
select type,length(type) as TYPE_LENGTH from Article order by type;

Soundex()函数:匹配所有类似于要检索的字符串

#查询类型类似于APP的Article信息
select * from Article where SOUNDEX(type)=SOUNDEX('App');

Trim()函数去掉字符串左右两边的空格

select concat(TRIM(type),'(',TRIM(qq_group),')')from Article order by type;

执行算术计算

select type,fans,articles,fans/articles as avg_fans from Article order by type desc ;

日期函数

#获取系统当前日期时间 年-月-日 时:分:秒
select sysdate();#获取系统当前日期 年-月-日
select curdate();#获取系统当前时间 时:分:秒
select curtime();#获取给定日期的年份——获取当前系统时间的年份
select year(CURDATE());#获取给定日期的月份——获取当前系统时间的月份
select month(CURDATE());#获取给定日期的天数——获取当前系统时间的天数
select day(CURDATE());#获取当前时间的前一天
select date_add(CURDATE(),INTERVAL -1 day);#获取当前时间的后一天
select date_sub(CURDATE(),INTERVAL -1 day);#查看文章更新时间为2020-01-01 00:00:00的文章类型
select type,update_date from Article where update_date='2020-01-01 00:00:00';#查看文章更新时间为2020-01-01的文章类型
select type,update_date from Article where date(update_date)='2020-01-01';
#查询2019年11月更新的文章(两种写法)
#写法一:between...and 指定匹配的日期范围
select type,update_date from Article where date(update_date) between '2019-11-01' and '2019-11-30';
#写法二:year() and month()指定年份和月份
select type,update_date from Article where year(update_date)=2019 and month(update_date)=11;

数值处理函数

#abs()返回一个数的绝对值
select abs(-5);#cos()返回一个角度的余弦
select cos(30);#sin()返回一个角度的正弦
select sin(60);#tan()返回一个角度的正切
select tan(45);#返回一个数的平方根
select sqrt(4);#返回一个除操作的余数(m,n),除以n的余数
select mod(5,2);#返回圆周率
select pi();#返回一个随机数(小数)
select rand();

聚和函数

#AVG()函数返回列的平均值
#计算平均粉丝数
select avg(fans) as '平均粉丝数' from Article order by type desc ;#COUNT()函数返回某列的行数
#COUNT(*)对表中行的数目进行计数, 不管表列中包含的是空值( NULL)还是非空值
#统计类型总数
select count(*) from Article;#COUNT(column)对特定列中具有值的行进行计数,忽略NULL值
#统计文章数
select count(articles) from Article;#MAX()函数返回某列的最大值
#查询阅读量最多的文章类型
select max(fans) as '受众最大值' from Article;#MIN()函数返回某列的最小值
select min(fans) as '受众最小值' from Article;#SUM()函数返回某列值之和
#统计文章总数
select sum(articles) from Article;

组合聚集函数

#DISTINCT()函数只考虑不同值的平均值
select avg(distinct fans) as '平均粉丝数' from Article order by type desc ;
select avg(fans) as '平均粉丝数' from Article order by type desc ;#组合聚集函数
select count(*) as '总数',
max(articles) as '文章数最大值',
min(articles) as '文章数最小值' ,
avg(fans) as '平均粉丝数'
from Article;

总结:SELECT子句顺序

SELECT:要返回的列或表达式

...

FROM:要检索的数据表

WHERE:行级过滤

...

GROUP BY:分组说明

HAVING:组级过滤

...

ORDER BY:输出时排序

...

LIMIT:要检索的行数

...

附:Author表

Article表

ArticleDetail表

最后是今天的分享:Author、Article、ArticleDetail三张表一键建表SQL语句

ITester软件测试小栈今日分享

获取内容

Author、Article、ArticleDetail三张表一键建表SQL语句

领取方式

微信公众号后台回复:MySQL表

有图有真相

以上

That's  all

下一篇介绍多表查询

敬请期待

ITester软件测试小栈

往期内容宠幸

叮—这有一打让你666的测试终极资料包,请查收!

打开PyCharm永久激活的这两个锦囊,再也不用担心写代码的时候让我付费了!

QQ空间面试题放送,速度教科书式扑街补救offer!

金九银十加薪季,测试题预热一波。

测试面试题集-测试基础理论

测试面试题集-测试用例设计:登录、购物车、QQ收藏表情、转账、充值、提现

测试面试题集-生活物品测试:杯子、伞、钢笔、桌子

Selenium系列文章汇总

30个MySQL数据库常用小技巧,吐血整理

SQL从入门到入魔之初入门

SQL从入门到入魔之数据库基本操作

SQL从入门到入魔之select简单查询

MySQL之数据库基本操作语句

MySQL之创建表以及数据库增删改操作

速看,APP测试之ADB最全指南!

APP测试之Monkey压力测试(一)

APP测试之Monkey压力测试(二)

快来星标 置顶 关注我

后台回复资源取干货

想要获取相关资料和软件 ?

Q群:727998947

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/253419.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

泔水()

欢迎大家观看本人第一张博客 16340218 数据科学与计算机学院 目录 数学干货之不等式 均值不等式幂平均不等式柯西不等式琴生不等式证明不等式的小策略 函数法“暴力”积分法数学归纳法水货-大学感想 一、各类不等式 1.均值不等式 平方平均数 ≥ 算术平均数 ≥ 几何平均数…

【Mysql】mysql数据库的查询语句

单表查询 1、普通查询 &#xff08;1&#xff09;命令&#xff1a;select * from <表名>;//通匹 &#xff08;2&#xff09;命令&#xff1a;select <要查询的字段> from <表名>&#xff1b; 2、去重查询&#xff08;distinct&#xff09; 命令&#xff1a;…

Metasploit超详细安装及使用教程(图文版)

通过本篇文章&#xff0c;我们将会学习以下内容&#xff1a; 1、在Windows上安装Metasploit 2、在Linux和MacOS上安装Metasploit 3、在Kali Linux中使用 Metasploit 4、升级Kali Linux 5、使用虚拟化软件构建渗透测试实验环境 6、配置SSH连接 7、使用SSH连接Kali 8、配…

基于深度学习的高精度汽车自行车检测识别系统(PyTorch+Pyside6+模型)

摘要&#xff1a;基于深度学习的高精度汽车自行车检测识别系统可用于日常生活中检测与定位汽车自行车目标&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的汽车自行车目标检测识别&#xff0c;另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目…

Kotlin笔记(零)简介

百度百科简介 2017年&#xff0c;google公司在官网上宣布Kotlin成为Android的开发语言&#xff0c;使编码效率大增。Kotlin 语言由 JetBrains 公司推出&#xff0c;这是一个面向JVM的新语言 参考资料 官网&#xff1a;https://kotlinlang.org/中文官网&#xff1a;https://w…

【测试基础02】

测试基础02 一、HTML基础二、Python导入三方模块三、安装webgrock驱动四、元素定位(1)、元素定位工具(2)、元素定位方式(3)、XPATH路径(3)、CSS选择器 五、Selenium WebDriver初步应用(1)、基本方法(2)、测试案例1(3)、测试案例2(3)、测试案例3 六、获取元素信息的方法七、fram…

黑马Redis视频教程实战篇(三)

目录 一、优惠券秒杀 1.1 全局唯一ID 1.2 Redis实现全局唯一ID 1.3 添加优惠卷 1.4 实现秒杀下单 1.5 库存超卖问题分析 1.6 代码实现乐观锁解决超卖问题 1.7 优惠券秒杀-一人一单 1.8 集群环境下的并发问题 二、分布式锁 2.1 基本原理和实现方式对比 2.2 Redis分布…

QQ截屏快速获取像素颜色

QQ截屏快速获取像素颜色 qq截屏的快捷键是 CTRL ALT A qq截屏除了截屏 还有个很不错的小功能 获取像素的颜色 是大家都容易忽略的 具体方法很简单 第一步 按下 Ctrl Alt A 快捷键 但是 不要点击鼠标 第二步 移动鼠标 到你想要像素点的颜色 如图所示 按C 即可复制 RGB十进…

计算机如何共享桌面,怎么共享电脑屏幕?

在平时的工作生活中&#xff0c;有的时候我们需要把自己的电脑屏幕共享到另一台电脑上&#xff0c;来方便给同事或者朋友演示一些操作。今天在这里给大家分享2个电脑屏幕共享的方法&#xff0c; 2种电脑屏幕共享的方法 幕享电脑投屏 幕享&#xff0c;英文名叫Letsview&#xff…

超简单友盟分享(微信、QQ)+ 原生微信分享

超简单友盟分享&#xff08;微信、QQ&#xff09; 原生微信分享 友盟分享&#xff08;微信、QQ&#xff09;原生微信分享QQ分享&#xff08;使用Android原生的api跳转QQ&#xff09; 友盟分享&#xff08;微信、QQ&#xff09; 之前写的项目好好的&#xff0c;后来打开就报这个…

手机端 html 怎么分享到朋友圈,【Web前端问题】移动web页面如何实现分享到微信、QQ等分享功能?...

移动web页面(浏览器打开的web应用&#xff0c;非App内置的Web页面)内有分享按钮&#xff0c;点击可分享到朋友圈&#xff0c;微信好友&#xff0c;QQ...... 据说是使用相关插件&#xff0c;求指导&#xff01; 回答&#xff1a; 如果不是app内置web页面,只能使用js的一键分享.具…

QQ空间说说批量删除

怎么批量删除QQ空间说说&#xff1f; 第一步&#xff1a;用电脑打开浏览器登录你的QQ空间 第二步&#xff1a;点击你的说说栏目 第三步&#xff1a;按下电脑的F12键或者点击右上角的菜单一栏&#xff0c;点击开发者工具 第四步&#xff1a;看到右半边屏幕&#xff0c;找到…

Android实现截图分享qq,微信

代码地址如下&#xff1a;http://www.demodashi.com/demo/13292.html 前言 现在很多应用都有截图分享的功能&#xff0c;今天就来讲讲截图分享吧 今天涉及到以下内容&#xff1a; 1. android权限设置及申请 2. 截图分享功能解析 3. 截图分享功能的调用 4. 项目结构图和效…

分享qq报错Only fullscreen opaque activities can request orientation

这两天突然发现了一个项目中分享链接到qq时崩溃但分享到微信却啥事没有的问题&#xff0c;然后连上usb&#xff0c;查看error发现报了这样一个错&#xff1a;Only fullscreen opaque activities can request orientation。然后就在网上搜答案&#xff0c;原来是安卓8才出现的问…

超级便捷精巧绿色的屏幕分享小软件IntelexEMC

摘要&#xff1a;因需求特殊&#xff0c;即需要在关闭QQ、微信或其他通讯软件的情况下进行屏幕分享。于是&#xff0c;整理好思路&#xff0c;开始写一个简易的屏幕分享软件&#xff0c;打了鸡血似的写了两天&#xff0c;突然&#xff0c;在查资料时发现网上有一款名叫InletexE…

Flutter 项目实战 截图分享到微信|QQ|微博 十二

/ 截图功能演示 / / 跨进程通信案例 / 调用三方app进行支付 : 支付宝支付、微信支付、银行app支付 ........ 调用三方app进行分享 : 微信分享、QQ分享、微博分享、钉钉分享、分享邮箱、打印、蓝牙....... 调用三方app进行登录 : 微信登录、QQ登录、微博登录、支付宝登录、Twit…

直接在屏幕上,选取区域进行截屏分享到QQ、微信

在手机屏幕上&#xff0c;选择某个区域进行截屏。 1&#xff0c;借用网络上一张图片&#xff0c;说明每个点的位置&#xff0c;主要是左上角和右下角这两个点。中间那块浅蓝色的就是我们的目标区域了 /*** 将一个view保存成图片* param view 传入的目标view* return*/public…

android qq悬浮窗口,qq悬浮窗口在哪里打开?怎么设置QQ悬浮窗?qq悬浮窗口设置方法分享...

QQ悬浮窗口在哪打开 qq悬浮 1.打开手机设置应用&#xff0c;点击进入设置界百面。 2.在设置应用中&#xff0c;选择“其他度应用管理”选问项。 3.打开选择答已经安装的应用&#xff0c;选择“QQ”。 4.点击“权限回管理”&#xff0c;进入权限管理界面。 5.点击“显示悬浮窗”…

qq三国行脚商脚本思路分享

qq三国行脚商玩法基于按键精灵脚本写作思路分享 欢迎和我一起学习讨论游戏脚本的写作过程游戏玩法简介脚本写作思路知易行难后续痛点和优化自我介绍后记 欢迎和我一起学习讨论游戏脚本的写作过程 你好呀&#xff01; 这是你第一次来到我的主页。如果你想学习如何使用按键精灵等…

QQ微信等分享链接时系统提取的标题和图片代码

有的时候&#xff0c;在我们写好网页后&#xff0c;需要通过QQ/微信等即时通讯工具分享出去&#xff0c;这时候&#xff0c;系统会提取网页的标题和图片&#xff0c;默认提取title和网页的第一张图片。 当然&#xff0c;我们也可以指定分享的文字和图片。以图片为例&#xff0…