Java与数据库

目录

一.本文焦点:

二.数据库常用数据类型

三.对数据库操作

四.对数据库中的表操作

 五.条件表达

六. 表查询操作进阶

1.多表连接查询

1)交叉连接查询

2)内连接(取两表交集)

3)外连接

4)自连接

2.多表联合查询

3.子查询

七. 约束

1.not null

2. unique

3.primary key

4.default

​编辑 5. foreign key

 八.索引

1.创建索引

2.查看索引

3.删除索引

九.事务

事务的特性

事务中的问题

1.脏读

2.不可重复读

3.幻读

事务隔离级别:


一.本文焦点:

通过MySQL数据库自带客户端对数据库的操作及相关拓展

使用MySQL版本:5.7.27.0

二.数据库常用数据类型

整型浮点型

字符型

日期和时间类型

  如上可见:timestamp大小为4字节到2038年存储数据就满了,所以到时有很多程序系统可能会出Bug小编提醒你到时一定要注意,特别是坐飞机之类的。

三.对数据库操作

增:

create database (if not exists)数据库名 charsetutf8;

if not exists 的使用防止执行多条数据时此处数据库已经存在报错从而导致以下代码不再执行。

此处注意手动指定字符集为utf8,java默认字符集不支持中文。

但MySQL中utf8只是残本不支持表情等,Utf8mb4是完全体。

拓展:在Java中说到字符编码一般是unicode,而字符串编码一般是utf8,java内部自动实现转换。

删:

drop database 数据库名;

查:

查看当前库:

show databases;

改:

首先指定要进行操作的数据库:

然后对其进行添加表之类的操作.

四.对数据库中的表操作

增:

在当前库中添加表:

create table 表名(列名 数据类型,列名 数据类型........);

sql中列名一定在数据类型之前

在表中添加(插入)数据: 

单行插入:

insert into 表名 (输入创建表时的对应数据);

多行插入:

insert into 表名(列名)values (对应数据);

desc 表名;

查看表结构

查:

查看当前库中的表

show databases;

select 要查看列名 from 表名;

*为通配符表示全部列 

删:

drop table 表名;(整表删除) 

delete from 表名 要删除的行满足的条件;

如果没有条件表中数据全部删除但是表仍然存在

改:

update 表名 set 对列操作的表达式  满足更改的条件;

where 后跟的就是条件

 五.条件表达

采用where后跟条件的形式

条件表达符号:

算数运算:

比较运算: 

特别注意null参与的运算:

 

 逻辑运算:

where可与很多其它语句进行搭配使用 :

六. 表查询操作进阶

1.多表连接查询

1)交叉连接查询

select  要查询的列 from 表1,表2;

结果进行笛卡尔积,但是存在很多无效数据,可通过where条件等筛选

2)内连接(取两表交集)

select * from student (inner)join class on 筛选条件;

3)外连接

左(右)外连接(左(右)表及两者交集部分)

4)自连接

自连接需要对表起别名,这里就要使用as

一个表自己和自己进行笛卡尔积

select 要操作的列 from 表名 as 别名,同一个表名as 别名; 

 

2.多表联合查询

select * from 表名 where 条件 union select * from 表名 where 条件;(自动去重) 

select * from 表名 where 条件 union all select * from 表名 where 条件;(不自动去重)

3.子查询

select * from 表名 where 条件(select 与条件匹配的列 from 表名);

七. 约束

1.not null

使用not null指定列不能为空

2. unique

指定列不可重复

3.primary key

not null 与 unique 的结合体

主键唯一但可以有多列共同形成联合主键

4.default

指定列为空时设置默认值

 5. foreign key

关联其它表的主键或唯一键

此时进行删表操作只能先删除子表然后再删除父表,且自表受约束列数据必须存在于父表中 

 八.索引

1.创建索引

受unique,primary key,unique,foreign key 约束的键自带索引

create index 索引名 on 表名 (列名);

2.查看索引

show index from 表名; 

 

3.删除索引

对自己创建的索引进行删除

drop index 索引名 on 表名; 

九.事务

以一个人写代码另一人读代码为例

写代码为事务,读写的人写出的代码也是一个事务。

事务的特性

1.事务具有原子性,事务内的代码不可拆分,若执行中段则会触发自动回滚(rollback) 

2.事务具有持久性,事务一旦提交对数据的修改是储存在硬盘中的是永久的

3.事务具有隔离性,并发执行的事务之间不会相互干扰

4.事务具有一致性,所谓一致性,指的是数据处于一种有意义的状态,这种状态是语义上的而不是语法上的。最常见的例子是转帐。例如从帐户A转一笔钱到帐户B上,如果帐户A上的钱减少了,而帐户B上的钱却没有增加,那么我们认为此时数据处于不一致的状态。

事务中的问题

以上述读写代码为例介绍事务中的问题

1.脏读

写代码的人写的同时读的人在旁边记,中途读的人离开,而写的人对已经写的代码进行修改,等读的人读时发现和原来的并不一致。

2.不可重复读

写代码的人写的时读的人不读,而是等写的人写完之后提交到码云之后读的人再进行读,此时写的人又将代码修改提交,此时读的人发现两次代码不一样。

3.幻读

写代码的人写时不能读,读的人写时不能修改此代码,但是写的人又在其它文件上写了代码并提交,此时读代码的人读的结果集发生改变。

事务隔离级别

  1. 读未提交:READ-UNCOMMITTED
  2. 读已提交:READ-COMMITTED
  3. 可重复读:REPEATABLE-READ
  4. 串行:SERIALIZABLE

由下到上事务并发性逐渐下降。

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

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

相关文章

基于ANTLR4的大数据SQL编辑器解析引擎实践|得物技术

一、背景 随着得物离线业务的快速增长,为了脱离全托管服务的一些限制和享受技术发展带来的成本优化,公司提出了大数据Galaxy开源演进项目,将离线业务从全托管且封闭的环境迁移到一个开源且自主可控的生态系统中,而离线开发治理套…

HTML第四节

一.复合选择器 1.后代选择器 注:1.后代选择器会选中后代所有的要选择的标签 2.儿子选择器 3.并集选择器 注:1.注意换行,同时选中多种标签 4.交集选择器 注:1.标签选择器放在最前面,例如放在类选择器的前面 2.两个选择…

数字后端培训实战项目六大典型后端实现案例

Q1:请教一个问题,cts.sdc和func.sdc在innovus用如何切换?在flow哪一步切换输入cts.sdc?哪一步切换到func.sdc,具体如何操作? 这个学员其实就是在问使用分段长clock tree时具体的flow流程是怎么样的?针对时…

linux 使用阿里云盘 阿里网盘

可参考&#xff1a;https://blog.csdn.net/qq_41174671/article/details/127310715 一、对文件<100M的可以使用如下方法&#xff1a; 1.临时使用阿里网盘 wget https://github.com/tickstep/aliyunpan/releases/download/v0.2.7/aliyunpan-v0.2.7-linux-amd64.zip unzip …

性能测试--大厂面试问题解析

性能测试作为软件开发中的关键环节&#xff0c;确保系统在高负载下仍能高效运行。面试中&#xff0c;相关问题常被问及&#xff0c;包括定义、类型、工具选择、规划与执行方法、常见瓶颈、敏捷环境下的处理、监控作用、虚拟用户数量确定、功能测试的区别、JMeter工作原理、HTTP…

hom_mat2d_to_affine_par 的c#实现

hom_mat2d_to_affine_par 的c#实现 背景&#xff1a;为课室贡献一个通用函数&#xff0c;实现halcon算子的同等效果&#xff0c;查询csdn未果&#xff0c;deepseek二哥与chtgpt大哥给不了最终程序&#xff0c;在大哥与二哥帮助下&#xff0c;最终实现同等效果。 踩坑&#xf…

前端跨域设置 withCredentials: true

在做登录认证的时候&#xff0c;会出现请求未登录的情况&#xff0c;查看请求头的时候发现并没有把登录时的cookie设置到第二次的请求头里面。查看资料才知道跨域请求要想带上cookie&#xff0c;必须要在ajax请求里加上 withCredentials: true 再次访问发现请求头可以携带cook…

【漫话机器学习系列】122.相关系数(Correlation Coefficient)

深入理解相关系数&#xff08;Correlation Coefficient&#xff09; 1. 引言 在数据分析、统计学和机器学习领域&#xff0c;研究变量之间的关系是至关重要的任务。我们常常想知道&#xff1a;当一个变量变化时&#xff0c;另一个变量是否也会随之变化&#xff1f;如果会&…

uniapp+微信小程序+地图+传入多个标记点显示+点击打开内置地图导航+完整代码

一、效果展示 二、完整代码 <template><view class"container"><map class"map-container" :latitude"latitude" :longitude"longitude" :markers"markers" :controls"controls" show-location m…

高效数据管理:WPF中实现带全选功能的DataGrid复选框列

目录 引言项目结构与准备工作XAML布局设计后台代码实现视图模型设计总结引言 在许多应用场景中,我们需要在表格中选择多行数据进行批量操作,如删除、导出等。为了提高用户体验,通常会在表格的第一列添加一个复选框,允许用户逐个或批量选择数据项。本文将详细介绍如何在 WP…

一周学会Flask3 Python Web开发-SQLAlchemy简介及安装

锋哥原创的Flask3 Python Web开发 Flask3视频教程&#xff1a; 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili SQLAlchemy是Python编程语言下的一款开源软件。提供了SQL工具包及对象关系映射&#xff08;ORM&#xff09;工具&#xff0c;…

《Linux C 智能 IO 矩阵:输入输出的自适应数据流转》

1. 标准库IO简介 标准库IO特点&#xff1a;通过操作系统提供的接口&#xff08;API&#xff09;和操作系统进行交互。&#xff08;接近100个函数&#xff09; 1.1. IO的过程 操作系统&#xff1a;向上为用户提供操作接口&#xff0c;向下为统筹控制硬件。 操作系统的组成&#…

【大模型理论篇】--Mixture of Experts架构

Mixture of Experts&#xff08;MoE&#xff0c;专家混合&#xff09;【1】架构是一种神经网络架构&#xff0c;旨在通过有效分配计算负载来扩展模型规模。MoE架构通过在推理和训练过程中仅使用部分“专家”&#xff08;子模型&#xff09;&#xff0c;优化了资源利用率&#x…

智能云呼叫中心如何升级企业服务?带来新商机

当某国际零售品牌通过部署云呼叫中心将客服响应效率提升73%时&#xff0c;这场由云计算掀起的客户服务革命已悄然渗透到企业运营的毛细血管。在数字化转型的深水区&#xff0c;云呼叫中心正从"成本中心"蜕变为"价值引擎"&#xff0c;推动企业构建差异化的服…

java+jvm笔记

JUC synchornized原理&#xff08;java锁机制&#xff09;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 升级顺序&#xff1a; 无锁偏向锁&#xff0c;只有一个线程来访问轻量级锁&#xff0c;有两个线程交替访问重锁&#xff0c;两个及以上线…

CES Asia 2025增设未来办公教育板块,科技变革再掀高潮

作为亚洲消费电子领域一年一度的行业盛会&#xff0c;CES Asia 2025&#xff08;第七届亚洲消费电子技术贸易展&#xff09;即将盛大启幕。今年展会规模再度升级&#xff0c;预计将吸引超过500家全球展商参展&#xff0c;专业观众人数有望突破10万。除了聚焦人工智能、物联网、…

Sass 模块化革命:深入解析 @use 语法,打造高效 CSS 架构

文章目录 前言use 用法1. 模块化与命名空间2. use 中 as 语法的使用3. as * 语法的使用4. 私有成员的访问5. use 中with默认值6. use 导入问题总结下一篇预告&#xff1a; 前言 在上一篇中&#xff0c;我们深入探讨了 Sass 中 import 语法的局限性&#xff0c;正是因为这些问题…

AI-Deepseek + PPT

01--Deepseek提问 首先去Deepseek问一个问题&#xff1a; Deepseek的回答&#xff1a; 在汽车CAN总线通信中&#xff0c;DBC文件里的信号处理&#xff08;如初始值、系数、偏移&#xff09;主要是为了 将原始二进制数据转换为实际物理值&#xff0c;确保不同电子控制单元&…

解锁前端表单数据的秘密旅程:从后端到用户选择!✨

&#x1f604; 解锁前端表单数据的秘密旅程&#xff1a;从后端到用户选择&#xff01;✨ 嘿&#xff0c;技术爱好者们&#xff01;&#x1f44b; 你有没有在开发中遇到过这样的困惑&#xff1a;表单里的数据&#xff08;比如图片附件、识别点 ID&#xff09;从哪儿来的&#x…

【Linux】进程间通信 续

目录 管道的原理&#xff08;匿名管道&#xff09; 核心原理 站在内核的角度看管道的本质 接口 创建管道文件 代码示例 管道的特征 管道读写端的四种情况 管道的应用场景 命令行的管道。 使用管道实现进程池 初始化 控制子进程 退出 命名管道 命名管道的理解 …