MySQL数据库增删改查及聚合查询SQL语句学习汇总

article/2025/9/13 22:52:30

目录

数据库增删改查SQL语句

MySQL数据库指令

1.查询数据库

2.创建数据库

3.删除数据库

4.选择数据库

创建表table  

查看所有表

创建表

查看指定表的结构

删除表

数据库命令进行注释

增删改查(CRUD)详细说明

增加

SQL库提供了关于时间的函数:now() 

查询

查询表作列与列之间进行运算

查询指定某列作为别名,使用关键字as

进行查询数据去重操作,使用关键字distinct

查询结果排序

指定条件查询 where

范围查找区别:between A and B  (前闭后闭)

查询某个具体的数值:使用in来表示

模糊查找某个字符:使用like

 分页查询,使用limit来查询

查询结果作为表新增的数据

SQL查询结果进行字符串截取:substring 

SQL查询结果进行字符串拼接:concat

SQL查询结果进行字符大写:upper

聚合查询

数据求和:sum

计算平均值:avg 

求某列的最大值和最小值 :max \ min

分组查询:group by

条件过滤:having \ where

计算表中行的数量:count 

多表查询:join    on 

左外连接:left join  表   on 

右外连接:right join  表   on 

合并多表查询结果:union \ union all 

数据库索引

查看索引

 创建索引

删除索引 


数据库增删改查SQL语句

userlogin为表的名字

增:insert  into  userlogin  values ('5','5');

删:delete  from  userlogin  where  username ='3';

改:update  userlogin  set  username ='3'  where  pwd  ='2';

查:select  *  from  userlogi;

注意点:查询语句中的通配符 * 尽量不要使用,原因:数据量大时会降低查询效率,使用列名代替*,平时养成好习惯


MySQL数据库指令

1.查询数据库

show databases;(多个数据库用复数)

2.创建数据库

create database 数据库名 charset  utf8;    

 (数据库名由字母、数字、下划线组成,数字不能在最前面)

注意:此处为database,后面没有s,创建数据库增加 charset utf8 可以使数据库插入中文,否则插入中文会报错

报错案例:

3.删除数据库

drop database 数据库名;

4.选择数据库

use 数据库名;

创建表table  

注意点(创建表前先选中具体某个数据库)

查看所有表

show tables;

创建表

create  table 表名(列名 类型,列名 类型,列名 类型);

注意点:类型有int,varchar(),decimal(m,n)   m指有m位有效数字,n指在小数点后有n位数字

查看指定表的结构

desc 表名;

删除表

drop  table 表名;

数据库命令进行注释

在SQL中可以使用“--空格+描述”来表示注释说明

增删改查(CRUD)详细说明

增加

Insert  into 表名 (id,name,age) values(1, ‘小红’,111)    注意点:插入字符串时记得用分号’ ’隔开

注意点:一次插入多个记得用逗号,隔开

SQL库提供了关于时间的函数:now() 

 

查询

Select * from 表名;

Select 列名,列名 from 表名;

查询表作列与列之间进行运算

select  列名, 列名+列名+列名  from  表名;

查询指定某列作为别名,使用关键字as

进行查询数据去重操作,使用关键字distinct

查询结果排序

对查询的结果需要进行排序时,可以使用order by asc(asc 可以默认不写) 即order by 

对结果进行升序操作(由小到大):order by

对结果进行降序操作(由大到小):order by desc

 注意点:(orde by 可以后面接别名,比如计算总和时,前面有as total ,后面可以order by total),Where 不能后面接别名

指定条件查询 where

条件查询,可以直接拿两个列进行比较

示例:查询 语文成绩大于数学成绩的学生名单

select  name from table  where chinese > math;

范围查找区别:between A and B  (前闭后闭)

查询某个具体的数值:使用in来表示

模糊查找某个字符:使用like

 分页查询,使用limit来查询

举例:查询表前3条数据(此时默认从第一页查询)

 如果想自定义从某一页查询,就使用offset

查询结果作为表新增的数据

SQL查询结果进行字符串截取:substring 

用法:substring(字符串,截取起始位置,截取字符数)

SQL查询结果进行字符串拼接:concat

用法:concat(字符串1,字符串2,字符串3,......)

SQL查询结果进行字符大写:upper

 用法:upper(字符串)

聚合查询

数据求和:sum

sum求和只针对数字有效,无法对字符串进行求和,在对列进行求和时会自动跳过结果为null的行

计算平均值:avg 

avg能够计算某一列的平均值,使用方法和sum一样

avg还能搭配表达式一起使用

求某列的最大值和最小值 :max \ min

分组查询:group by

 分组查询会把相同的列分在同一组中。

比如说如果需要计算某一个岗位的工资就需要把每一个岗位分在同一个组中,再来计算这个岗位的平均工资

条件过滤:having \ where

where: 过滤指定的行

having: 过滤分组,与group by 连用

注意:group by  子句进行分组以后,需要对分组结果再进行条件过滤时,不能使用 where 语句,而需要用having

举例: 显示平均工资低于 1500 的角色和它的平均工资
select role ,max(salary),min(salary),avg(salary) from emp group by role having avg(salary)< 1500 ;

计算表中行的数量:count 

select  count(*) from 表名;

注意:当涉及到多个数据计算时,使用count记得使用分组group by

多表查询:join    on 

从多个表中查询不同列数据时,此时就需要使用多表查询语句join on

语句用法:select *from 表1 join 表2 on 条件1 join  表3 on 条件2

示例:

select * from studen join  score on student.id = score.id  join  course on course.id = score.course_id;

先考虑  左表  和  中表 进行外连接,得到一个表“临时”,再拿这个“临时”表和  右表  进行外连接

左外连接:left join  表   on 

left join  ---- 左连接,以左边表的列为主,取两列的交集,对于不在右边列存在的列取null

左外连接:表1 left join 表2 on 连接条件,右边表(表2)返回与连接条件完全匹配的数据,左边表(表1)除了返回与连接条件匹配的数据以外,不匹配的数据也会返回;

右外连接:right join  表   on 

right join  ---- 右连接,以右边表的列为主,取两列的交集,对于不在左边列存在的列取null

右外连接:表1 right join 表2 on 连接条件,左边表(表1)返回与连接条件完全匹配的数据,右边表(表2)除了返回与连接条件匹配的数据以外,不匹配的数据也会返回

合并多表查询结果:union \ union all 

union 可以把多个表的查询结果进行合并,前提条件是多个结果列必须得一一对应。

union:对两个查询结果进行并集操作,自动进行去重,不包括重复行,即去掉重复结果后再显示

union all  : 对两个查询结果进行并集操作,不会进行去重,包括重复行,即所有查询结果都会显示

数据库索引

查看索引

show index from 表名;

 创建索引

create  index 索引名  on  表名(列名);

 

删除索引 

drop index 索引名 on 表名;


http://chatgpt.dhexx.cn/article/BRE93enw.shtml

相关文章

第一部分_SQL查询语句学习

第一部分 SQL查询语句的学习 单表查询 查询订购日期在1996年7月1日至1996年7月15日之间的订单的订购日期、订单ID、客户ID和雇员ID等字段的值 SELECT 订购日期,订单ID,客户ID,雇员ID FROM 订单 WHERE 订购日期 BETWEEN 1996-07-01 AND 1996-07-15 查询供应商的ID、公司名称、…

了解RS-232、RS-485串口通信协议

文章目录 一、串口通信协议1、RS-232标准2、RS-485标准3、RS232、485电平与TTL电平的区别4、"USB/TTL转232"模块工作原理1、工作流程2、驱动 2、总结3、参考资料 一、串口通信协议 对于通信协议&#xff0c;我们可以分为两个层面进行理解&#xff0c;分别是物理层和…

RS485通讯协议

https://blog.csdn.net/qq_29344757/article/details/71516037 1. 硬件层协议 通讯协议主要是实现两个设备之间的数据交换功能&#xff0c;通讯协议分硬件层协议和软件层协议。硬件层协议决定数据如何传输问题&#xff0c;比如要在设备1向设备2发送0x63&#xff0c;0x63的二进…

RS——485通讯协议

1、RS485通讯实验简介 RS485是一种工业控制环境中 常用的通讯协议&#xff0c;它具有抗干扰能力强、传输距离远的特点。485协议又232协议改进而来&#xff0c;协议层不变&#xff0c;只改进了物理层&#xff0c;因而保留了串口通讯协议应用简单的特点。 看图就知道了&#xf…

485Modbus协议

1.RS485 1&#xff09;485通信 --差分传输 物理层&#xff1a; 通信引脚 A B 使用双绞线通信。 发送器&#xff1a; 逻辑1&#xff1a; A>B AB之间电压为2V~6V 逻辑0&#xff1a; A<B AB之间电压为-2V~-6V 接收器&#xff1a; 逻辑1&#xff1a; A>B AB之间电…

带你认识什么是485通信

在现代工业控制系统中&#xff0c;常常需要实现分布式控制&#xff0c;而分布式控制需要实现不同设备之间的通信。其中&#xff0c;485通信协议是一种被广泛使用的通信协议之一。 1. 介绍 A. 485通信的定义 485通信协议是一种串行通信协议&#xff0c;也被称为RS-485。它是由美…

常见的通讯协议总结(USART、IIC、SPI、485、CAN)

目录 一、通讯的基本概念1、串行通讯2、并行通讯3、串行通讯与并行通讯对比4、传输模式&#xff08;单工、半双工、全双工&#xff09; 二、USART—串口通讯1、物理层2、协议层&#xff08;1&#xff09;波特率&#xff08;2&#xff09;起始和停止信号&#xff08;3&#xff0…

485通讯与MODBUS的区别与联系

最近做智能检测的项目&#xff0c;设备、串口之间的通讯比较多&#xff0c;一会儿485&#xff0c;一会儿modbus RTU&#xff0c;有点晕了&#xff0c;这里重新梳理一下RS485、485通讯协议、ModBus通讯协议、Modbus Rtu通讯这几个点的联系和区别。 先说RS485吧&#xff0c;RS48…

485通讯和modbus通讯协议

485通信&#xff1a; 采用差分信号&#xff1a;A比B电压高是1&#xff0c;A比B电压低是0&#xff0c;电压高低值在0.2V-6V之间。 硬件连接上&#xff1a;所有A接到一起&#xff0c;所有B接到一起AB之间要加匹配电阻100欧到1K之间。 485通讯配置时&#xff1a;先要使能发送TX…

MODBUS通讯协议详解(基于485)

参考&#xff1a;灵育科技Modbus课程总结 作者&#xff1a;Naunyang 时间&#xff1a;2020-11-23 13:51:58 网址&#xff1a;https://blog.csdn.net/Naunyang/article/details/108740456?spm1001.2014.3001.5502 参考&#xff1a;MODBUS用于单片机通讯 作者&#xff1a;hillch…

485通讯协议_终于有人把RS485通讯协议应用及缺点分析清楚了,看完收获多多

RS-485是工业控制环境中常用的通信协议&#xff0c;具有抗干扰能力强、传输距离长的特点。RS-485通信协议是对RS-232协议的改进。协议层不变&#xff0c;但只有物理层得到了改进&#xff0c;从而保留了串行通信协议应用简单的特点。 RS-232和RS-485的特性的不同 典型的串行通信…

Linux初学者必知的5个学习网站

1 推荐一&#xff1a;鸟哥的Linux私房菜&#xff08;http://vbird.dic.ksu.edu.tw/&#xff09; 这个不用多说吧&#xff0c;只要你学习Linux就肯定听说过鸟哥的私房菜&#xff0c;经典&#xff0c;对于初学者来说绝对是经典&#xff0c;推荐&#xff01;&#xff01;&#xff…

Linux初学者五个网站推荐

推荐一&#xff1a;鸟哥的Linux私房菜&#xff08;http://vbird.dic.ksu.edu.tw/&#xff09; 这个不用多说吧&#xff0c;只要你学习Linux就肯定听说过鸟哥的私房菜&#xff0c;经典&#xff0c;对于初学者来说绝对是经典&#xff0c;推荐&#xff01;&#xff01;&#xff01…

Linux学习网站推荐

推荐一&#xff1a;鸟哥的Linux私房菜&#xff08;http://vbird.dic.ksu.edu.tw/&#xff09; 这个不用多说吧&#xff0c;只要你学习Linux就肯定听说过鸟哥的私房菜&#xff0c;经典&#xff0c;对于初学者来说绝对是经典&#xff0c;推荐&#xff01;&#xff01;&#xff01…

如何在linux系统上搭建部署网站?

目录 前言 基础配置的更改和软件的安装 更改软件安装源 升级apt(advanced packing tool) 安装net-tools 安装openssh-server 安装vsftpd 环境配置 修改vsftpd的写入权限 安装HTTP服务软件 修改nginx配置 修改文件夹访问权限 重启nginx 测试 结语 使用云服务器&a…

Linux学习13—网站服务

文章目录 一. 网站简介1.1 前言1.2 概念1.3 名词解释1.4 网站架构 二. 静态网站2.1 Apache简介2.2 Apache基础2.3 Apache安装与配置2.4 虚拟主机 三. 动态网站3.1 简介3.2 搭建论坛系统discuz3.3 论坛系统discuz用户端测试 一. 网站简介 1.1 前言 用户UI的转变&#xff1a;B/S…

Linux学习:网站服务

目录 一、网站服务 1.网站简介 1.1名词 1.2网站架构 2、静态站点 2.1 Apache基础 2.2安装apache 2.4 虚拟主机 3、动态站点 3.1部署论坛系统dlscuz 一、网站服务 1.网站简介 1.1名词 &#xff08;1&#xff09;HTML&#xff1a;&#xff08;Hyper Text Markup Lang…

在Linux系统上搭建网站

LAMP环境 首先说一下这里用的环境是LAMP 先简单说一下什么是LAMP LAMP是 Linux Apache MySQL PHP 的环境要求&#xff0c;即web服务器。1.在Linux系统上配置网站环境 运行 wget -c http://soft.vpser.net/lnmp/lnmp1.4.tar.gz && tar zxf lnmp1.4.tar.gz &&…

linux 学习

1、什么是重定向&#xff1f;什么是管道&#xff1f; 2&#xff0c;完成以下操作&#xff1a; &#xff08;1&#xff09;显示系统时间&#xff0c;并将系统时间修改为2018年10月1日。 # date 显示时间 # date -s 10/01/2018 修改系统时间 把系统时间修改为2018年10月1日…

在Linux上搭建一个自己的网站

文章目录 前言配置实验基于不同IP访问基于不同端口访问基于域名访问 前言 搭建一个网站&#xff0c;首先需要的是Web服务器&#xff0c;我们这里使用 Apache&#xff0c;它是由 httpd 服务调度&#xff0c;我们先使用这个服务搭建一个简单的静态页面 配置 下载服务&#xff…