【JavaWeb】MySQL基础操作
1 通用语法规则
- SQL语句可以单行或者多行书写,以分号结尾
- SQL语句不区分大小写,关键字建议使用大写
- 单行注释 --注释内容(通用) # 注释内容(MySQL独有)
- 多行注释 /* 注释内容 */
2 语句
数据库
-- 查看所有数据库
show databases;-- 创建数据库
create database 数据库名称;-- 创建数据库(判断,不存在则创建)
create database if not exists 数据库名称;
-- 删除数据库
drop database 数据库名称;-- 删除数据库(存在才删除)
drop database if exists 数据库名称;-- 切换数据库/使用数据库
use 数据库名称;
表
-- 创建表
create table 表名 (字段名 数据类型,字段名 数据类型,...
);
常用数据类型
- int:整数类型
- double:小数类型
- varchar(长度):字符串
- data:日期 yyyy-MM-dd
分类 | 类型名称 | 类型说明 |
---|---|---|
整数 | tinyInt | 微整型:很小的整数(占8位二进制) 1个字节 |
smallint | 小整型:小的整数(占16位二进制) 2个字节 | |
mediumint | 中整型:中等长度的整数(占24位二进制) 3个字节 | |
int(integer) | 整型:整数类型(占32位二进制) 4个字节 | |
bigint | 大整型:占64位二进制 8个字节 | |
小数 | float | 单精度浮点数,占4个字节 |
double | 双精度浮点数,占8个字节 | |
decimal(m,n) | 数值类型,m表示数值的长度,n表示小数的位数,既可以表示整数,也可以表示小数。如:decimal(10) decimal(10,2) | |
日期 | time | 只表示时间类型 HH:mm:ss |
date | 只表示日期类型 yyyy-MM-dd | |
datetime | 表示日期和时间类型,时间范围为:'1000-01-01 00:00:00' 到 '9999-12-31 23:59:59' | |
timestamp | 表示日期和时间类型(时间戳) ,时间范围为:'1970-01-01 00:00:01' 到 '2038-01-19 03:14:07' | |
字符串 | char(m) 定长 | 固定长度的字符串,无论使用几个字符都占满全部,M为0~255之间的整数 |
varchar(m) 变长 | 可变长度的字符串,使用几个字符就占用几个,M为0~65535之间的整数 |
-- 查看数据库A中的所有表
show tables;-- 查看表结构
desc 表名;-- 删除表
drop table 表名;
-- 修改表名
alter table 表名 rename to 新表名;-- 单独添加一个字段
alter table 表名 add 字段名 数据类型;-- 修改某字段的数据类型
alter table 表名 modify 字段名 新数据类型-- 修改字段名和数据类型
alter table 表名 change 字段名 新字段名 新数据类型;
-- 删除某一个字段
alter table 表名 drop 字段名;
表数据的增删改
-- 给指定列添加数据
insert into 表名 (字段1,字段2,...) values (值1,值2,...);-- 给全部列添加数据
insert into 表名 values (值1,值2,...);-- 批量添加数据
insert into 表名 values (值1,值2,...),(值1,值2,...),(值1,值2,...);
指定列添加数据
批量添加
- 删除和修改表中数据必须加条件,否则表中数据会全部删除或修改
-- 修改表中数据
update 表名 set 字段名=新的值(,字段名=新的值) where 条件 (and 条件2);-- 删除表中数据
delete from 表名 where 条件;
查询数据
基础查询
-- 查询指定字段的数据
select 字段1,字段2 from 表名;-- 查询所有字段的数据
select * from 表名;
-- 去除重复字段的查询(查询出来的重复数据只会显示一个)
select distinct 字段名1 from 表名;-- 计算列的值(例如算销售额,将单价*销量)
select 字段名1 (+ - * /) 字段名2 from 表名;-- 起别名查询(显示的列的名字会显示成别名)
select 字段1 as 别名1,字段2 as 别名2 from 表名;
条件查询
-- 条件查询
select 字段名 from 表名 where 条件;
比较运算符 | 大于(>)、小于(<)、大于等于(>=)、小于等于(<=)、等于(=)、不等于(<>或!=) |
逻辑运算符 | 并且(and 或 &&)、或者(or 或 ||)、非(not 或 !) |
范围 | 在某个范围内(between...and....)(范围包括在内)、多选一(in (非连续的范围) ) |
nll的处理 | 是null(is null)、不是null(is not null) |
模糊查询
-- 模糊查询
select * from 表名 where 字段名 like '通配符字符串';
通配符:任意多个字符(%)、一个字符(_)
查询排序
-- 排序查询
select 字段名 from 表名 order by 列名 排序方式1,排序方式2;
排序方式:升序(asc)(默认)、降序(desc)
如果有多个排序条件,只有当前面的条件值一样时,才会判断第二个排序条件
复杂查询-聚合函数
使用聚合函数是无法同时查询同行的其它数据
-- 聚合函数查询(null值是不会被统计到)
select 聚合函数(字段名) from 表名;
count | 统计指定列有几行 |
sum | 计算指定列的数值和 |
max | 计算指定列的最大值 |
min | 计算指定列的最小值 |
avg | 计算指定列的平均值 |
-- round(数据,小数位) 让小数显示指定位数
select round(avg(grade),2) from student;
复杂查询-分组
-- 分组查询
select 字段名 from 表名 (where 条件) group by 字段名 (having 条件);-- 分组查询,只会查询每个字段的第一个
select * from 表名 group by 字段名;-- 统计字段有几个
select 字段A,count(*) group by 字段A ;-- 例如统计选每个学科的有多少人
select xueke,count(*) group by xueke;
having与where的区别
where是在分组前对数据进行过滤,having是在分组后对数据进行过滤
where后面不可以使用聚合函数,having后面可以使用聚合函数
复杂查询-分页
limit作用:获取部分查询的数据
-- 分页查询
select * from 表名 limit 跳过的记录数默认为0,显示总数;-- 例子跳过前2条,获取3条
select * from 表名 limit 2,3;-- 跳过0条,显示3条
select * from 表名 limit 3;
MySQL数据库:limit
Oracle数据库:rownumber
SQL Server:top
相关文章:

【JavaWeb】MySQL基础操作
1 通用语法规则 SQL语句可以单行或者多行书写,以分号结尾SQL语句不区分大小写,关键字建议使用大写单行注释 --注释内容(通用) # 注释内容(MySQL独有)多行注释 /* 注释内容 */ 2 语句 数据库 -- 查…...

【Tool】虚拟机安装与调试与设置与主机共享文件
前言 安装了vm17,实现了与主机文件共享, 步骤 下载虚拟机(试用版) Download VMware Workstation Pro 双击安装 暂不激活或者 使用如下激活码 KRNJX-22GXY-HCW46-MWYHY-YWRDB RDHTN-YFFKY-8YVR7-Q996Y-K74X3 N2XRH-GCH84-MV…...
Spring中的接口使用
技术主题 在我们的项目中,经常会使用一些注解,注解带给我们代码简洁,本质是用于在代码中添加元数据信息,从而实现更加灵活、高效和可维护的代码结构。 技术原理 注解一@Target(ElementType.TYPE) 这个注解表示被它修饰的注解可以应用在类、接口、枚举等类型上。换句话说…...

爬虫017_urllib库_get请求的quote方法_urlencode方法_---python工作笔记036
按行来看get请求方式 比如这个地址 上面这个地址复制粘贴过来以后 可以看到周杰伦变成了一堆的Unicode编码了 所以这个时候我们看,我们说https这里,用了UA反爬,所以这里 我们构建一个自定义的Request对象,里面要包含Us...
Http、SSE、Websocket的区别
从传输方向上看 http是客户端发送请求,然后服务端进行响应的单向通道网络传输协议; SSE( Server-sent Events )则相反,只能是服务器向客户端发送消息,如果客户端需要向服务器发送消息,则需要一…...
【资料分享】全志科技T507工业核心板硬件说明书(一)
目 录 前言 1硬件资源 1.1CPU 1.2ROM 1.3RAM 1.4时钟系统 1.5电源 1.6LED...

JavaScript类
JavaScript 类(class) 类是用于创建对象的模板。 我们使用 class 关键字来创建一个类,类体在一对大括号 {} 中,我们可以在大括号 {} 中定义类成员的位置,如方法或构造函数。 每个类中包含了一个特殊的方法 constructor(),它是类…...

One-4-All: Neural Potential Fields for Embodied Navigation 论文阅读
论文信息 题目:One-4-All: Neural Potential Fields for Embodied Navigation 作者:Sacha Morin, Miguel Saavedra-Ruiz 来源:arXiv 时间:2023 Abstract 现实世界的导航可能需要使用高维 RGB 图像进行长视野规划,这…...

【ES】笔记-函数参数默认值
函数参数默认值 ES6 允许给函数参数赋值初始值 1. 形参初始值 具有默认值的参数,一般放到最后 function add(a,b,c10){return abc}let resultadd(1,2);console.log(result);2. 与解构赋值结合 function connect({host"127.0.0.1",username,password,port…...

安装harbor
目录 1. 安装docker-compose Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。使用前面介绍的Dockerfile我们很容易定义一个单独的应用容器。然而在日常开发工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况。例…...

kube-prometheus 使用 blackbox-exporter 进行icmp 监控
安装kube-prometheus 后默认在monitoring namespace中有创建 blackbox-exporter deployment。但默认没有icmp的module配置,无法执行ping探测。因为即使有icmp module,默认配置也是无法执行ping探测的(这篇文章要解决的就是这个问题࿰…...

【python技巧】文本文件的读写操作
【python技巧】文本文件的读写操作 0. 背景1. file库的文件操作1.1 打开文件---file.open()1.2 读取文件---file.read()1.3 写入文件---file.write()1.4 查找内容---file.seek() 2. re库的文本处理参考资料 0. 背景 最近在写后端接口的时候,需要对.c、.conf等类型的…...

SpringBoot项目(验证码整合)——springboot整合email springboot整合阿里云短信服务
目录 引出springboot整合email配置邮箱导入依赖application.yml配置email业务类测试类 springboot整合阿里云短信服务申请阿里云短信服务测试短信服务获取阿里云的accessKeyspringboot整合阿里云短信导包工具类 总结 引出 1.springboot整合email,qq邮箱,…...

缓存穿透,击穿,雪崩之间的区别与联系
1、缓存数据基本流程 通常来说,我们是从数据库将数据查询出来之后,如果数据不为空,则将数据存储在缓存中,下次查询时就直接从缓存查询了,只有查询不到才会从数据库查询。 2、缓存穿透 核心在穿透两个字,穿透了,就说明在查询数据时没有遇到阻碍,直接就查询到了数据库。…...

Vue项目npm run dev 启动报错TypeError: Cannot read property ‘upgrade‘ of undefined
vue项目启动报错 TypeError: Cannot read property upgrade of undefined 由于我的vue.config.js文件 里面的代理target为空导致的 修改: 结果就可以正常运行了 参考原文: vue项目运行时报Cannot read property ‘upgrade’ of undefined错误_cannot r…...
dji uav建图导航系列(二)导航
文章目录 1、导航节点launch文件1.1、节点参数1.2、模拟器节点1.3、无人机雷达-底盘节点1.4、地图服务器节点1.5、AMCL节点1.6、move_base节点1.7、rviz可视化节点2、导航测试2.1、导航实测2.2、动态参数配置 rqt_reconfigure1、导航节点launch文件 导航节点启动文件 uav_navi…...

24.Netty源码之合理管理堆内存
highlight: arduino-light 合理管理 Netty 堆外内存 内存使用目标 •内存占用少(空间) •应用速度快(时间) 即多快好省 对 Java 而言:减少 Full GC 的 STW(Stop the world)时间 内存使用技巧 • 减少对象本身大小 md 例 1:用基本类型就不要用包装类。 例…...

如何自学(黑客)网络安全
前言: 想自学网络安全(黑客技术)首先你得了解什么是网络安全!什么是黑客! 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“…...

【vue】vue基础知识
1、插值表达式&属性绑定 <!--template展示给用户,相当于MVVM模式中的V--> <template><div class"first_div">//插值表达式<p>{{ message }}</p>//这里的参数是从父组件的template里传过来的<p>{{data_1}}</p…...
第一百一十一回 如何实现屏幕适配
文章目录 概念介绍实现方法示例代码 我们在上一章回中介绍了动画相关的内容,本章回中将介绍 如何适配屏幕.闲话休提,让我们一起Talk Flutter吧。 概念介绍 我们平常使用的手机屏幕大小不同,App运行在这些大小不同的屏幕上时效果却相同&…...

接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...

深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...

聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...

深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...

基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...