MySQL数据库高级SQL查询语句(单表查询,多表联合查询)
目录
- SQL查询语句
- 基础查询
- 条件查询
- 模糊查询
- 字段控制查询
- 排序
- 聚合函数
- 分组查询
- having子句
- limit分页查询
- 多表连接查询
SQL查询语句
数据查询语言。
数据库执行DQL语句不会对数据进行改变,而是让数据库发送结果集给客户端。
一些简单语法:
select 列名
-------->要查询的列名称from 表名
--------->要查询的表名称where 条件
-------->行条件(要查询的限制条件)group by 分组列
-------->对结果分组having 分组条件
-------->分组后的行条件(分组以后的查询限制条件)order by 排序列
-------->对结果分组limit 起始行,行数
-------->结果限定(从第几行开始,查几行)。
下面来介绍查询语言的具体用法。
案例及数据库基本操作接上一篇博文:https://blog.csdn.net/weixin_53186633/article/details/119618990
基础查询
查询表中记录:
select 列名1,列名2,... from 表名;
例如:查询学生的学号及姓名:
select sid,sname from student;
如果要查询表中所有的记录的话,可以使用通配符‘*
’来代替所有列。
select * from 表名;
例如:查询所有学生信息:
select * from student;
条件查询
select 列1,列2... from 表名 where 条件;
在where条件语句中可以使用如下运算符:
- =(是)、
!=
(不是)、<>、<、<=、>、>= between...and...
(包含端点处的值)- in(集合):在集合范围内
is NULL
:是否是空值and
:与or
:或not
:取反
例如:
--查询年龄小于20的女生。
select * from student where sage<20 and sgender='女'; --1004 mary
--查询年龄大于等于17小于等于20的学生。
select * from student where sage between 17 and 20;--查询姓名不为null的学生记录。
select * from student where NOT sname IS NULL;
模糊查询
select 列 from 表名 where 某列 like 条件;
其中,关于条件,SQL匹配了两种匹配方式:
(1)%
:表示任意0个或多个字符
(2)_
:表示任意单个字符
例如:
--查询姓名由五个字母构成,且第五个字母为e的学生信息
select * from student where sname like '____e'; --alice--查询姓名以z开头的学生信息。
select * from student where sname like 'z%'; --zhangSan
字段控制查询
(1)去重:使用DISTINCT
(2)将Null转换为指定的值:IFNULL(列名,值)
(3)给列添加别名:列名 as 别名
例如:
创建雇员表emp:
在查询员工工资sal时,会出现重复数据,去掉重复记录:
select DISTINCT sal from emp;
计算雇员薪资sal和佣金comm之和,并将和起名为total:
select *,sal+IFNULL(comm,0) as total from emp;
排序
对查询结果进行排序
select 列 from 表名 [where 条件] order by 列名 asc/desc;
其中,ASC表示按照升序排列,DESC表示按照降序排列。
例如:查询所有学生信息,并将学生信息按照年龄降序排列:
select * from student order by sage DESC;
聚合函数
(1)COUNT(列名)
:统计指定列不为NULL的记录行数;
(2)max/min
:查询列的最大/最小值
(3)sum(列名)
:求和
(4)avg(列名)
:平均值
例如:
查询emp表中拥有佣金的人数:
select COUNT(comm) cnt from emp; --3
统计员工平均工资:
select AVG(sal) from emp;
分组查询
分组查询使用关键字group by
例如:查询每个部门的部门编号以及每个部门工资大于1500的人数。
select deptno,count(*)
from emp
where sal>1500
GROUP BY deptno;
having子句
使用having子句对分组结果进行筛选。
where与having的区别:
where是对分组前的数据进行筛选。
having是对分组后的数据进行筛选,必须和group by结合使用。
limit分页查询
分页查询,用来限定查询结果的起始行和查询行数是MySQL独有的。
select 列 from 表名 [where 条件] limit 起始行索引,查询的行数
例如:查询员工表前三行记录:
select * from emp LIMIT 0,3;
多表连接查询
(1)内连接:选出两张表中互相匹配的记录(两张表根据数据相同的字段,将两张表连接起来)
(2)外连接:包括左外连接和右外连接
左外连接:又称为左连接,查询结果中包含左边表中所有的记录,右边表中没有匹配的记录显示为NULL。
select 列 from 左表 left join 右表 on 条件;
右外连接:又称为右连接,包含右边表中所有的记录,左边表中没有匹配的记录显示为NULL。
select 列 from 左表 right join 右边 on 条件;
MySQL数据库高级SQL查询语句(单表查询,多表联合查询)相关推荐
- MySQL数据库高级SQL语句(三)
MySQL数据库高级SQL语句 SELECT TRIM 连接查询 CREATE VIEW UNION 交集值 无交集值 CASE SELECT TRIM SELECT TRIM (位置 '想移除掉的字 ...
- 【学习笔记】MySQL数据库高级版 - 索引优化、慢查询、锁机制等
本文是尚硅谷周阳(阳哥)老师的MySQL高级篇视频的学习笔记.由于视频比较老,所以在高版本的MySQL中索引的地方做了优化,和视频的内容不完全一样,不过大体一致.从第四节锁机制开始的部分还没有整理. ...
- MySQL数据库:SQL语句
MySql数据库系列阅读 MySQL数据库 MySQL数据库:SQL语句 MySQL数据库:完整性约束 MySQL数据库备份与还原 MySQL数据库:编码 1. SQL概述 1.1 什么是SQL SQ ...
- MySQL数据库 第5章:单表操作
MySQL数据库 第5章:单表操作 5.1 数据操作 5.1.1 复制表结构和数据 5.1.2 解决主键冲突 5.1.3 清空数据 5.1.4 去除重复记录 5.2 排序与限量 5.2.1 排序 5. ...
- sqlserver2012(and mysql)数据库简单内外连接-双表-三(多)表查询
背景: 1:学习B站数据库多表查询,解决一些实际问题 参考: 1:[尚学堂]MySQL数据库多表查询_多表连接查询视频教程_哔哩哔哩_bilibili 2:https://www.cnblogs.co ...
- 1.MySQL数据库 2.SQL语句
01数据库概念 * A: 什么是数据库数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作. * B: 什么是数据库 ...
- MySQL数据库的SQL语句
MySQL数据库的SQL语句 MySQL的常用数据类型 MySQL数据类型及含义 char与varchar的区别 MySQL的基本命令 登录数据库 查看MySQL数据库版本 查看当前服务器中的数据库 ...
- php 登陆 sql语句,PHP 连接MySQL数据库的SQL语句的简单示例
这篇文章主要为大家详细介绍了PHP 连接MySQL数据库的SQL语句的简单示例,具有一定的参考价值,可以用来参考一下. 首先用phpmyadmin进入建立数据库user 再建个三段的表admin 再别 ...
- Python中Mysql数据库的sql语句参数传递问题
在Python中, 通过pymysql库连接Mysql数据库的sql语句参数传递时需要注意: mysql的sql语句的字符串格式化不是标准的python的字符串格式化, 在python中无论字符串,数 ...
最新文章
- 图解未来50年前沿科技趋势与22个预测
- 10.基于Tomcat的SmartUplaod文件上传
- java字符串转日期_JAVA字符串转日期或日期转字符串
- 已知服务器ftp的账号密码,求解数据库表的内容
- aws beanstalk mysql_AWS Elastic Beanstalk
- java 独占锁_锁分类(独占锁、分拆锁、分离锁、分布式锁)
- mysql text字段导出_Mysql数据库的各种命令:
- 基本农田卫星地图查询_发现谷歌地图替代网站,卫星地图街景功能都能用
- XML与HTML的区别
- java web文件上传详解_java web图片上传和文件上传实例详解
- 3dmaxuv展开很多线_考研 | 最全考研复试时间线!参考价值超大!
- 年轻人求知欲让我想办CPU设计免费培训
- WPF XMAL获取元素的父元素,子元素
- (java毕业设计)基于jsp旅游网站管理系统源码
- 厦门大学信息计算机学院,厦门大学信息科学与技术学院计算机科学系导师介绍:刘向荣...
- 数字逻辑电路 逻辑运算 与、或、非、与非、或非、与或非、异或、同或 二进制运算技巧
- java实现1 12 123 1234 12345 123456 输出
- [矩阵求逆+二分图匹配]BZOJ 3168 [Heoi2013]钙铁锌硒维生素
- 个人用户永久免费,可自动升级版Excel插件,使用VSTO开发,Excel催化剂功能第12波-快速生成、读取、导出条形码二维码...
- MySQL中az是什么意思_特惠专区_华为云
热门文章
- 一篇帮助前端小白理解 PNG 图片压缩原理
- 决策回归树回归算法30
- 使用IBM translate做一个翻译机器人
- centos命令失效_CentOS 7 常见命令、问题及解决方式
- 【数据结构】AOV网——拓扑排序
- v65.05 鸿蒙内核源码分析(挂载目录) | 为何文件系统需要挂载 | 百篇博客分析OpenHarmony源码
- pictureselector 压缩_GitHub - HobertHe/PictureSelector-1: 仿微信、QQ图片选择器(自带图片压缩,裁剪)...
- Ubuntu使用Gparted调整分区大小—进入图形界面前一直停留在debian界面
- 【ESP32】17.DS1302实时时钟模块实验(ThreeWire库 / RtcDS1302库)
- 米家扫地机器人是石头代工_米家/石头10款扫地机器人如何选,一文看懂