【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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/70461.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【uniapp】uniapp使用微信开发者工具制作骨架屏:

文章目录 一、效果&#xff1a;二、过程&#xff1a; 一、效果&#xff1a; 二、过程&#xff1a; 【1】微信开发者工具打开项目&#xff0c;生成骨架屏&#xff0c;将wxml改造为vue页面组件&#xff0c;并放入样式 【2】页面使用骨架屏组件 【3】改造骨架屏&#xff08;去除…

微信小程序开发价格

小程序开发费用 小程序的开发费用是很多企业和个人在规划项目时需要重点考虑的一个方面。本文将从微信认证费、域名、服务器、程序开发费用、微信支付费率以及维护费用等多个角度为大家分析小程序开发费用的组成。 1. 微信认证费&#xff1a;作为小程序的一种信任凭证&#xf…

【Spring】实现FactoryBean接口

FactoryBean FactoryBean是一个接口&#xff0c;需要创建一个类来实现该接口&#xff0c;该接口中有三个方法&#xff0c;通过重写其中的两个方法&#xff0c;获得一个对象&#xff0c;三个方法分别是&#xff1a; 1.getObject():通过一个对象交给IOC容器管理2.getObjectType(…

ArcGIS在洪水灾害普查、风险评估及淹没制图中应用教程

详情点击链接&#xff1a;ArcGIS在洪水灾害普查、风险评估及淹没制图中应用教程 一&#xff1a;洪水普查技术规范 1.1 全国水旱灾害风险普查实施方案 1.2 洪水风险区划及防治区划编制技术要求 1.3 山丘区中小河流洪水淹没图编制技术要求 二&#xff1a;ArcGIS及数据管理 …

REDIS主从配置

目录 前言 一、概述 二、作用 三、缺点 四、redis主从复制的流程 五、搭建redis主从复制 总结 前言 Redis的主从配置是指在Redis集群中&#xff0c;将一个Redis节点配置为主节点&#xff08;master&#xff09;&#xff0c;其他节点配置为从节点&#xff08;slave&#xff09;…

用友移动管理系统 任意文件上传漏洞复现(HW0day)

0x01 产品简介 用友移动系统管理是用友公司推出的一款移动办公解决方案&#xff0c;旨在帮助企业实现移动办公、提高管理效率和员工工作灵活性。它提供了一系列功能和工具&#xff0c;方便用户在移动设备上管理和处理企业的系统和业务。 0x02 漏洞概述 用友移动管理系统 uploa…

【学会动态规划】买卖股票的最佳时机 III(17)

目录 动态规划怎么学&#xff1f; 1. 题目解析 2. 算法原理 1. 状态表示 2. 状态转移方程 3. 初始化 4. 填表顺序 5. 返回值 3. 代码编写 写在最后&#xff1a; 动态规划怎么学&#xff1f; 学习一个算法没有捷径&#xff0c;更何况是学习动态规划&#xff0c; 跟我…

【ARM64 常见汇编指令学习 15 -- ARM 标志位的学习】

文章目录 ARM 标志位介绍Zero Condition flag(零标志位)零标志位判断实例 上篇文章&#xff1a;ARM64 常见汇编指令学习 14 – ARM 汇编 .balign,.balignw,.balign 伪指令学习 下篇文章&#xff1a;ARM64 常见汇编指令学习 16 – ARM64 SMC 指令 ARM 标志位介绍 在ARM架构中&am…

JavaWeb-Servlet服务连接器(二)

目录 Request&#xff08;获取请求信息&#xff09; 1.获取请求行内容 2.解决乱码问题 3.获取请求头部分 4.获取请求体 5.其他功能 Request&#xff08;获取请求信息&#xff09; 工作流程&#xff1a; 1.通过请求的url的资源路径&#xff0c;tomcat会生成相应的Servlet实…

Mysql:Access denied for user ‘root‘@‘localhost‘ (using password:YES)解决方案

最近在配置Maven以及Mybatis时&#xff0c;连接localhost数据库时出现无法连接&#xff0c;用cmd测试时报错&#xff1a;Access denied for user ‘ODBC’‘localhost’ (using password: NO)&#xff0c;这个意思就是不允许远程访问&#xff0c;一开始笔者进入mysql试了一下是…

由于找不到d3dx9_42.dll,无法继续执行代码。重新安装程序可能会解决此问题

d3dx9_42.dll是一个动态链接库文件&#xff0c;它是Microsoft DirectX 9的一部分。这个文件包含了DirectX 9的一些函数和资源&#xff0c;用于支持计算机上运行基于DirectX 9的应用程序和游戏。它通常用于提供图形、音频和输入设备的支持&#xff0c;以及其他与图形和游戏相关的…

Playable 动画系统

Playable 基本用法 Playable意思是可播放的&#xff0c;可运行的。Playable整体是树形结构&#xff0c;PlayableGraph相当于一个容器&#xff0c;所有元素都被包含在里面&#xff0c;图中的每个节点都是Playable&#xff0c;叶子节点的Playable包裹原始数据&#xff0c;相当于输…

Vue+SpringBoot后台管理系统:Vue3+TypeScript项目搭建(一)

写在开始:一个搬砖程序员的随缘记录文章目录 一、Node安装二、Vue CLI安装三、相关的版本四、创建Vue3TypeScript项目五、Vue项目初始化六、项目启动 一、Node安装 查看Note版本 node -v查看npm版本 npm -v然后将npm升级至最新版本 npm -g install npm将npm下载源换至http:…

RS-232标准

目录 1、概述2、RS-232接口的特点3、RS-232接口协议【仿真】 1、概述 RS-232接口是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换…

C语言 二级指针和多级指针

什么是二级指针&#xff1f; 假设&#xff1a; int a 10;int * p &a;如上&#xff0c;p是指针变量&#xff0c;寄存的是a的地址&#xff0c;指向的是元素a 那么&#xff0c;指针变量p有地址吗&#xff1f;指针变量p的指针指向的是&#xff1f; int * * pp &p; …

【Spring Boot 源码学习】自动装配流程源码解析(上)

自动装配流程源码解析&#xff08;上&#xff09; 引言往期内容主要内容1. 自动配置开关2. 加载自动配置组件3. 自动配置组件去重 总结 引言 上篇博文&#xff0c;笔者带大家从整体上了解了AutoConfigurationImportSelector 自动装配逻辑的核心功能及流程&#xff0c;由于篇幅…

Visual Studio 2022安装教程(英文版)

文章目录 1.下载安装 1.下载 官网地址&#xff1a;https://visualstudio.microsoft.com/zh-hans/vs/ 选择第一个社区版本&#xff1a;Community 2022 安装 1.将下载好的文件保存到桌面&#xff0c;双击点开 2.等待visual studio installer配置好 3.点击安装后会来到配件选…

KeePass CVE-2023-32784:进程内存转储检测

KeePass CVE-2023-32784&#xff1a;进程内存转储检测 KeePass 是一种流行的开源密码管理器&#xff0c;可以在 Windows、Mac 或 Linux 上运行。该漏洞允许从正在运行的进程的内存中以明文形式提取主密钥。主密钥将允许攻击者访问所有存储的凭据 强烈建议更新到KeePass 2.54以…

机器学习基础之《特征工程(4)—特征降维》

一、什么是特征降维 降维是指在某些限定条件下&#xff0c;降低随机变量&#xff08;特征&#xff09;个数&#xff0c;得到一组“不相关”主变量的过程 1、降维 降低维度 ndarry 维数&#xff1a;嵌套的层数 0维&#xff1a;标量&#xff0c;具体的数0 1 2 3... …

认识http的方法、Header、状态码以及简单实现一个http的业务逻辑

文章目录 http的方法http状态码http重定向http常见Header实现简单业务逻辑Protocol.hppUtil.hppServer.hppServer.cc 效果 http的方法 方法说明支持的HTTP版本GET获取资源1.0/1.1POST传输实体主体1.0/1.1PUT传输文件1.0/1.1HEAD获得报文首部1.0/1.1DELETE删除文件1.0/1.1OPTIO…