# mySqlite **Repository Path**: hu-xiao-yun/mySqlite ## Basic Information - **Project Name**: mySqlite - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-07-18 - **Last Updated**: 2024-07-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 让我们构建一个简单的数据库mySqlite--用 C 从头开始编写 sqlite 克隆 [原项目网页](https://cstack.github.io/db_tutorial/) [GitHub项目](https://github.com/cstack/db_tutorial) **本项目是跟着https://cstack.github.io/db_tutorial/实现的sqlite,下面是官网对项目的介绍** ### How Does a Database Work? - **What format is data saved in? (in memory and on disk)** - **When does it move from memory to disk?** - **Why can there only be one primary key per table?** - **How does rolling back a transaction work?** - **How are indexes formatted?** - **When and how does a full table scan happen?** - **What format is a prepared statement saved in?** **In short, how does a database work?** **I’m building a clone of sqlite from scratch in C in order to understand, and I’m going to document my process as I go.** Table of Contents - [Part 1 - Introduction and Setting up the REPL](https://cstack.github.io/db_tutorial/parts/part1.html) - [Part 2 - World’s Simplest SQL Compiler and Virtual Machine](https://cstack.github.io/db_tutorial/parts/part2.html) - [Part 3 - An In-Memory, Append-Only, Single-Table Database](https://cstack.github.io/db_tutorial/parts/part3.html) - [Part 4 - Our First Tests (and Bugs)](https://cstack.github.io/db_tutorial/parts/part4.html) - [Part 5 - Persistence to Disk](https://cstack.github.io/db_tutorial/parts/part5.html) - [Part 6 - The Cursor Abstraction](https://cstack.github.io/db_tutorial/parts/part6.html) - [Part 7 - Introduction to the B-Tree](https://cstack.github.io/db_tutorial/parts/part7.html) - [Part 8 - B-Tree Leaf Node Format](https://cstack.github.io/db_tutorial/parts/part8.html) - [Part 9 - Binary Search and Duplicate Keys](https://cstack.github.io/db_tutorial/parts/part9.html) - [Part 10 - Splitting a Leaf Node](https://cstack.github.io/db_tutorial/parts/part10.html) - [Part 11 - Recursively Searching the B-Tree](https://cstack.github.io/db_tutorial/parts/part11.html) - [Part 12 - Scanning a Multi-Level B-Tree](https://cstack.github.io/db_tutorial/parts/part12.html) - [Part 13 - Updating Parent Node After a Split](https://cstack.github.io/db_tutorial/parts/part13.html) - [Part 14 - Splitting Internal Nodes](https://cstack.github.io/db_tutorial/parts/part14.html) - [Part 15 - Where to go next](https://cstack.github.io/db_tutorial/parts/part15.html) “What I cannot create, I do not understand.” – [Richard Feynman](https://en.m.wikiquote.org/wiki/Richard_Feynman) ![](https://cstack.github.io/db_tutorial/assets/images/arch2.gif) sqlite architecture (https://www.sqlite.org/arch.html)