ส่วน SQL มีฐานข้อมูล SQLite เฉพาะสำหรับแต่ละโปรเจกต์ คุณสามารถสร้างตาราง ดัชนี และวิว แก้ไขข้อมูลด้วยตนเอง เขียนคิวรีใดๆ และเข้าถึงฐานข้อมูลได้โดยตรงจากเวิร์กโฟลว์ของคุณ เป็น SQLite ที่มีคุณสมบัติครบถ้วนพร้อมไวยากรณ์ที่ไม่จำกัด: อะไรก็ตามที่ SQLite รองรับก็ใช้งานได้ที่นี่เช่นกัน
ฐานข้อมูล SQL ถูกจัดเก็บแยกจากตารางในส่วน Tables การเปลี่ยนแปลงในส่วนหนึ่งจะไม่ส่งผลต่ออีกส่วนหนึ่ง
วิธีเปิด
โปรเจกต์ → Tables → คลิก SQL ทางด้านขวาของ Add Table

หากต้องการกลับไปยังรายการตาราง ให้คลิกลูกศรที่ส่วนหัวของหน้า
ส่วน SQL พร้อมใช้งานสำหรับสมาชิกทีมที่มีสิทธิ์แก้ไขตาราง ผู้ใช้ที่มีสิทธิ์เข้าถึงแบบอ่านอย่างเดียวสามารถดูโครงสร้างฐานข้อมูลได้ แต่ไม่สามารถเข้าถึงข้อมูลหรือคิวรีได้
โครงสร้างฐานข้อมูล
แผนผังฐานข้อมูลจะแสดงทางด้านขวา ประกอบด้วยตารางพร้อมคอลัมน์และดัชนี ตามด้วยวิว แต่ละคอลัมน์แสดงชนิดข้อมูล คอลัมน์คีย์หลักจะถูกทำเครื่องหมายด้วยไอคอนกุญแจ และดัชนีจะแสดงแอตทริบิวต์ UNIQUE และคอลัมน์ที่เกี่ยวข้อง

การดำเนินการที่เกี่ยวข้องกับโครงสร้างทั้งหมดสามารถเข้าถึงได้จากเมนูโหนด: คลิกขวาที่โหนด คลิกไอคอน ⋮ ที่ปรากฏเมื่อวางเมาส์ หรือใช้ปุ่ม + เหนือแผนผัง
| โหนด | การดำเนินการ |
|---|---|
| ฐานข้อมูล | สร้างตาราง, สร้างวิว, รีเฟรช, ดาวน์โหลดฐานข้อมูล |
| ตาราง | เปิด, เพิ่มคอลัมน์, เพิ่มดัชนี, เปลี่ยนชื่อ, DDL, รีเฟรช, ลบ |
| คอลัมน์ | เปลี่ยนชื่อ, ลบ |
| ดัชนี | DDL, ลบ |
| วิว | เปิด, DDL, ลบ |

สร้างตาราง ระบุชื่อตารางและคอลัมน์: ชื่อ ชนิด ค่าเริ่มต้น PK และ NOT NULL คุณสามารถเลือกชนิดข้อมูลจากคำแนะนำหรือป้อนเองได้ หากทำเครื่องหมายหลายคอลัมน์เป็น PK คอลัมน์เหล่านั้นจะรวมกันเป็นคีย์หลักแบบผสม

DDL แสดงคำสั่ง CREATE ของออบเจกต์ในคอนโซล ซึ่งมีประโยชน์สำหรับการคัดลอกโครงสร้างหรือสร้างใหม่ในโปรเจกต์อื่น
ปุ่มเหนือแผนผังช่วยให้คุณสร้างออบเจกต์ รีเฟรชฐานข้อมูล แสดงหรือซ่อนคอนโซล ดู DDL ของตารางที่เลือก ดาวน์โหลดฐานข้อมูล หรือล้างฐานข้อมูล

ข้อมูลตาราง
คลิกที่ตารางในแผนผังฐานข้อมูลเพื่อเปิดข้อมูล กริดทำงานคล้ายกับชีตในส่วน Tables:
- แก้ไขเซลล์ โดยดับเบิลคลิก กด Enter เพื่อบันทึกหรือ Esc เพื่อยกเลิก ค่าจะถูกเขียนลงฐานข้อมูลทันที
- แถว คลิก + เพื่อเพิ่มแถวว่างหรือ − เพื่อลบแถวที่เลือก คลิกหมายเลขแถวในคอลัมน์แรกเพื่อเลือก ใช้ Shift หรือ Cmd/Ctrl เพื่อเลือกหลายแถว
- ค่า NULL จะแสดงเป็น
NULLการล้างเซลล์จะเขียนสตริงว่างลงในฐานข้อมูล หากต้องการเขียนค่า NULL ให้ใช้คิวรี - ฟิลด์ WHERE และ ORDER BY เหนือกริดยอมรับเงื่อนไข SQL และนิพจน์การเรียงลำดับ ป้อนนิพจน์แล้วกด Enter ฟิลด์ ORDER BY มีลำดับความสำคัญเหนือการเรียงลำดับที่ใช้ผ่านเมนูคอลัมน์
- เมนูคอลัมน์ (ไอคอนในส่วนหัวคอลัมน์): เรียงลำดับจากน้อยไปมากหรือมากไปน้อย หรือกรองตามสตริงย่อย
- ข้อมูลจะถูกโหลดเมื่อคุณเลื่อน ในชุดละ 100 แถว ตัวนับทางด้านขวาจะแสดงช่วงปัจจุบันและจำนวนแถวทั้งหมด
- วิวเป็นแบบอ่านอย่างเดียว
คอนโซล

คลิกปุ่ม </> เหนือแผนผังฐานข้อมูลเพื่อเปิดคอนโซล ซึ่งมีตัวแก้ไขคิวรีพร้อมการเน้นไวยากรณ์และผลลัพธ์คิวรี
- รันคิวรีโดยใช้ปุ่มหรือ Ctrl+Enter (Cmd+Enter บน Mac)
- คุณสามารถรันหลายคิวรีโดยคั่นด้วย
;ผลลัพธ์จะแสดงแถวที่ส่งคืนโดยคิวรีสุดท้ายที่สร้างข้อมูล พร้อมกับจำนวนแถวที่ได้รับผลกระทบทั้งหมด - ข้อผิดพลาด SQLite จะแสดงตามที่เป็น เมื่อรันหลายคิวรี หมายเลขคิวรีจะถูกเพิ่มในข้อความข้อผิดพลาด:
[2] no such table: ... - รายการโปรด คลิก Add to Favorites เพื่อบันทึกคิวรีปัจจุบันภายใต้ชื่อ คิวรีที่บันทึกจะปรากฏเป็นชิปเหนือตัวแก้ไข: คลิกเพื่อโหลดคิวรีหรือคลิกเครื่องหมายกากบาทเพื่อลบ รายการโปรดจะถูกเก็บไว้ในเบราว์เซอร์ของคุณแยกตามโปรเจกต์
- ข้อความของคิวรีล่าสุดของคุณจะถูกเก็บรักษาไว้ระหว่างเซสชัน
การดาวน์โหลดและการล้างฐานข้อมูล
Download database ดาวน์โหลดฐานข้อมูลทั้งหมดเป็น project_<id>_sql.sqlite3 คุณสามารถเปิดด้วยแอปพลิเคชันที่เข้ากันได้กับ SQLite โอนไปยังโปรเจกต์อื่น หรือใช้ภายนอก Mavibot
Clear database ลบตารางและข้อมูลทั้งหมดจากส่วน SQL การดำเนินการนี้ไม่สามารถยกเลิกได้และต้องป้อนคำยืนยัน ตารางในส่วน Tables จะไม่ได้รับผลกระทบ
ฟังก์ชันเครื่องคิดเลข
ฟังก์ชันเครื่องคิดเลขสองฟังก์ชันช่วยให้คุณเข้าถึงฐานข้อมูล SQL จากเวิร์กโฟลว์ของคุณ ทั้งสองมีอยู่ในคำแนะนำของตัวแก้ไขและได้รับการยอมรับจากผู้ช่วย
sql(query, params=null, strict=true)
ดำเนินการคิวรี
| คิวรี | ค่าที่ส่งคืน |
|---|---|
| คิวรีที่มีผลลัพธ์ (SELECT, RETURNING, PRAGMA) | รายการ JSON ของแถว โดยแต่ละแถวแสดงเป็นออบเจกต์: [{"id": 1, "name": "Anna"}, ...]
|
| คิวรีที่ไม่มีผลลัพธ์ (INSERT, UPDATE, DELETE) | จำนวนแถวที่ได้รับผลกระทบ |
| CREATE, DROP และการเปลี่ยนแปลงสคีมาอื่นๆ | 0 |
| ข้อผิดพลาด | สตริง ERROR: <ข้อความข้อผิดพลาด SQLite>
|
ตัวอย่าง:
rows = sql("SELECT name, phone FROM clients WHERE city = ?", [city])
n = sql("UPDATE clients SET status = :s WHERE id = :id", {"s": "vip", "id": client_id})
sql_value(query, params=null, strict=true)
ทำงานเหมือน sql แต่ส่งคืนค่าเดียว: คอลัมน์แรกของแถวแรกในผลลัพธ์
หากไม่มีแถว ไม่มีผลลัพธ์ หรือค่าเป็น NULL จะส่งคืนสตริงว่าง
total = sql_value("SELECT count(*) FROM clients")
name = sql_value("SELECT name FROM clients WHERE id = ?", [client_id])
พารามิเตอร์
params ส่งค่าผ่านไปยังคิวรีแยกจากข้อความคิวรี: ใช้ JSON array สำหรับ placeholder ? หรือ JSON object สำหรับ placeholder :name ภายใน [...] และ {...} ตัวแปรจะถูกเขียนเป็นชื่อตัวแปรธรรมดา:
[client_id], ไม่ใช่ [#{client_id}]
ส่งค่าที่ได้รับจากลูกค้าผ่าน params เช่น ชื่อ หมายเลขโทรศัพท์ หรือข้อความ ค่าที่ต่อเข้ากับข้อความคิวรีโดยตรงอาจแก้ไขคิวรีเองได้
โหมดเข้มงวด
โดยค่าเริ่มต้น strict=true: ฟังก์ชันยอมรับคิวรีเดียวเท่านั้นและไม่อนุญาตให้มีความคิดเห็นในข้อความคิวรี ซึ่งป้องกันไม่ให้ค่าที่ได้รับจากข้อความลูกค้าเพิ่มคิวรีที่สองหรือตัดทอนส่วนที่เหลือของคิวรีเดิม
ตั้งค่า strict=false เพื่อลบข้อจำกัดนี้ เช่น เมื่อรันหลายคิวรีคั่นด้วย ;
ข้อจำกัด
| ข้อจำกัด | ค่า |
|---|---|
| เวลาดำเนินการสำหรับคิวรีเดียวหรือชุดคิวรี | 5 วินาที |
| แถวที่ส่งคืน | สูงสุด 1,000; แถวเพิ่มเติมจะไม่ถูกส่งคืน |
| ความยาวข้อความคิวรี | 64 KB |
| ขนาดฐานข้อมูล | 200 MB; เมื่อเกินแล้ว จะสามารถอ่านและลบข้อมูลได้เท่านั้น |
คำสั่งที่ถูกห้ามเพียงอย่างเดียวคือคำสั่งที่เข้าถึงทรัพยากรภายนอกฐานข้อมูลของโปรเจกต์: ATTACH พร้อมพาธไฟล์และ VACUUM INTO
อย่างอื่นทั้งหมด รวมถึง VACUUM, PRAGMA และธุรกรรมมาตรฐาน รองรับทั้งหมด