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

这篇具有很好参考价值的文章主要介绍了MySQL数据库增删改查及聚合查询SQL语句学习汇总。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

数据库增删改查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

SQL查询结果进行保留小数点位数:round()

聚合查询

数据求和:sum

计算平均值:avg 

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

分组查询:group by

条件过滤:having \ where

计算表中行的数量:count 

多表查询:join    on 

左外连接:left join  表   on 

右外连接:right join  表   on 

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

数据库索引

查看索引

 创建索引

删除索引 

窗口排序函数

1.row_number()函数:连续不重复

2.rank()函数:重复不连续

3.dense_rank()函数:重复且连续

4.ntile(n)函数:平均分组


数据库增删改查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 可以使数据库插入中文,否则插入中文会报错

报错案例:

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

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)    注意点:插入字符串时记得用分号’ ’隔开

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

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

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

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

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

查询

Select * from 表名;

Select 列名,列名 from 表名;

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

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

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

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

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

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

查询结果排序

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

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

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

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

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

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

指定条件查询 where

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

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

select  name from table  where chinese > math;

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

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

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

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

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

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

 分页查询,使用limit来查询

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

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

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

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

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

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

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

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

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

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

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

 用法:upper(字符串)

SQL查询结果进行保留小数点位数:round()

使用 Round() 函数,如 Round(number,2) ,其中参数2表示保留小数点后两位有效数字,四舍五入到两位小数。


ROUND(3.141592653, 2) 结果为3.14

聚合查询

数据求和:sum

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

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

计算平均值:avg 

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

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

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

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

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

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

分组查询:group by

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

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

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

条件过滤: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

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

多表查询: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  : 对两个查询结果进行并集操作,不会进行去重,包括重复行,即所有查询结果都会显示

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

数据库索引

查看索引

show index from 表名;

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

 创建索引

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

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

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

删除索引 

drop index 索引名 on 表名;

窗口排序函数

row_number():连续不重复;    例:1234567
rank() :重复不连续; 例:1222567
dense_rank():重复且连续; 例:1222345

ntile():平均分组; 例:1122334

1.row_number()函数:连续不重复

特点: row_number()函数可以为每条记录添加递增的顺序数值序号,即使值完全相同也依次递增序号,不会重复

语法:row_number() over(partition by fieldname order by fieldname desc/asc)

Select name,times ,money,ROW_NUMBER() over(PARTITION by name ORDER BY money desc) num
From syc
Group by name,times

partition by 用来限定排序的范围,如果不写,则直接在全表中排序。在over中设定以某一列排序,注意,这里的order by,与sql语句中的order by并不冲突,序列按照 over中的 order by排序,但是整个结果集,依然按照sql中的order by排序;

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

2.rank()函数:重复不连续

特点: rank()函数也是返回每条记录的排名序号,但当值相同时,序号也将相同,同时跳跃排序(比如:第一名、第一名、第三名)

语法:rank() over(partition by fieldname order by fieldname desc/asc)

selkect *, rank() over( order by score desc) num
from sc
where cno ='01’or cno=‘02’

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

3.dense_rank()函数:重复且连续

特点: dense_rank()函数进行排序时,也会将值相同的数据赋予同一个序号,但与rank()函数不同的是,dense_rank()函数为重复且连续排序(比如第一名、第一名、第二名)。

语法:dense_rank() over(partition by fieldname order by fieldname desc/asc)

select *, dense_rank() over( ORDER BY score desc) num
from sc
where cno ='01'or cno='02'

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

4.ntile(n)函数:平均分组

特点: ntile(n)函数会将数据分为n组,自动进行分组 (每组数量大致相等,若无法均分为n组,则每组的记录数不能大于它上一组的记录数),每组将会分配同一个序号(组号为1-n)。

语法:ntile(n) over(order by fieldname desc/asc)

select *, ntile(4) over( ORDER BY score asc) num
from sc
where cno ='01'or cno='02'

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

窗口函数参考文章:https://blog.csdn.net/momomuabc/article/details/127902127

                                https://blog.csdn.net/haifeng112612/article/details/114977365文章来源地址https://www.toymoban.com/news/detail-489337.html

到了这里,关于MySQL数据库增删改查及聚合查询SQL语句学习汇总的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【MySQL探索之旅】数据库设计以及聚合查询

    📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 |《MySQL探索之旅》 |《Web世界探险家》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 🙏小杨水平有限,欢迎各位大佬指点,相互学习进步! 数据库

    2024年04月09日
    浏览(53)
  • MySql学习2:SQL分类、数据库操作、表操作、数据的增删改查

    SQL分类: DDL:数据定义语言,用来定义数据库对象(数据库、表、字段) DML:数据操作语言,用来对数据库表中的数据进行增删改 DQL:数据库查询语言,用来查询数据库表中的记录 DCL:数据控制语言,用来创建数据库用户、控制数据库的访问权限 查询所有数据库 查询当前

    2024年02月11日
    浏览(53)
  • 【JaveWeb教程】(20) MySQL数据库开发之 基本查询、条件查询、聚合函数、分组查询、排序查询、分页查询 详细代码示例讲解

    在上次学习的内容中,我们讲解了: 使用DDL语句来操作数据库以及表结构(数据库设计) 使用DML语句来完成数据库中数据的增、删、改操作(数据库操作) 我们今天还是继续学习数据库操作方面的内容:查询(DQL语句)。 查询操作我们分为两部分学习: DQL语句-单表操作

    2024年02月02日
    浏览(85)
  • Mysql 数据库DQL 数据查询语言 SELECT 基本查询、条件查询、聚合查询、分组查询、排序查询、分页查询——包含DQL所有查询语句。吐血分享。

    DQL:数据查询语言; 用来对表内的数据进行查找 。Database Query Language SQL语句分为:基本查询、条件查询、聚合查询、分组查询、排序查询、分页查询。  可以发现name字段就只剩下一个张三了;   条件: 条件查询—比较运算符 比较运算符 功能 大于 = 大于等于 小于 = 小于等

    2024年01月19日
    浏览(55)
  • 【MySQL】表的增删改查——MySQL基本查询、数据库表的创建、表的读取、表的更新、表的删除

         CURD是一个数据库技术中的缩写词,它代表Create(创建),Retrieve(读取),Update(更新),Delete(删除)操作。 这四个基本操作是数据库管理的基础,用于处理数据的基本原子操作。      在MySQL中,Create操作是十分重要的,它帮助用于创建数据库对象,如数据

    2024年03月18日
    浏览(68)
  • MySQl数据库第八课-------SQL命令查询-------主要命脉

     欢迎小可爱们前来借鉴我的gtiee秦老大大 (qin-laoda) - Gitee.com —————————————————————————————— 查询数据         条件         逻辑运算符         模糊查询         范围查询 in         判断空 UNION  排序 聚合 分组:gro

    2024年02月16日
    浏览(53)
  • 玩转MySQL数据库之SQL优化之慢查询

    本系列为:MySQL数据库详解,为千锋资深教学老师独家创作,致力于为大家讲解清晰MySQL数据库相关知识点,含有丰富的代码案例及讲解。如果感觉对大家有帮助的话,可以【关注】持续追更~ 文末有本文重点总结,技术类问题,也欢迎大家和我们沟通交流! 从今天开始本系列

    2024年02月06日
    浏览(96)
  • Python MySQL 数据库查询:选择数据、使用筛选条件、防止 SQL 注入

    要从MySQL中的表格中选择数据,请使用\\\"SELECT\\\"语句: 示例选择\\\"customers\\\"表格中的所有记录,并显示结果: 注意 :我们使用 fetchall() 方法,该方法从上次执行的语句中获取所有行。 要仅选择表格中的某些列,请使用\\\"SELECT\\\"语句,后跟列名: 示例仅选择name和address列: 如果您只对

    2024年02月05日
    浏览(95)
  • MySQL数据库干货_16—— SQL99标准中的查询

    SQL99标准中的查询 MySQL5.7 支持部分的SQL99 标准。 SQL99中的交叉连接(CROSS JOIN) 示例: 使用交叉连接查询 employees 表与 departments 表。 SQL99中的自然连接(NATURAL JOIN) 自然连接 连接只能发生在两个表中有相同名字和数据类型的列上。如果列有相同的名字,但数据类型不同,NATURAL J

    2024年02月06日
    浏览(62)
  • 【MySQL】MySQL PHP 语法,PHP MySQL 简介,查询,下载 MySQL 数据库, SQL 教程

    作者简介: 辭七七,目前大一,正在学习C/C++,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: 七七的闲谈 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖 MySQL 可应用于多种语言,包括 PERL, C, C++, JAVA 和 PHP,在这些语言中,MySQL 在 PHP 的 web 开发中是应用最广泛。 我们

    2024年02月11日
    浏览(57)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包