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

news2024/11/15 8:22:22

目录

数据库增删改查SQL语句

MySQL数据库指令

1.查询数据库

2.创建数据库

3.删除数据库

4.选择数据库

创建表table  

查看所有表

创建表

查看指定表的结构

删除表

数据库命令进行注释

增删改查(CRUD)详细说明

增加

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

查询

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

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

查询指定某列作为别名,使用关键字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://www.coloradmin.cn/o/658703.html

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

相关文章

Python 查询 DynamoDB

文章目录 DynamoDB 简介Boto3简介安装和导入 Boto3将 Boto3 连接到 DynamoDB 使用 Boto3 在 DynamoDB 中创建表通过 Boto3 删除 DynamoDB 中的表通过 Boto3 列出 DynamoDB 中的表通过 Boto3 在 DynamoDB 中分页通过 Boto3 在 DynamoDB 中排序通过 Boto3 在 DynamoDB 中获取项目…

【设计模式与范式:行为型】63 | 职责链模式(下):框架中常用的过滤器、拦截器是如何实现的?

上一节课&#xff0c;我们学习职责链模式的原理与实现&#xff0c;并且通过一个敏感词过滤框架的例子&#xff0c;展示了职责链模式的设计意图。本质上来说&#xff0c;它跟大部分设计模式一样&#xff0c;都是为了解耦代码&#xff0c;应对代码的复杂性&#xff0c;让代码满足…

Ribbon LoadBalanced底层机制源码探秘

&#x1f34a; Java学习&#xff1a;社区快速通道 &#x1f34a; 深入浅出RocketMQ设计思想&#xff1a;深入浅出RocketMQ设计思想 &#x1f34a; 绝对不一样的职场干货&#xff1a;大厂最佳实践经验指南 &#x1f4c6; 最近更新&#xff1a;2023年6月18日 &#x1f34a; 点…

如何自己开发浏览器js插件

大家都知道在网页控制台编写的js脚本一刷新就没了下面教程教大家如何自己写一个js插件&#xff0c;此教程是小白在网上看到的的确认有效才发出来的&#xff0c;无需借助油猴。 最近工作需要小白研究了一下浏览器插件编写的过程下面分享给大家 步骤 在桌面创建一个文件夹&…

指针与数组---指针与一维数组的关系

C语言的高效得益于它指针功能的强大。然而C语言中的指针和数组的关系似乎很“纠结”&#xff0c;让人爱恨交织。指向数组的指针变量、指针数组等&#xff0c;似乎总是“你中有我&#xff0c;我中有你”。 目录 一、数组名的特殊意义及其在访问数组元素中的作用 二、指针运算…

Linux常用指令和知识(1)

目录 ls cd pwd 相对路径&绝对路径&特殊路径符 mkdir touch-cat-more cp-mv-rm which-find grep-wc 管道符 | echo 重定向符 tail &#x1f636;‍&#x1f32b;️&#x1f618;创作不易, 多多支持 前言: 我们学习的Linux命令, 其实他们的本体就是一个个…

ctf 逆向 专题题解

本文的目标是&#xff0c;记录一些不具备通用性的&#xff0c;或者比较进阶的题目。之前的另一篇文章则用于记录一些基础知识和通用性较强的基本手法。 文章目录 跨科题目buu fungame&#xff1a;reverse与pwn的结合reverseweb 反跟踪Easyhook&#xff1a;hook例题 vm类型总结一…

我的创作纪念日——512

机缘 没想到不知不觉在CSDN创作就512天了&#xff0c;想到一开始就仅仅想在CSDN记笔记&#xff0c;到现在成为一个小博主&#xff0c;认识到了很多志同道合的伙伴&#xff0c;中间创作我也曾经懒惰过&#xff0c;放弃过&#xff0c;但我一次又一次重新进行创作&#xff0c;虽然…

AcWing801: 二进制中1的个数(两种方法详解)

原题引出 方法一&#xff1a;使用lowbit 算法的时间复杂度为 O ( n l o g n ) O(nlogn) O(nlogn)&#xff0c;使用lowbit操作&#xff0c;每次操作截取一个数字的最后一个1后面的所有位&#xff0c;每次减去lowbit得到的数字&#xff0c;直到数字减到0&#xff0c;就得到了最终…

【MySQL】选择专题(七)

文章目录 选择题选择题 在关系R ( R # , RN , S # )和S ( S # , SN , SD )中, R 的主码是R # , S 的主码是S #,则S#在R 中称为( A )。 A 外码 B 候选码 C 主码 D 超码 设关系R和S的属性个数分别为2和3,那么等价于( B )。 A. σ1<2(RS) B. σ1<4(RS) C. σ1<2(R…

我们世界中的计算机——从大师视角诠释计算常识

计算机和通信系统&#xff0c;以及由它们所实现的许多事物遍布我们周围。其中一些在日常生活中随处可见&#xff0c;比如笔记本电脑、手机和互联网。今天&#xff0c;在任何公共场所&#xff0c;都会看到许多人在使用手机查询交通路线、购物以及和朋友聊天。与此同时&#xff0…

【大数据】大数据相关概念

文章目录 大数据&#xff1a;一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合&#xff0c;具有海量的数据规模、快速的数据流转、多样的数据类型以及价值密度四大特征。Hadoop&#xff1a;是一个能够对大量数据进行分布式处理的软件框…

15-3.自定义组件的生命周期函数

目录 1 组件自身的生命周期函数 1.1 使用lifetimes声明生命周期函数 1.2 不使用lifetimes声明生命周期函数 2 组件所在页面的生命周期函数 1 组件自身的生命周期函数 created 组件实例刚刚被创建后执行&#xff0c;可以理解为 html模板刚刚搞好attached 组件被放入节…

万物的算法日记|第六天

笔者自述&#xff1a; 一直有一个声音也一直能听到身边的大佬经常说&#xff0c;要把算法学习搞好&#xff0c;一定要重视平时的算法学习&#xff0c;虽然每天也在学算法&#xff0c;但是感觉自己一直在假装努力表面功夫骗了自己&#xff0c;没有规划好自己的算法学习和总结&am…

DJ4-2 数据报网络和虚电路网络

目录 一、连接和无连接服务 二、数据报网络 1、数据报网络的转发表 2、数据报网络的特点 三、虚电路网络 (Virtual Circuits)* 1、虚电路网络的工作方式 2、虚电路网络的特点 一、连接和无连接服务 任何网络中的网络层只会提供两种服务之一&#xff0c;不会同时提供 数…

Mysql数据库之事务(山高水远,他日江湖再见)

文章目录 一、事务的概念二、事务的ACID特点1.原子性&#xff08;Atomicity&#xff09;2.一致性&#xff08;Consistency&#xff09;3.隔离性&#xff08;lsolation&#xff09;4.持久性&#xff08;Durability) 三、并发访问表的一致性问题和事务的隔离级别1.并发访问表的一…

融合模型stacking14条经验总结和5个成功案例(互联网最全,硬核收藏)_机器学习_人工智能_模型竞赛_论文参考

我看了很多关于融合模型stacking文章&#xff0c;很多作者倾向于赞美融合模型stacking&#xff0c;对其缺点轻描淡写&#xff0c;这容易误导初学者。一叶障目就是这意思。 我的很多学员喜欢用融合模型作为论文或专利创新点&#xff0c;这是一个热门技术。 最近有个同学在论文…

设计模式之单例模式笔记

设计模式之单例模式笔记 说明Singleton(单例)目录单例模式之饿汉式-静态成员变量写法测试类 单例模式之饿汉式-静态代码块写法测试类 单例模式之懒汉式-线程不安全写法和线程安全写法测试类 单例模式之懒汉式-双重检查锁方式(推荐使用的方式)单例模式之懒汉式-静态内部类方式(推…

Mysql数据库之存储引擎(羡慕她人,不如提升自己)

一、存储引擎概念 MySQL中的数据用各种不同的技术存储在文件中&#xff0c;每一种技术都使用不同的存储机制、索引技巧、锁定水平并最终提供不同的功能和能力&#xff0c;这些不同的技术以及配套的功能在MySQL中称为存储引擎。 存储引擎是MySQL将数据存储在文件系统中的存储方…

ELK日志收集系统简述

一、概述 &#xff08;一&#xff09;ELK由三个组件构成 ELK是三个开源软件的缩写&#xff0c;分别是Elasticsearch、Logstash、Kibana ELK 架构基本组成 &#xff08;二&#xff09;作用 1、日志收集 2、日志分析 3、日志可视化 &#xff08;三&#xff09;为什么使用EL…