-
数据库的定义
数据库是按照数据结构来组织、存储和管理数据的仓库,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的数据集合。
-
数据库的三级模式结构
外模式:用户视图,描述用户能看到的数据。
模式:逻辑结构,描述数据的全局逻辑结构。
内模式:物理存储结构,描述数据在存储介质上的组织方式。
-
数据的独立性
物理独立性:数据的物理存储结构改变时,应用成成无需修改。
逻辑独立性:数据的逻辑结构改变时,应用程序无需修改。
-
SQL(Select Query Language)
DDL(Data Definition Language,数据定义语言):create、alter、drop
DML(Data Manipulation Language,数据操作语言):insert、delete、select、update、call、explain plan
DCL(Data Control Language,数据控制语言):grant、revoke
TCL(Transaction Control Language,事务控制语言):commit、rollback
-
连接方式
内连接:只返回两个表中匹配的行
左连接:返回左表所有行,右表匹配的行,右表不匹配的行值为NULL
右连接:返回右表所有行,坐标匹配的行,左表不匹配的行值为NULL
-
对于一个join连接查询,过滤条件的字段一般放在什么位置
- INNER JOIN 关联字段放在on后面;非关联字段放在on或者where后面都可以,通常放在where后面
- LEFT JOIN 左表字段 关联字段放在on后面;非关联字段看需求,如果最终结果左表要全部保留,就放在on后面,如果最终结果左表需要根据这个字段过滤,那么就放where后面
- LEFT JOIN 右表字段 关联字段放在on后面;非关联字段看需求,如果最终结果左表要全部保留,就放在on后面,如果最终结果左表需要根据这个字段过滤,那么就放where后面
-
索引的类型
普通索引、唯一索引、组合索引、全文索引
聚簇索引、非聚簇索引
-
索引会失效的情况
对索引列进行运算或函数操作
使用不等于进行查询
使用OR连接条件,且OR前后条件都有索引
存在数据类类型隐形转换
使用LIKE以通配符开头
-
sql优化常用手段
在频繁使用、区分度高的列上创建索引。
使用组合索引时,遵循最左前缀原则。
避免索引失效。
查询索引上的字段,避免回表。
对于连接查询,小表驱动大表(过滤后数据量少的标作为驱动表)。
select后只带上需要的字段。
-
事务及其特性
事务是数据库操作的最小逻辑单元,有ACID特性。
Atomicity 原子性:要么全部成功、要么全部失败。
Consistency 一致性:事务执行前后数据库状态保持一致。
Isolation 隔离性:多个事务并发执行互不干扰。
Durability 持久性:事务提交后对数据库的修改是永久的,会持久化到磁盘上保存。
-
事务的隔离级别
- 读未提交:可能产生脏读、不可重复读、幻读。一个事务还没提交时,他做的变更就能被别的事务看到。
- 读已提交:避免脏读,可能产生不可重复读、幻读。一个事务提交后,它做的变更才能被其他事务看到。
- 可重复读:避免脏读、不可重复读,可能产生幻读。一个事务执行过程中看到的数据,总是和这个事务在启动时看到的数据时一致的。
- 串行化:不能并发。
- 脏读、不可重复读、幻读
脏读:事务A读取了事务B未提交的数据。若事务B回滚,事务A读取的数据无效;
不可重复读:事务A多次读取同一行数据,结果因事务B的修改而不同;
幻读:事务A两次相同查询返回行数不同,因事务B插入了符合条件的新数据。
-
死锁
死锁的定义:两个或多个事务互相等待对放释放锁,形成循环等待。
避免方法:按相同顺序访问资源、设置超时时间、使用死锁检测机制。
-
InnoDB和MyISAM的区别
InnoDB:支持事务、外键、行锁,适合写操作多的场景。
MyISAM:不支持事务、外键、行锁,支持表锁,适合读操作多的场景。
数据库基础知识
无所事事的海绵宝宝2026-01-06 9:27
相关推荐
funfan051711 分钟前
【运维】MySQL数据库全量备份与恢复实战指南:从入门到精通+VX:Fegn089513 分钟前
计算机毕业设计|基于springboot + vue在线音乐播放系统(源码+数据库+文档)tq108638 分钟前
通用数据引用表示法:基于协议-URI-JSONPath的简洁数据定位规范+VX:Fegn089544 分钟前
计算机毕业设计|基于springboot + vue律师咨询系统(源码+数据库+文档)manuel_897571 小时前
六 系统安全液态不合群2 小时前
【面试题】MySQL 三层 B+ 树能存多少数据?龙亘川3 小时前
【课程5.1】城管住建核心功能需求分析:市政设施、市容秩序等场景痛点拆解飞鸟真人3 小时前
Redis面试常见问题详解fanruitian4 小时前
Springboot项目父子工程super_lzb4 小时前
mybatis拦截器ParameterHandler详解