目录

  • 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查询语句(单表查询,多表联合查询)相关推荐

  1. MySQL数据库高级SQL语句(三)

    MySQL数据库高级SQL语句 SELECT TRIM 连接查询 CREATE VIEW UNION 交集值 无交集值 CASE SELECT TRIM SELECT TRIM (位置 '想移除掉的字 ...

  2. 【学习笔记】MySQL数据库高级版 - 索引优化、慢查询、锁机制等

    本文是尚硅谷周阳(阳哥)老师的MySQL高级篇视频的学习笔记.由于视频比较老,所以在高版本的MySQL中索引的地方做了优化,和视频的内容不完全一样,不过大体一致.从第四节锁机制开始的部分还没有整理. ...

  3. MySQL数据库:SQL语句

    MySql数据库系列阅读 MySQL数据库 MySQL数据库:SQL语句 MySQL数据库:完整性约束 MySQL数据库备份与还原 MySQL数据库:编码 1. SQL概述 1.1 什么是SQL SQ ...

  4. MySQL数据库 第5章:单表操作

    MySQL数据库 第5章:单表操作 5.1 数据操作 5.1.1 复制表结构和数据 5.1.2 解决主键冲突 5.1.3 清空数据 5.1.4 去除重复记录 5.2 排序与限量 5.2.1 排序 5. ...

  5. sqlserver2012(and mysql)数据库简单内外连接-双表-三(多)表查询

    背景: 1:学习B站数据库多表查询,解决一些实际问题 参考: 1:[尚学堂]MySQL数据库多表查询_多表连接查询视频教程_哔哩哔哩_bilibili 2:https://www.cnblogs.co ...

  6. 1.MySQL数据库 2.SQL语句

    01数据库概念 * A: 什么是数据库数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加,修改,删除及查询操作. * B: 什么是数据库 ...

  7. MySQL数据库的SQL语句

    MySQL数据库的SQL语句 MySQL的常用数据类型 MySQL数据类型及含义 char与varchar的区别 MySQL的基本命令 登录数据库 查看MySQL数据库版本 查看当前服务器中的数据库 ...

  8. php 登陆 sql语句,PHP 连接MySQL数据库的SQL语句的简单示例

    这篇文章主要为大家详细介绍了PHP 连接MySQL数据库的SQL语句的简单示例,具有一定的参考价值,可以用来参考一下. 首先用phpmyadmin进入建立数据库user 再建个三段的表admin 再别 ...

  9. Python中Mysql数据库的sql语句参数传递问题

    在Python中, 通过pymysql库连接Mysql数据库的sql语句参数传递时需要注意: mysql的sql语句的字符串格式化不是标准的python的字符串格式化, 在python中无论字符串,数 ...

最新文章

  1. 图解未来50年前沿科技趋势与22个预测
  2. 10.基于Tomcat的SmartUplaod文件上传
  3. java字符串转日期_JAVA字符串转日期或日期转字符串
  4. 已知服务器ftp的账号密码,求解数据库表的内容
  5. aws beanstalk mysql_AWS Elastic Beanstalk
  6. java 独占锁_锁分类(独占锁、分拆锁、分离锁、分布式锁)
  7. mysql text字段导出_Mysql数据库的各种命令:
  8. 基本农田卫星地图查询_发现谷歌地图替代网站,卫星地图街景功能都能用
  9. XML与HTML的区别
  10. java web文件上传详解_java web图片上传和文件上传实例详解
  11. 3dmaxuv展开很多线_考研 | 最全考研复试时间线!参考价值超大!
  12. 年轻人求知欲让我想办CPU设计免费培训
  13. WPF XMAL获取元素的父元素,子元素
  14. (java毕业设计)基于jsp旅游网站管理系统源码
  15. 厦门大学信息计算机学院,厦门大学信息科学与技术学院计算机科学系导师介绍:刘向荣...
  16. 数字逻辑电路 逻辑运算 与、或、非、与非、或非、与或非、异或、同或 二进制运算技巧
  17. java实现1 12 123 1234 12345 123456 输出
  18. [矩阵求逆+二分图匹配]BZOJ 3168 [Heoi2013]钙铁锌硒维生素
  19. 个人用户永久免费,可自动升级版Excel插件,使用VSTO开发,Excel催化剂功能第12波-快速生成、读取、导出条形码二维码...
  20. MySQL中az是什么意思_特惠专区_华为云

热门文章

  1. 一篇帮助前端小白理解 PNG 图片压缩原理
  2. 决策回归树回归算法30
  3. 使用IBM translate做一个翻译机器人
  4. centos命令失效_CentOS 7 常见命令、问题及解决方式
  5. 【数据结构】AOV网——拓扑排序
  6. v65.05 鸿蒙内核源码分析(挂载目录) | 为何文件系统需要挂载 | 百篇博客分析OpenHarmony源码
  7. pictureselector 压缩_GitHub - HobertHe/PictureSelector-1: 仿微信、QQ图片选择器(自带图片压缩,裁剪)...
  8. Ubuntu使用Gparted调整分区大小—进入图形界面前一直停留在debian界面
  9. 【ESP32】17.DS1302实时时钟模块实验(ThreeWire库 / RtcDS1302库)
  10. 米家扫地机器人是石头代工_米家/石头10款扫地机器人如何选,一文看懂