MySQL数据库系统学习笔记(3)
Oracle与MySQL一般性对比
只做大概性的罗列性质的大致化整理,后续部分有代码对比实例,仅做参考,请以更全面具体的专业性文章和手册为准
一、基础架构差异1. 数据库架构Oracle:
采用”实例-数据库”的多租户架构
一个实例可管理多个PDB(可插拔数据库)
共享内存区域(SGA)设计复杂精细
MySQL:
简单直接的”实例-数据库”架构
默认存储引擎InnoDB采用表空间管理
缓冲池(Buffer Pool)是主要内存区域
2. 存储引擎Oracle:
单一存储引擎架构
自动管理所有数据存储细节
MySQL:
插件式存储引擎(InnoDB/MyISAM等)
不同引擎特性差异大(如事务支持、锁机制)
二、数据类型差异1. 数值类型
类型
Oracle
MySQL
整数
NUMBER(10)
INT/BIGINT
小数
NUMBER(10,2)
DECIMAL(10,2)
浮点数
BINARY_FLOAT
FLOAT/DOUBLE
2. 字符串类型
类型
Oracle
MySQL
定长字符串
CHAR( ...
MySQL数据库系统学习笔记(2)
mysql数据库系统学习笔记(2)mysql事物事物是一组完整操作的集合,理解起来就是一个打包好的解决固定问题的脚本
在一组操作中任何一个环节出现问题都无法完成一个事物操作,例如转账操作,A给B转账,A没发出或者B没收到都不能构成一个事物
在 MySQL 中只有使用了Innodb数据库引擎的数据库或表才支持事务。
事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。
事务用来管理insert、update、delete语句
提交事物在mysql中有两种方式进行事物的操作
自动提交事物 在 MySQL 命令行的默认设置下,事务都是自动提交的,即执行 SQL 语句后就会马上执行 COMMIT 操作。因此要显式地开启一个事务务须使用命令BEGIN或 START TRANSACTION,或者执行命令 SET AUTOCOMMIT=0,用来禁止使用当前会话的自动提交。
理解为自动挡模式,自动帮你踩离合,其中的条件出现问题时候会自动回滚到事物条件前
AS:
1234-- 就像开自动挡汽车,MySQL帮你踩离合UPDATE 钱包表 SET 余额 ...
MySQL数据库系统学习笔记(1)
MySQL数据库系统学习笔记一、数据库基础概念1. 核心组件**数据库(DB)**:存储数据的文件系统DBMS:数据库管理系统软件(如MySQL)SQL:结构化查询语言(操作数据库的标准)
2. 数据库分类关系型:MySQL/Oracle/SQL Server(二维表结构)非关系型:Redis/HBase(键值对/文档型)
二、MySQL安装与登录1. 命令行登录123mysql -uroot -proot# -u 用户名# -p 密码
三、SQL语言分类
D:定义 M:操作 Q:查询 C:控制
这部分很重要,重点记忆
DDL:数据定义语言,用来操作数据库对象(数据库,表,字段)
DML:数据操作语言,用来对数据库中表的数据进行增删改
DQL:数据查询语言,用来对数据库中表的数据进行查询操作
DCL:数据控制语言,用来创建数据库用户,控制访问权限
字符库意义对照表
SHOW[显示]
SELECT[查询]
DATABASE[数据库]
IF[如果]
NOT[没有]
EXISTS[存在]
DEFAULT[默认]
CHARSET[字符集]
UTF8 ...
karword项目开发日志(1)
karword项目开发日志
该程序是一个卡片式树的综合多人辅助开发平台,内置功能,可视为迷你飞书
项目概述开发一个面向团队的知识管理协作平台,核心功能包括:
卡片式文档管理系统
可视化图表编辑(流程图/结构图/甘特图)
实时团队协作
集成通讯功能
技术架构前端技术栈
模块
技术选型
备注
框架
React 18 + TypeScript
使用Vite构建工具
状态管理
Redux Toolkit
配合RTK Query处理API
UI组件库
Ant Design 5.x
企业级UI组件
富文本编辑器
Tiptap
基于ProseMirror的现代编辑器
图表渲染
Mermaid + ECharts
Mermaid用于流程图/时序图
实时协作
Socket.IO Client
与后端WebSocket通信
拖拽交互
react-dnd
卡片和图表元素拖拽
后端技术栈
模块
技术选型
备注
主框架
Spring Boot 3.x
Java 17+
数据库
PostgreSQL 15
关系型数据库
O ...
算法与数据结构核心思想与解题蓝图
算法与数据结构核心思想与解题蓝图目录
哈希(Hash)
双指针(Two Pointers)
滑动窗口(Sliding Window)
子串(Substring)
普通数组(Array)
矩阵(Matrix)
链表(Linked List)
二叉树(Binary Tree)
图论(Graph Theory)
回溯(Backtracking)
二分查找(Binary Search)
栈(Stack)
贪心算法(Greedy)
动态规划(DP)
多维动态规划(Multi-dimensional DP)
技巧(Tricks)
接下来我将简单介绍以上16种算法思想及其使用场景
哈希:快速查找和存储数据双指针:有序数组/链表问题滑动窗口:子数组/子串问题子串:字符串匹配问题普通数组:数组遍历、查找矩阵:二维数组遍历链表:遍历、反转二叉树:遍历、搜索图论:图的遍历回溯:组合、排列二分查找:有序数组查找栈:逆序遍历贪心算法:局部最优解动态规划:最优解多维动态规划:多维数组问题技巧:位运算、前缀和
哈希(Hash)核心思想:利用哈希表(O(1)时间复杂度)快速查找和存储数据适用 ...
java快速学习速查(5)
java快速学习速查(5)
这个部分包含了Java面向对象部分的全部数据类型,继承,重载,多态,抽象类,封装,接口,枚举,包,反射
接下来是详解部分:
Java 继承全面解析继承是面向对象编程的三大特性之一(封装、继承、多态),下面我将系统地讲解 Java 继承的各种功能和使用场景。
一、继承基础1. 基本语法12345678910111213141516171819202122232425262728293031323334class Animal { private String name; public Animal(String name) { this.name = name; } public void eat() { System.out.println(name + "正在吃东西"); }}class Dog extends Animal { private String breed; ...
Java操作蓝图:常用数据结构与方法
Java操作蓝图:常用数据结构与方法
这是为了可以快速使用各种常用数据结构和方法的蓝图集合,通过给出一个空框架,提高效率。
最近刷题陷入了迷茫,往往不知道该用什么数据结构,所以我决定写一个蓝图,方便以后使用。
目录
数组(Array)
列表(List/ArrayList)
链表(LinkedList)
栈(Stack)
队列(Queue)
优先队列(PriorityQueue)
集合(Set/HashSet)
有序集合(TreeSet)
映射(Map/HashMap)
有序映射(TreeMap)
字符串操作(String)
工具类(Collections/Arrays)
接下来我对以上12个常用数据结构的用途做下简单的描述数组:
用途:固定大小的连续内存空间,存储相同类型元素
解决问题:快速随机访问,内存紧凑列表:
用途:动态数组,自动扩容
解决问题:需要动态调整大小的数组链表:
用途:双向链表实现,高效插入删除
解决问题:频繁在列表中间进行插入/删除操作栈:
用途:后进先出(LIFO)结构
解决问题:需要后进先出逻辑的场景,如撤 ...
java快速学习速查(4)
java快速学习速查(4)
尽快吧,这个毕竟得快点做完,本章是初级部分最后一篇了主要内容为数组,日期时间,正则表达式,方法,构造方法,Stream和File和IO,scanner类,异常处理
Java 数组全面解析数组是 Java 中存储固定大小同类型元素的数据结构。下面我将系统地讲解 Java 数组的各种功能和使用场景。
一、数组基础1. 声明和初始化数组12345678// 声明数组的两种方式int[] numbers1; // 推荐方式int numbers2[]; // C风格,不推荐// 创建数组的三种方式int[] arr1 = new int[5]; // 长度为5的数组,元素初始为0int[] arr2 = {1, 2, 3, 4, 5}; // 直接初始化int[] arr3 = new int[]{1, 2, 3}; // 匿名数组初始化
2. 访问数组元素1234567891011int[] numbers = {10, 20, 30, 40, 50};// 获取数 ...
java快速学习速查(3)
java快速学习速查(3)
这个部分涉及的方面是循环结构,条件语句,switch case,Number&Math,Character,String,StringBuffer几个方面,对照查询学习
Java循环结构全面解析循环是编程中控制流程的重要结构,Java提供了多种循环方式以满足不同场景的需求。下面我将系统地讲解Java中的循环结构及其应用。
一、循环结构类型1. while循环语法结构:
123while (条件表达式) { // 循环体}
特点:
先判断条件,后执行循环体
可能一次都不执行
适合不确定循环次数的场景
示例:
1234567891011121314151617// 计算1-100的和int sum = 0;int i = 1;while (i <= 100) { sum += i; i++;}System.out.println("Sum: " + sum);// 读取用户输入直到输入quitScanner scanner = new Scanner(System ...
java快速学习速查(2)
java快速学习速查(2)java快速学习速查(2)高速通过中ing……
本篇为变量类型,变量命名规则,修饰符,运算符
Java变量类型全面解析变量是Java程序中最基本的存储单元,理解不同类型的变量及其特性是Java编程的基础。下面我将从实际开发角度,深入讲解Java中的各种变量类型。
一、变量类型体系123456789101112Java变量类型├── 按声明位置分│ ├── 成员变量(类中声明)│ │ ├── 实例变量(非static)│ │ └── 类变量(static)│ └── 局部变量(方法/块中声明)│ ├── 方法局部变量│ ├── 代码块变量│ └── 参数变量└── 按数据类型分 ├── 基本类型变量 └── 引用类型变量
二、局部变量详解1. 核心特性
作用域:仅在声明它的方法/代码块内有效
生命周期:方法/块开始执行时创建,执行结束时销毁
存储位置:栈内存
初始化要求:必须显式初始化后才能使用
2. 使用示例123456789101112131415161718 ...