【JavaWeb】MySQL基础操作

news2024/11/25 4:57:28

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

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

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

相关文章

OpenCV实例(八)车牌字符识别技术(一)模式识别

车牌字符识别技术&#xff08;一&#xff09;模式识别 1.模式识别流程2. 模式识别方式 影响并导致汽车牌照内字符出现缺损、污染、模糊等情况的常见因素有照相机的性能、采集车辆图像时光照的差异、汽车牌照的清洁度等。为了提高汽车牌照字符识别的准确率&#xff0c;本节将把英…

开发过程中遇到的问题以及解决方法

巩固基础&#xff0c;砥砺前行 。 只有不断重复&#xff0c;才能做到超越自己。 能坚持把简单的事情做到极致&#xff0c;也是不容易的。 开发过程中遇到的问题以及解决方法 简单易用的git命令 git命令&#xff1a; 查看有几个分支&#xff1a;git branch -a 切换分支&#…

深入浅出cgroup

一、什么是cgroup Cgroup是linux内核用来控制系统资源的机制&#xff0c;它将操作系统中的所有进程以组为单位划分&#xff0c;给这一组进程定义对某一类资源特定的访问权限。Cgroup用子系统&#xff08;subsystem&#xff09;来描述所能控制的系统资源&#xff0c;子系统具有…

四、Netty

目录 4.1 原生IO存在的问题4.2 Netty官网说明4.3 Netty的优点4.4 Netty的版本 4.1 原生IO存在的问题 4.2 Netty官网说明 https://netty.io/ 4.3 Netty的优点 4.4 Netty的版本 netty 下载地址&#xff1a;

android 如何分析应用的内存(十八)终章——使用Perfetto查看内存与调用栈之间的泄露

android 如何分析应用的内存&#xff08;十八&#xff09; 在前面两篇文章中&#xff0c;先是介绍了如何用AS查看Android的堆内存&#xff0c;然后介绍了使用MAT查看 Android的堆内存。AS能够满足基本的内存分析需求&#xff0c;但是无法进行多个堆的综合比较&#xff0c;因此…

OptaPlanner笔记1

1.1 什么是OptaPlanner 每个组织都面临规划问题&#xff1a;为产品或服务提供有限的受约束的资源&#xff08;员工、资产、时间和金钱&#xff09;。OptaPlanner用来优化这种规划&#xff0c;以实现用更少的资源来做更多的业务。 这被称为Constraint Satisfaction Programming…

使用maven打包时如何跳过test,有三种方式

方式一 针对spring项目&#xff1a; <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skipTests>true</skipTests> </configuration> …

Vim学习(三)—— Git Repo Gerrit

Git、Gerrit、Repo三者的概念及使用 三者各自作用&#xff1a; git&#xff1a;版本管理库&#xff0c;在git库中没有中心服务器的概念&#xff0c;真正的分布式。 repo&#xff1a;repo就是多个git库的管理工具。如果是多个git库同时管理&#xff0c;可以使用repo。当然使用…

探讨uniapp的navigator 页面跳转问题

navigator 页面跳转。该组件类似HTML中的<a>组件&#xff0c;但只能跳转本地页面。目标页面必须在pages.json中注册。 "tabBar": {"color": "#7A7E83","selectedColor": "#3cc51f","borderStyle": "bl…

五、Netty高性能架构设计

目录 5.1 线程模型基本介绍5.2 传统阻塞I/O服务模型5.2.1 工作原理5.2.2 阻塞IO模型特点5.2.3 阻塞IO存在的问题 5.3 Reactor模式5.3.1 针对传统阻塞IO服务模型的2个缺点&#xff0c;解决方案5.3.2 IO复用 线程池&#xff0c;就是Reactor模式设计的基本思想 5.1 线程模型基本介…

蓝桥杯-统计子矩阵

统计子矩阵 题目链接 思路&#xff1a; 使用前缀和滑动窗口 &#xff0c;可以先计算出纵向或横向的前缀和&#xff0c;matrix[i][j]表示前i行第j列之和 然后遍历上边界top和下边界buttom&#xff0c;再这个上下边界内使用滑动窗口&#xff0c;由于前面维护了纵向前缀和&…

榜单!全年或超150万辆!行泊一体系统方案供应商TOP10出炉

作为域控集中架构下的产物&#xff0c;智能驾驶赛道的行泊一体方案正在成为市场的主流配置&#xff0c;同时&#xff0c;各类计算&#xff08;芯片&#xff09;方案也都在发力这个细分赛道。 高工智能汽车研究院认为&#xff0c;和NOA不同&#xff0c;作为高低速组合功能的行泊…

CAD随机粗糙度表面插件

插件介绍 CAD随机粗糙度表面插件可用于在AutoCAD软件内生成随机高度分布的表面三维实体模型&#xff0c;适用于科研论文绘图、有限元建模、随机地形模拟等方面的应用。 插件可指定的参数有三维模型的长、宽、高&#xff1b;随机粗糙度表面信息中网格尺寸控制模型生成的精细程…

【LeetCode-简单】剑指 Offer 29. 顺时针打印矩阵(详解)

题目 输入一个矩阵&#xff0c;按照从外向里以顺时针的顺序依次打印出每一个数字。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,2,3],[4,5,6],[7,8,9]] 输出&#xff1a;[1,2,3,6,9,8,7,4,5]示例 2&#xff1a; 输入&#xff1a;matrix [[1,2,3,4],[5,6,7,8],[9,10,1…

根据源码,模拟实现 RabbitMQ - 从需求分析到实现核心类(1)

目录 一、需求分析 1.1、对 Message Queue 的认识 1.2、消息队列核心概念 1.3、Broker Server 内部关键概念 1.4、Broker Server 核心 API &#xff08;重点实现&#xff09; 1.5、交换机类型 Direct 直接交换机 Fanout 扇出交换机 Topic 主题交换机 1.6、持久化 1.7…

美团软件测试工程师高频面试题和答案

前言 8月底了&#xff0c;马上到了大家的找工作的高峰期了&#xff01;为了帮助大家更好的备战面试和跳槽&#xff0c;可以在众多求职者中脱颖而出&#xff0c;我帮大家准备了丰富的企业真实面试题&#xff0c;大家赶紧收藏吧&#xff01; 1、说下你最近做的项目&#xff0c;你…

C语言学习系列-->看淡指针(2)

文章目录 前言一、数组名的理解二、使用指针访问数组三、一维数组传参本质四、二级指针五、指针数组六、指针数组模拟二维数组 前言 不把指针学的扎实&#xff0c;可不敢说自己C语言基础学的好 一、数组名的理解 #include <stdio.h> int main() {int arr[10] { 1,2,3,4…

利用python实现批量登录网络设备进行日常巡检

利用python实现批量登录网络设备 实现ensp与物理机互通ensp 配置配置网络设备远程登录 用python实现批量登录常见问题 通过阅读本文可以学习自动化运维相关知识&#xff0c;本文章代码可以直接使用&#xff0c;通过批量登录功能后&#xff0c;可以按照自己意愿进行功能更改与完…

电路基础笔记(更新中)

导体 导体是指那些能够轻易传递电荷&#xff08;电子&#xff09;的物质。在固体、液体或气体中&#xff0c;电子可以在导体内部自由移动&#xff0c;从而形成电流。导体的电导性取决于它的电子结构和能带特性。常见的导体包括金属&#xff08;如铜、铝、铁等&#xff09;以及一…

UNIX网络编程——TCP协议API 基础demo服务器代码

目录 一.TCP客户端API 1.创建套接字 2.connect连接服务器​编辑 3.send发送信息 4.recv接受信息 5.close 二.TCP服务器API 1.socket创建tcp套接字(监听套接字) 2.bind给服务器套接字绑定port,ip地址信息 3.listen监听并创建连接队列 4.accept提取客户端的连接 5.send,r…