# ๐๏ธ EasySQL





**็ฐไปฃๅๅคๆฐๆฎๅบ็ฎก็ๅทฅๅ
ท**
*่ฝป้ใ้ซๆง่ฝใ่ทจๅนณๅฐ*
---
## โจ ็นๆง
- ๐ **่ทจๅนณๅฐ** - ๅบไบ Electron๏ผๆฏๆ WindowsใmacOSใLinux
- โก **้ซๆง่ฝ** - ๅ็ๆฐๆฎๅบ้ฉฑๅจ๏ผๆฏซ็ง็บงๅๅบ
- ๐จ **็ฒพ็พ UI** - ็ฎ็บฆ็ฐไปฃๆต
่ฒไธป้ข๏ผๅ่ง่ฎพ่ฎก๏ผๆๅ้ดๅฝฑ
- ๐ **ๅคๆฐๆฎๅบ** - ๆฏๆ MySQLใPostgreSQLใSQLiteใSQL ServerใMongoDBใRedisใMariaDB
- ๐ **ๆบ่ฝ็ผ่พๅจ** - Monaco Editor๏ผSQL ่ฏญๆณ้ซไบฎใๆบ่ฝ่กฅๅ
จ
- ๐ **ๆฐๆฎ็ผ่พ** - ๆฏๆ็ดๆฅ็ผ่พ่กจๆ ผๆฐๆฎ๏ผ่ๆๆปๅจๅคงๆฐๆฎ้๏ผๅๅฎฝๅฏๆๅจ่ฐๆด
- ๐
**ๆฅๆ้ๆฉๅจ** - ๆบ่ฝ่ฏๅซๆฅๆๅญๆฎต๏ผๅ
็ฝฎ็ฒพ็กฎๅฐ็ง็ๆฅๆๆถ้ด้ๆฉๅจ
- ๐ ๏ธ **่กจ่ฎพ่ฎกๅจ** - Navicat ้ฃๆ ผ๏ผๅฏ่งๅ็ผ่พๅญๆฎตใ็ดขๅผใๅค้ฎใ่กจ้้กน
- ๐๏ธ **ๅฎๆด็ฎก็** - ๅๅปบ/ๅ ้ค/้ๅฝๅ/ๅคๅถๆฐๆฎๅบๅ่กจ
- ๐ค **ๅฏผๅ
ฅๅฏผๅบ** - ๆฏๆ JSONใNavicat NCX ๆ ผๅผ่ฟๆฅ้
็ฝฎๅฏผๅ
ฅๅฏผๅบ๏ผๅซๅฏ็ ่งฃๅฏ๏ผ
- ๐ **ๆน้ๆไฝ** - ๆฏๆๅค้่ฟๆฅๆน้ๅ ้ค็ฎก็
## ๐๏ธ ๆฏๆ็ๆฐๆฎๅบ
| ๆฐๆฎๅบ | ็ถๆ | ้ฉฑๅจ |
|--------|------|------|
| ๐ฌ MySQL | โ
| mysql2 |
| ๐ PostgreSQL | โ
| pg |
| ๐พ SQLite | โ
| sql.js |
| ๐ SQL Server | โ
| mssql |
| ๐ฆญ MariaDB | โ
| mysql2 |
| ๐ MongoDB | โ
| mongodb |
| โก Redis | โ
| ioredis |
## ๐ ๅฟซ้ๅผๅง
### ็ฏๅข่ฆๆฑ
- Node.js 18+
- npm ๆ yarn
### ๅฎ่ฃ
```bash
# ๅ
้้กน็ฎ
git clone https://github.com/your-repo/easysql.git
cd easysql
# ๅฎ่ฃ
ไพ่ต
npm install
# ๅผๅๆจกๅผ่ฟ่ก
npm run electron:dev
# ๆๅปบๅบ็จ๏ผ่ชๅจ้ๅข็ๆฌๅท๏ผ
npm run electron:build
```
## ๐ธ ็้ข้ข่ง
```
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๐๏ธ EasySQL v2.0 โ โก โ โ
โโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ ๐ ไธป้กต โ ๐ ๆฅ่ฏข1 โ ๐ users โ + โ
โ + ๆฐๅปบ่ฟๆฅ โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ SELECT * FROM users โ โ
โ โ ่ฟๆฅ โโโโโโโ โ โ WHERE status = 'active' โ โ
โ โ โ ORDER BY created_at DESC โ โ
โ ๐ฌ MySQLๆฌๅฐ โ โ LIMIT 100; โ โ
โ ๐ PostgreSQL โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค โ
โ ๐ SQL Server โ โ โโโโโโฌโโโโโโโโโฌโโโโโโโโโโฌโโโโโโโโโโโโโ โ โ
โ โ โ โ id โ name โ email โ created_at โ โ โ
โ โ mydb โโโโโโโ โ โ โโโโโโผโโโโโโโโโผโโโโโโโโโโผโโโโโโโโโโโโโค โ โ
โ ๐ users โ โ โ 1 โ Alice โ a@... โ 2024-01-01 โ โ โ
โ ๐ orders โ โ โ 2 โ Bob โ b@... โ 2024-01-02 โ โ โ
โ ๐ products โ โ โโโโโโดโโโโโโโโโดโโโโโโโโโโดโโโโโโโโโโโโโ โ โ
โโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โ ๅฐฑ็ปช ยท 2 ่ก (0.05s) EasySQL v2.0 โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
```
## ๐ ๏ธ ๆๆฏๆ
- **่ฟ่กๆถ**: Electron 33
- **ๅ็ซฏ**: React 18 + TypeScript 5
- **ๆ ทๅผ**: Tailwind CSS 3
- **ๆๅปบ**: Vite 5
- **็ผ่พๅจ**: Monaco Editor
- **ๆฐๆฎๅบ้ฉฑๅจ**: mysql2, pg, sql.js, mssql, mongodb, ioredis
## ๐ ้กน็ฎ็ปๆ
```
easysql/
โโโ electron/ # Electron ไธป่ฟ็จ
โ โโโ main.js # ไธป็จๅบๅ
ฅๅฃ
โ โโโ preload.js # ้ขๅ ่ฝฝ่ๆฌ
โโโ src/ # React ๅ็ซฏ
โ โโโ components/ # UI ็ปไปถ
โ โ โโโ TitleBar.tsx # ๆ ้ขๆ
โ โ โโโ Sidebar.tsx # ไพง่พนๆ ๏ผ่ฟๆฅ/ๆฐๆฎๅบ/่กจๆ ๏ผ
โ โ โโโ MainContent.tsx # ไธปๅ
ๅฎนๅบ
โ โ โโโ SqlEditor.tsx # SQL ็ผ่พๅจ๏ผMonaco๏ผ
โ โ โโโ VirtualDataTable.tsx # ่ๆๆปๅจๆฐๆฎ่กจๆ ผ
โ โ โโโ TableDesigner.tsx # ่กจ่ฎพ่ฎกๅจ๏ผNavicat ้ฃๆ ผ๏ผ
โ โ โโโ ConnectionModal.tsx # ่ฟๆฅ้
็ฝฎๅผน็ช
โ โ โโโ CreateDatabaseModal.tsx # ๆฐๅปบๆฐๆฎๅบๅผน็ช
โ โ โโโ CreateTableModal.tsx # ๅฟซ้ๆฐๅปบ่กจๅผน็ช
โ โ โโโ InputDialog.tsx # ้็จ่พๅ
ฅๅฏน่ฏๆก
โ โโโ lib/
โ โ โโโ electron-api.ts # Electron API ๅฐ่ฃ
โ โ โโโ hooks.ts # ่ชๅฎไน Hooks
โ โโโ App.tsx
โ โโโ types.ts
โ โโโ index.css
โโโ scripts/
โ โโโ bump-version.js # ็ๆฌๅท้ๅข่ๆฌ
โ โโโ generate-icons.js # ๅพๆ ็ๆ่ๆฌ
โโโ index.html
โโโ package.json
โโโ tailwind.config.js
โโโ tsconfig.json
โโโ vite.config.ts
```
## โจ๏ธ ๅฟซๆท้ฎ
| ๅฟซๆท้ฎ | ๅ่ฝ |
|--------|------|
| `Ctrl+Enter` | ๆง่ก SQL |
| `Ctrl+S` | ไฟๅญๆไปถ/ไฟๅญไฟฎๆน |
| `Ctrl+O` | ๆๅผ SQL ๆไปถ |
| `Ctrl+Shift+F` | ๆ ผๅผๅ SQL |
| `Ctrl+Q` | ๆฐๅปบๆฅ่ฏข |
| `Ctrl+W` | ๅ
ณ้ญๅฝๅๆ ็ญพ |
| `Ctrl+C` | ๅคๅถ้ไธญๅๅ
ๆ ผ |
| `Ctrl+F` | ๆ็ดข๏ผไพง่พนๆ /่กจๆ ผ๏ผ |
| `ๅๅป่ฟๆฅ` | ๅฟซ้่ฟๆฅๆฐๆฎๅบ |
| `ๅๅปๅๅ
ๆ ผ` | ็ผ่พๅๅ
ๆ ผๆฐๆฎ |
| `ๅณ้ฎ่ๅ` | ่ฟๆฅ/ๆฐๆฎๅบ/่กจๆไฝ |
## ๐ง ้
็ฝฎ่ฏดๆ
่ฟๆฅ้
็ฝฎไฟๅญๅจ็จๆท้
็ฝฎ็ฎๅฝ๏ผ
- Windows: `%APPDATA%\easysql\connections.json`
- macOS: `~/Library/Application Support/easysql/connections.json`
- Linux: `~/.config/easysql/connections.json`
## ๐ฆ npm ่ๆฌ
| ๅฝไปค | ่ฏดๆ |
|------|------|
| `npm run dev` | ๅฏๅจ Vite ๅผๅๆๅกๅจ |
| `npm run build` | ๆๅปบๅ็ซฏ่ตๆบ |
| `npm run electron:dev` | ๅผๅๆจกๅผ่ฟ่ก Electron |
| `npm run electron:build` | ๆๅ
ๅบ็จ๏ผ่ชๅจ้ๅข่กฅไธ็ๆฌ๏ผ |
| `npm run electron:build:minor` | ๆๅ
ๅบ็จ๏ผ้ๅขๆฌก็ๆฌ๏ผ |
| `npm run electron:build:major` | ๆๅ
ๅบ็จ๏ผ้ๅขไธป็ๆฌ๏ผ |
| `npm run version:patch` | ๅช้ๅข่กฅไธ็ๆฌๅท |
| `npm run version:minor` | ๅช้ๅขๆฌก็ๆฌๅท |
| `npm run version:major` | ๅช้ๅขไธป็ๆฌๅท |
| `npm run icons` | ็ๆๅบ็จๅพๆ |
## ๐ ็ๆฌๅท็ฎก็
้กน็ฎไฝฟ็จ่ฏญไนๅ็ๆฌๅท (SemVer)๏ผ`ไธป็ๆฌ.ๆฌก็ๆฌ.่กฅไธ็ๆฌ`
```bash
# ้ๅข่กฅไธ็ๆฌ 2.0.0 -> 2.0.1
npm run version:patch
# ้ๅขๆฌก็ๆฌ 2.0.0 -> 2.1.0
npm run version:minor
# ้ๅขไธป็ๆฌ 2.0.0 -> 3.0.0
npm run version:major
# ๆๅปบๆถ่ชๅจ้ๅข็ๆฌๅท
npm run electron:build # patch
npm run electron:build:minor # minor
npm run electron:build:major # major
```
## ๐ค ่ดก็ฎ
ๆฌข่ฟๆไบค Issue ๅ Pull Request๏ผ
## ๐ License
MIT
---
Made with โค๏ธ using Electron + React + Node.js