当前位置: 首页 > news >正文

【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) 定长

固定长度的字符串,无论使用几个字符都占满全部,M0~255之间的整数

varchar(m) 变长

可变长度的字符串,使用几个字符就占用几个,M0~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;

havingwhere的区别

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语句可以单行或者多行书写&#xff0c;以分号结尾SQL语句不区分大小写&#xff0c;关键字建议使用大写单行注释 --注释内容&#xff08;通用&#xff09; # 注释内容&#xff08;MySQL独有&#xff09;多行注释 /* 注释内容 */ 2 语句 数据库 -- 查…...

【Tool】虚拟机安装与调试与设置与主机共享文件

前言 安装了vm17&#xff0c;实现了与主机文件共享&#xff0c; 步骤 下载虚拟机&#xff08;试用版&#xff09; 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是客户端发送请求&#xff0c;然后服务端进行响应的单向通道网络传输协议&#xff1b; SSE&#xff08; Server-sent Events &#xff09;则相反&#xff0c;只能是服务器向客户端发送消息&#xff0c;如果客户端需要向服务器发送消息&#xff0c;则需要一…...

【资料分享】全志科技T507工业核心板硬件说明书(一)

目 录 前言 1硬件资源 1.1CPU 1.2ROM 1.3RAM 1.4时钟系统 1.5电源 1.6LED...

JavaScript类

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

One-4-All: Neural Potential Fields for Embodied Navigation 论文阅读

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

【ES】笔记-函数参数默认值

函数参数默认值 ES6 允许给函数参数赋值初始值 1. 形参初始值 具有默认值的参数&#xff0c;一般放到最后 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 官方的开源项目&#xff0c;负责实现对 Docker 容器集群的快速编排。使用前面介绍的Dockerfile我们很容易定义一个单独的应用容器。然而在日常开发工作中&#xff0c;经常会碰到需要多个容器相互配合来完成某项任务的情况。例…...

kube-prometheus 使用 blackbox-exporter 进行icmp 监控

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

【python技巧】文本文件的读写操作

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

SpringBoot项目(验证码整合)——springboot整合email springboot整合阿里云短信服务

目录 引出springboot整合email配置邮箱导入依赖application.yml配置email业务类测试类 springboot整合阿里云短信服务申请阿里云短信服务测试短信服务获取阿里云的accessKeyspringboot整合阿里云短信导包工具类 总结 引出 1.springboot整合email&#xff0c;qq邮箱&#xff0c;…...

缓存穿透,击穿,雪崩之间的区别与联系

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为空导致的 修改&#xff1a; 结果就可以正常运行了 参考原文&#xff1a; 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 而言&#xff1a;减少 Full GC 的 STW(Stop the world)时间 内存使用技巧 • 减少对象本身大小 md 例 1&#xff1a;用基本类型就不要用包装类。 例…...

如何自学(黑客)网络安全

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

【vue】vue基础知识

1、插值表达式&属性绑定 <!--template展示给用户&#xff0c;相当于MVVM模式中的V--> <template><div class"first_div">//插值表达式<p>{{ message }}</p>//这里的参数是从父组件的template里传过来的<p>{{data_1}}</p…...

第一百一十一回 如何实现屏幕适配

文章目录 概念介绍实现方法示例代码 我们在上一章回中介绍了动画相关的内容&#xff0c;本章回中将介绍 如何适配屏幕.闲话休提&#xff0c;让我们一起Talk Flutter吧。 概念介绍 我们平常使用的手机屏幕大小不同&#xff0c;App运行在这些大小不同的屏幕上时效果却相同&…...

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇&#xff0c;在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下&#xff1a; 【Note】&#xff1a;如果你已经完成安装等操作&#xff0c;可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作&#xff0c;重…...

使用VSCode开发Django指南

使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架&#xff0c;专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用&#xff0c;其中包含三个使用通用基本模板的页面。在此…...

React---day11

14.4 react-redux第三方库 提供connect、thunk之类的函数 以获取一个banner数据为例子 store&#xff1a; 我们在使用异步的时候理应是要使用中间件的&#xff0c;但是configureStore 已经自动集成了 redux-thunk&#xff0c;注意action里面要返回函数 import { configureS…...

C++.OpenGL (14/64)多光源(Multiple Lights)

多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...

智能AI电话机器人系统的识别能力现状与发展水平

一、引言 随着人工智能技术的飞速发展&#xff0c;AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术&#xff0c;在客户服务、营销推广、信息查询等领域发挥着越来越重要…...

云原生安全实战:API网关Kong的鉴权与限流详解

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关&#xff08;API Gateway&#xff09; API网关是微服务架构中的核心组件&#xff0c;负责统一管理所有API的流量入口。它像一座…...

Python竞赛环境搭建全攻略

Python环境搭建竞赛技术文章大纲 竞赛背景与意义 竞赛的目的与价值Python在竞赛中的应用场景环境搭建对竞赛效率的影响 竞赛环境需求分析 常见竞赛类型&#xff08;算法、数据分析、机器学习等&#xff09;不同竞赛对Python版本及库的要求硬件与操作系统的兼容性问题 Pyth…...

【Veristand】Veristand环境安装教程-Linux RT / Windows

首先声明&#xff0c;此教程是针对Simulink编译模型并导入Veristand中编写的&#xff0c;同时需要注意的是老用户编译可能用的是Veristand Model Framework&#xff0c;那个是历史版本&#xff0c;且NI不会再维护&#xff0c;新版本编译支持为VeriStand Model Generation Suppo…...

相关类相关的可视化图像总结

目录 一、散点图 二、气泡图 三、相关图 四、热力图 五、二维密度图 六、多模态二维密度图 七、雷达图 八、桑基图 九、总结 一、散点图 特点 通过点的位置展示两个连续变量之间的关系&#xff0c;可直观判断线性相关、非线性相关或无相关关系&#xff0c;点的分布密…...

Linux基础开发工具——vim工具

文章目录 vim工具什么是vimvim的多模式和使用vim的基础模式vim的三种基础模式三种模式的初步了解 常用模式的详细讲解插入模式命令模式模式转化光标的移动文本的编辑 底行模式替换模式视图模式总结 使用vim的小技巧vim的配置(了解) vim工具 本文章仍然是继续讲解Linux系统下的…...