ส่วน 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 และธุรกรรมมาตรฐาน รองรับทั้งหมด