บทช่วยสอน SQLite: ทุกสิ่งที่คุณต้องการรู้



บทช่วยสอน sqlite นี้จะช่วยให้คุณเข้าใจว่า sqlite แตกต่างจากระบบฐานข้อมูลเชิงสัมพันธ์อื่น ๆ และคำสั่งพื้นฐานทั้งหมดอย่างไร

หากคุณเคยทำงานกับระบบฐานข้อมูลเชิงสัมพันธ์อาจเป็นไปได้ว่าคุณเคยได้ยินเกี่ยวกับระบบฐานข้อมูลยอดนิยมเช่น MySQL , เซิร์ฟเวอร์หรือ PostgreSQL . SQLite เป็นอีกหนึ่ง RDBMS ที่มีประโยชน์อย่างยิ่งซึ่งง่ายต่อการติดตั้งและใช้งาน นอกจากนี้ยังมีคุณสมบัติที่แตกต่างจากฐานข้อมูลเชิงสัมพันธ์อื่น ๆ อีกมากมาย. บทช่วยสอน SQLite นี้สอนแนวคิดพื้นฐานที่คุณจำเป็นต้องรู้ด้วยความช่วยเหลือของการปฏิบัติจริงที่ครอบคลุม

หัวข้อที่กล่าวถึงในบทความนี้ ได้แก่ :





SQLite Tutorial: SQLite คืออะไร?

นี่คือคำจำกัดความมาตรฐานอุตสาหกรรมของ SQLite:

SQLite เป็นเครื่องมือฐานข้อมูลเชิงสัมพันธ์แบบโอเพ่นซอร์สที่มีการกำหนดค่าเป็นศูนย์มีอยู่ในตัวแบบสแตนด์อะโลนที่ออกแบบมาเพื่อฝังลงในแอปพลิเคชัน

คุณสามารถพิจารณา SQLite เป็น“ เบา ” เวอร์ชันอื่น ๆ ของ RDBMS ที่ซับซ้อน (Oracle, ฯลฯ ) ซึ่งกำหนดค่าเอ็นจินฐานข้อมูลสำหรับ การประมวลผลอิสระ (ไลบรารีในกระบวนการ) เช่นก เซิร์ฟเวอร์น้อยไม่มีในตัวตั้งค่าเป็นศูนย์และธุรกรรม . เป็นที่รู้จักในด้านความสามารถในการพกพาความน่าเชื่อถือและประสิทธิภาพที่แข็งแกร่งแม้ในสภาพแวดล้อมที่มีหน่วยความจำต่ำ นอกจากนี้ SQLite ยังเป็นตัวเลือกยอดนิยมในฐานะฐานข้อมูลแบบฝังสำหรับที่เก็บข้อมูลในเครื่อง / ไคลเอนต์ในโปรแกรมหรือแอปพลิเคชันสุดท้ายซึ่งแตกต่างจาก RDBMS อื่น ๆ ที่มีการกำหนดค่าเอ็นจิ้นไคลเอ็นต์เซิร์ฟเวอร์ DB



คุณสมบัติของ SQLite

SQLite มีคุณสมบัติที่แตกต่างกันมากมายเช่น:

  • ไร้เซิร์ฟเวอร์: มากที่สุด ฐานข้อมูล SQL ถูกนำไปใช้เป็นกระบวนการเซิร์ฟเวอร์แยกกัน แต่ SQLite ไม่มีกระบวนการเซิร์ฟเวอร์แยกต่างหาก มันเป็นเอ็นจิ้นฐานข้อมูลไร้เซิร์ฟเวอร์ มันอ่านและเขียนโดยตรงไปยังไฟล์ดิสก์ธรรมดา
  • การกำหนดค่าเป็นศูนย์: มันไม่จำเป็นต้องมีการกำหนดค่าเพื่อให้ทำงานได้ ซึ่งหมายความว่าไม่มีกระบวนการของเซิร์ฟเวอร์ที่ต้องเริ่มต้นหยุดหรือกำหนดค่าเหมือนในระบบไคลเอนต์ / เซิร์ฟเวอร์
  • Manifest พิมพ์: SQLite ใช้การพิมพ์รายการซึ่งช่วยให้สามารถจัดเก็บข้อมูลประเภทใดก็ได้ลงในคอลัมน์ใดก็ได้โดยไม่คำนึงถึงประเภทข้อมูลที่ประกาศไว้ของคอลัมน์ โปรดทราบว่ามีข้อยกเว้นบางประการสำหรับกฎนี้
  • น้ำหนักเบา: ตามความหมายของชื่อไลบรารี SQLite มีน้ำหนักเบามาก แม้ว่าพื้นที่ที่ใช้จะแตกต่างกันไปขึ้นอยู่กับระบบที่ติดตั้ง แต่ก็อาจใช้พื้นที่น้อยกว่า 600KiB
  • แบบพกพา: ซึ่งแตกต่างจาก DBMS อื่น ๆ คือไฟล์ฐานข้อมูล SQLite ทั้งหมดถูกเก็บไว้ในไฟล์เดียวไฟล์นี้สามารถแชร์ผ่านสื่อแบบถอดได้หรือโปรโตคอลการถ่ายโอนไฟล์ได้อย่างง่ายดาย
  • ทางเลือกที่หลากหลาย: ภาษาโปรแกรมจำนวนมากมีการผูกสำหรับ SQLite รวมถึง , , ค # , , , ทับทิม , , และอื่น ๆ อีกมากมาย.
  • ฟรี: SQLite เป็นแบบโอเพ่นซอร์สฟรี ในการทำงานกับ SQLite ไม่จำเป็นต้องมีใบอนุญาตทางการค้า

ตามที่ระบุไว้ด้านบน SQLiteเป็นที่รู้จักในเรื่องการกำหนดค่าเป็นศูนย์ซึ่งหมายความว่าไม่จำเป็นต้องมีการตั้งค่าหรือการดูแลระบบที่ซับซ้อน ในส่วนถัดไปของบทแนะนำ SQLite นี้เรามาดูวิธีการติดตั้ง SQLite ในระบบของคุณ

SQLite Tutorial: การติดตั้ง SQLite บน Windows

ขั้นตอนในการปฏิบัติตามมีดังนี้



ขั้นตอนที่ 1: ไปที่ไฟล์ SQLite อย่างเป็นทางการ เว็บไซต์และคลิกที่ลิงค์ที่เหมาะสมเพื่อดาวน์โหลดไบนารีที่คอมไพล์ไว้ล่วงหน้า

ขั้นตอนที่ 2: ดาวน์โหลดไฟล์ zip บรรทัดคำสั่ง SQLite (ที่นี่: sqlite-tools-win32-x86-3270200.zip) และขยายไฟล์เหล่านี้ในโฟลเดอร์ที่คุณเลือก

เครื่องมือบรรทัดคำสั่ง SQLite นี้จะมีผลิตภัณฑ์ SQLite ต่อไปนี้

  • แกน SQLite : แกน SQLite ประกอบด้วยเอ็นจิ้นฐานข้อมูลจริงและ API สาธารณะ
  • เครื่องมือบรรทัดคำสั่ง SQLite3 : แอปพลิเคชัน sqlite3 เป็นเครื่องมือบรรทัดคำสั่งที่สร้างขึ้นที่ด้านบนของคอร์ SQLite
  • ส่วนขยาย Tcl : ไลบรารีนี้เป็นสำเนาของคอร์ SQLite โดยพื้นฐานแล้วการผูก Tcl ที่ติดอยู่
  • เครื่องมือวิเคราะห์ SQLite : เครื่องมือวิเคราะห์ SQLite ใช้เพื่อวิเคราะห์ไฟล์ฐานข้อมูล

ขั้นที่ 3: หลังจากนั้นการเริ่มต้นบรรทัดคำสั่ง SQLite ทำได้ง่ายเพียงแค่คลิกที่แอปพลิเคชัน sqlite3 ซึ่งจะทำให้บรรทัดคำสั่งปรากฏขึ้น

หากคุณต้องการทดสอบเพิ่มเติมเพียงพิมพ์ .ช่วยด้วย คำสั่งจาก sqlite> พร้อมต์เพื่อดูคำสั่งที่มีอยู่ทั้งหมดใน sqlite3 ดังที่แสดงด้านล่าง

บันทึก: ตามค่าเริ่มต้นเซสชัน SQLite ใช้ฐานข้อมูลในหน่วยความจำดังนั้นการเปลี่ยนแปลงทั้งหมดจะหายไปเมื่อเซสชันสิ้นสุดลง

ง่ายพอใช่มั้ย? จากนั้นมาเริ่มต้นด้วยคำสั่ง SQLite

SQLite Tutorial: คำสั่ง SQLite

ส่วนนี้ของบทช่วยสอน SQLite นำเสนอคำสั่ง SQL พื้นฐานที่คุณสามารถใช้กับ SQLite

บันทึก: คำสั่ง SQLite ลงท้ายด้วยอัฒภาค (). มันบอก SQLite ว่าคำสั่งของคุณเสร็จสมบูรณ์และควรจะรันนอกจากนี้คุณสามารถกระจายคำสั่งของคุณไปยังหลายบรรทัดและใช้เครื่องหมายอัฒภาคในบรรทัดสุดท้าย

สแกนเนอร์ทำอะไรใน java

คำสั่งฐานข้อมูล

ส่วนนี้ประกอบด้วยคำสั่งเหล่านั้นซึ่งคุณสามารถจัดการกับฐานข้อมูลของคุณได้ คำสั่งคือ:

  • SQLite สร้างฐานข้อมูล

SQLite ไม่ใช้คำสั่ง CREATE DATABASE เหมือนกับในระบบการจัดการฐานข้อมูลเชิงสัมพันธ์อื่น ๆ เช่น MySQL , SQL Server ฯลฯ ในการสร้างฐานข้อมูลใหม่ใน SQLite เพียงแค่ป้อน sqlite3 ตามด้วยชื่อไฟล์ที่คุณต้องการใช้สำหรับฐานข้อมูล ทีเขาต่อไปนี้รหัสสร้างไฟล์ฐานข้อมูลชื่อ StudentDetails.db:

ตัวอย่าง

sqlite3 StudentDetails.db sqlite> .databases main: D: sqliteStudentDetails.db
  • SQLite แนบฐานข้อมูล

เมื่อคุณมีหลายฐานข้อมูลคุณสามารถใช้ได้ทีละฐานข้อมูลเท่านั้น ใน SQLite คำสั่ง ATTACH DATABASE ใช้เพื่อแนบฐานข้อมูลเฉพาะสำหรับการเชื่อมต่อปัจจุบัน กแก้ไขคำสั่งนี้คำสั่ง SQLite ทั้งหมดจะดำเนินการภายใต้ฐานข้อมูลที่แนบมา

ตัวอย่าง

sqlite> ATTACH DATABASE 'DepartmentDetails.db' AS 'Department' sqlite> .databases main: D: sqliteStudentDetails.db แผนก: D: sqliteDepartmentDetails.db
  • ฐานข้อมูล SQLite Detach

ใน SQLite คำสั่ง DETACH DATABASE ถูกใช้เพื่อแยกฐานข้อมูลนามแฝงออกจากการเชื่อมต่อฐานข้อมูลที่แนบมาก่อนหน้านี้โดยใช้คำสั่ง ATTACH หากมีการแนบไฟล์ฐานข้อมูลเดียวกันกับหลายนามแฝงคำสั่งนี้จะตัดการเชื่อมต่อเฉพาะชื่อที่กำหนดและไฟล์แนบที่เหลือจะยังคงมีอยู่ฐานข้อมูลภายในหน่วยความจำในหน่วยความจำหรือฐานข้อมูลชั่วคราวจะถูกทำลายอย่างสมบูรณ์และเนื้อหาจะสูญหายไป

ตัวอย่าง

sqlite> .databases main: D: sqliteStudentDetails.db Department: D: sqliteDepartmentDetails.db Student: D: sqliteStudentDetails.db DeptInformation: D: sqliteDepartmentDetails.db sqlite> DETACH DATABASE 'Department' sqlite> .databases main: DETACHDETAILES นักศึกษา: D: sqliteStudentDetails.db DeptInformation: D: sqliteDepartmentDetails.db

คำสั่งตาราง

ที่นี่เราจะเรียนรู้วิธีจัดการกับตารางเมื่อใช้ SQLite

  • SQL สร้างตาราง

ใน SQLite คำสั่ง CREATE TABLE ถูกใช้เพื่อสร้างตารางใหม่ ในขณะที่สร้างตารางคุณต้องตั้งชื่อตารางและกำหนดคอลัมน์และประเภทข้อมูลของแต่ละคอลัมน์

ไวยากรณ์:

สร้างตาราง table_name (Column1 column_type [ข้อ จำกัด ] Column2 column_type [ข้อ จำกัด ] [..... ])

ตัวอย่าง

สร้างข้อมูลตารางนักศึกษา (ID INT PRIMARY KEY not NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR (50), DEPARTMENTID INTEGER NOT NULL, PHONE TEXT DEFAULT 'UNKNOWN', FOREIGN KEY (DEPARTMENTID REFERENCES Department) (DepARTMENTID REFERENCES Department)

คุณสามารถตรวจสอบว่าตารางถูกสร้างขึ้นหรือไม่โดยใช้ไฟล์ .tables คำสั่งดังที่แสดงด้านล่าง โปรดทราบว่าฉันได้สร้างตารางที่เรียกว่า DepartmentInfo โดยที่ DeptID เป็นคีย์หลักตารางแผนกมีข้อ จำกัด ของคีย์ต่างประเทศในตารางนักเรียน

sqlite> .tables StudentInfo ติดต่อ Emp_Master
  • SQLite Drop Table

ใน SQLite คำสั่ง DROP TABLE ช่วยให้คุณสามารถลบหรือลบตารางออกจากฐานข้อมูล SQLite เมื่อตารางถูกทิ้งข้อมูลทั้งหมดที่มีอยู่จะถูกลบออกจากฐานข้อมูลอย่างถาวร ดัชนีและทริกเกอร์ที่เกี่ยวข้องจะถูกลบออกด้วย หากมีการเปิดใช้งานข้อ จำกัด ของคีย์ต่างประเทศในตารางนั้นสิ่งนั้นจะลบออกในลักษณะเดียวกันสำหรับแต่ละแถวในตารางและทริกเกอร์ใด ๆ ที่เกี่ยวข้องกับตารางจะถูกทิ้งด้วย

ไวยากรณ์

วางตาราง [IF EXISTS] table_name

ตัวอย่าง

ข้อผิดพลาดของแผนก DROP TABLE: ไม่มีตารางดังกล่าว: แผนก DROP TABLE บริษัท sqlite> .tables StudentInfo

บันทึก: IF EXISTS เป็นประโยคเสริม หากระบุไว้คำสั่ง DROP TABLE จะไม่ทำให้เกิดข้อผิดพลาดหากไม่มีตารางใดตารางหนึ่ง

นอกจากนี้ยังมีไฟล์ คำสั่ง SQLite Alter Table ซึ่งเราจะเข้าใจในสองสามส่วนถัดไปของบทความนี้ ตอนนี้เราได้สร้างตารางแล้วเรามาดูวิธีแทรกลบและแก้ไขข้อมูลกัน

บทช่วยสอน SQLite: การดำเนินการ CRUD

  • SQLite Insert Query

หลังจากสร้างตารางแล้วสามารถใช้คำสั่ง SQLite Insert Into เพื่อสร้างแถวใหม่ในตารางที่ระบุ คำสั่งแทรก SQLite มีสองรูปแบบที่มีความหมาย รูปแบบแรกใช้คำสั่ง VALUES เพื่อระบุรายการของค่าที่จะแทรก

ไวยากรณ์

INSERT INTO TABLE_NAME [(column1, column2, column3, ... columnN)] VALUES (value1, value2, value3, ... valueN)

ตัวอย่าง

INSERT INTO StudentInfo (ID, NAME, AGE, ADDRESS, DEPARTMENTID, PHONE) VALUES (1, 'Dean', 20, 'California', 2, '934 *******')

เอาต์พุต

เลือก * จาก StudentInfo ID NAME อายุที่อยู่ DEPARTMENTID PHONE ---------- ---------- ---------- ---------- ---------- 1 คณบดี 20 แคลิฟอร์เนีย 2,934 *******

ที่นี่แถวใหม่จะถูกสร้างขึ้นและแต่ละค่าจะถูกบันทึกลงในคอลัมน์ตามลำดับ โปรดทราบว่าทั้งสองรายการต้องมีนามสกุล เหมือนกัน จำนวนรายการ. ที่นี่ รายการคอลัมน์ เป็นทางเลือก เรายังสามารถแทรกข้อมูลลงในตาราง โดยไม่ต้องระบุรายการคอลัมน์ .

ตัวอย่าง

ใส่ค่าข้อมูลนักเรียน (2, 'SAM', 22, 'Texas', 2, '976 *******')

เอาต์พุต

เลือก * จาก StudentInfo ID NAME อายุที่อยู่ DEPARTMENTID PHONE ---------- ---------- ---------- ---------- ---------- 1 ดีน 20 แคลิฟอร์เนีย 2,934 ******* 2 SAM 22 เท็กซัส 2 976 *******

SQLite ยังมีคุณสมบัติให้ แทรกหลายแถว ในคำสั่ง INSERT เดียว ไวยากรณ์ดังที่แสดงด้านล่าง

ตัวอย่าง

INSERT INTO StudentInfo VALUES (3, 'John', 23, 'Norway', 1, '923 *******'), (4, 'Mitch', 22, 'Houston', 3, '934 ** ***** ')

เอาต์พุต

เลือก * จาก StudentInfo 1 | Dean | 20 | California | 2 | 934 ******* 2 | SAM | 22 | Texas | 2 | 976 ******* 3 | John | 23 | นอร์เวย์ | 1 | 923 ******* 4 | มิทช์ | 22 | ฮูสตัน | 3 | 934 *******

อย่างที่คุณเห็นรูปแบบของผลลัพธ์นั้นไม่ค่อยคล้ายกับรูปแบบก่อนหน้านี้ ดังนั้นคุณจะเปลี่ยนรูปแบบของผลลัพธ์ใน SQLite ได้อย่างไร? มาจัดรูปแบบผลลัพธ์เพื่อให้อ่านผลลัพธ์ได้ง่ายขึ้น

  • การสร้าง

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

ตัวอย่าง

sqlite> .mode 'คอลัมน์' sqlite> .headers บน sqlite>. show echo: off eqp: off อธิบาย: auto headers: on mode: column nullvalue: '' output: stdout colseparator: '|' rowseparator: 'n' stats: off width: filename: StudentDetails.db

เอาต์พุต

เลือก * จาก ID StudentInfo ID ชื่ออายุที่อยู่โทรศัพท์แผนก ---------- ---------- ---------- ---------- ---------- 1 Dean 20 California 2134 ******* 2 SAM 22 Texas 2 976 ******* 3 John 23 นอร์เวย์ 1 923 ******* 4 มิทช์ 22 ฮิวสตัน 3,934 *******
  • SQLite Select Query

ใน SQLite ใช้คำสั่ง Selectเพื่อดึงข้อมูลจากตารางซึ่งจะส่งคืนข้อมูลในรูปแบบของตารางผลลัพธ์ ตารางผลลัพธ์เหล่านี้เรียกอีกอย่างว่าผลลัพธ์ ชุด การใช้คำสั่ง SQLite select เราสามารถคำนวณอย่างง่ายหรือหลายนิพจน์ตามความต้องการของเราก่อนหน้านี้เราเคยใช้คำสั่ง SELECT เมื่อเราแทรกข้อมูล

ไวยากรณ์

เลือก [ทั้งหมด | DISTINCT] ผลลัพธ์ [FROM table-list] [WHERE expr]
  • แตกต่าง - เมื่อเราใช้คำหลักที่แตกต่างกันในคำสั่งที่เลือกจะส่งกลับเฉพาะแถวข้อมูลที่แตกต่างกัน
  • ทั้งหมด - หากเราใช้คำสำคัญทั้งหมดในคำสั่งที่เลือกระบบจะส่งคืนแถวข้อมูลทั้งหมดแม้ว่าจะซ้ำกันก็ตาม
  • จากรายการตาราง - เป็นรายการตารางที่คุณต้องการรับข้อมูล
  • WHERE นิพจน์ - นิพจน์ WHERE ใช้เพื่อกำหนดเงื่อนไขที่กำหนดเองของเราเพื่อรับข้อมูลที่ต้องการจากตาราง

ตัวอย่าง 1

เลือก ID ชื่อจากข้อมูลนักเรียนที่อายุ<21

เอาต์พุต

ID NAME ---------- ---------- 1 คณบดี

ตัวอย่าง 2

เลือกชื่อจาก StudentInfo WHERE DEPARTMENTID = (SELECT DeptID จาก DepartmentInfo WHERE DeptName = 'Psychology')

เอาต์พุต

// ดึงข้อมูลคนจากแผนกที่มี id 2 NAME ---------- Dean SAM
  • SQLite Update Query

ใน SQLite คำสั่ง UPDATE สามารถใช้เพื่อแก้ไขระเบียนที่มีอยู่ในตารางคุณสามารถใช้คำสั่ง WHERE ของ SQLite เพื่อระบุว่าควรอัปเดตแถวใด คุณสามารถอัปเดตแถวทั้งหมดบางแถวหรือไม่มีเลยขึ้นอยู่กับเงื่อนไขการกรองที่ใช้โดยคำสั่ง WHERE

ไวยากรณ์

UPDATE table_name SET column1 = value1, column2 = value2 .... , columnN = valueN WHERE [เงื่อนไข]

ตัวอย่าง

อัปเดต StudentInfo SET DEPARTMENTID = 4 WHERE ID = '2'

เอาต์พุต

เลือก * จาก ID StudentInfo ID ชื่ออายุที่อยู่ DEPARTMENTID PHONE ---------- ---------- ---------- ------------ ---------- 1 Dean 20 California 2,934 ******* 2 SAM 22 Texas 4 976 ******* 3 John 23 นอร์เวย์ 1, 923 ******* 4 มิทช์ 22 ฮุสตัน 3,934 *******
  • SQLite Delete Query

ใน SQLite สามารถใช้คำสั่ง DELETE เพื่อลบระเบียนออกจากตาราง คุณสามารถลบแถวทั้งหมดบางแถวหรือไม่มีเลยขึ้นอยู่กับเงื่อนไขการกรองที่ใช้โดยคำสั่ง WHERE

ตัวอย่าง

ลบจาก DepartmentInfo WHERE DeptName = 'Science'

เอาต์พุต

SELECT * FROM DepartmentInfo DeptID DeptName ---------- ----------- 1 คณิตศาสตร์ 2 จิตวิทยา 3 กีฬา 4 ดนตรี

หากคุณพยายามลบบันทึกที่อ้างอิงโดยคีย์นอกระบบคุณจะได้รับข้อผิดพลาด คุณจะต้องลบระเบียนคีย์ต่างประเทศก่อนก่อนที่จะลบระเบียนคีย์หลัก มาลองลบแผนกวิทยาศาสตร์

ตัวอย่าง

ลบจาก DepartmentInfo WHERE DeptName = ข้อผิดพลาด 'Music': ข้อ จำกัด ของคีย์ต่างประเทศล้มเหลว

ดังนั้นเราต้องลบบันทึกคีย์ต่างประเทศก่อนที่จะลบคีย์หลัก

ลบออกจาก StudentInfo WHERE DEPARTMENTID = 4 sqlite> DELETE FROM DepartmentInfo WHERE DeptName = 'Music' sqlite> SELECT * FROM DepartmentInfo DeptID DeptName ---------- ----------- 1 คณิตศาสตร์ 2 จิตวิทยา 3 การเลือกกีฬา * จากรหัสข้อมูล StudentInfo ID ชื่ออายุที่อยู่ DEPARTMENTID PHONE ---------- ----------------- --- ------------ ---------- 1 คณบดี 20 แคลิฟอร์เนีย 2,934 ******* 3 ยอห์น 23 นอร์เวย์ 1623 ****** * 4 มิทช์ 22 ฮิวสตัน 3,934 *******

ตอนนี้คุณรู้วิธีแก้ไขระเบียนในตารางฐานข้อมูล SQLite แล้ว ต่อไปในบล็อกบทช่วยสอน SQLite นี้เรามาพูดถึงประโยคและเงื่อนไขต่างๆที่คุณพบใน SQLite บ่อยที่สุด

ข้อ / เงื่อนไข SQLite

ก่อนที่จะเริ่มต้นด้วย clauses นี่คือไวยากรณ์ที่สมบูรณ์ของคำสั่ง SELECT ใน SQLite

ไวยากรณ์

เลือก [ทั้งหมด | DISTINCT] ผลลัพธ์ [FROM table-list] [WHERE expr] [GROUP BY expr-list] [HAVING expr] [compound-op select] * [ORDER BY sort-expr-list] [LIMIT จำนวนเต็ม [(OFFSET |,) จำนวนเต็ม ]]

หมายเหตุ: ฉันได้อัปเดตตาราง StudentInfo และ DepartmentInfo ตามที่แสดงด้านล่าง

// รหัสโต๊ะนักเรียน NAME อายุที่อยู่ DEPARTMENTID PHONE ---------- ---------- ---------- ------------ ---------- 1 คณบดี 20 แคลิฟอร์เนีย 2,934 ******* 3 จอห์น 23 นอร์เวย์ 1, 923 ******* 4 มิทช์ 22 ฮุสตัน 3,934 ******* 2 SAM 22 เท็กซัส 4 976 ******* 5 Johny 23 นอร์เวย์ 2,945 ******* 6 Robin 23 นอร์เวย์ 2 UNKNOWN // Department Details DeptID DeptName - --------- ----------- 1 คณิต 2 จิตวิทยา 3 กีฬา 4 ดนตรี 5 วิทยาศาสตร์
  • SQLite WHERE

ใน SQLite คำสั่ง WHERE ถูกใช้เพื่อกำหนดข้อ จำกัด เกี่ยวกับคำสั่ง SELECT โดยการกำหนดเงื่อนไขอย่างน้อยหนึ่งเงื่อนไขเพื่อรับข้อมูลที่ต้องการจากตารางในฐานข้อมูลหากเงื่อนไขที่ระบุเป็นที่พอใจหรือเป็นจริงจะส่งคืนค่าเฉพาะจากตาราง ดังที่คุณเคยเห็นมาก่อนคำสั่ง WHERE ไม่เพียง แต่ใช้ในคำสั่ง SELECT เท่านั้น แต่ยังใช้ในคำสั่ง UPDATE, DELETE และอื่น ๆ อีกด้วย

ตัวอย่าง

บทบาทและความรับผิดชอบของนักพัฒนา Hadoop
เลือกชื่อจาก StudentInfo WHERE AGE = 23NAME ---------- John Johny Robin

ใน SQLite มีตัวดำเนินการเชิงสัมพันธ์จำนวนหนึ่งที่สามารถใช้กับคำสั่ง WHERE ได้

  • SQLite GROUP BY

ใน SQLite คำสั่ง GROUP BY ใช้เพื่อรวมข้อมูลเป็นแถวเดียวโดยมีการทำซ้ำค่าของคอลัมน์ที่ระบุอย่างน้อยหนึ่งคอลัมน์ คำสั่งนี้ใช้กับคำสั่ง WHERE ในคำสั่ง SELECT และนำหน้า ORDER BY clause

ไวยากรณ์

เลือกผลลัพธ์จาก [table-list] GROUP BY [expr-list]
เลือกชื่อที่อยู่จากกลุ่มข้อมูล StudentInfo ตามชื่อชื่อที่อยู่ ---------- ---------- Dean California John Norway Johny Norway Mitch Houston Robin Norway SAM Texas

สังเกตว่ากระบวนการจัดกลุ่มมีสองขั้นตอน ขั้นแรกนิพจน์ GROUP BY ใช้เพื่อจัดเรียงแถวของตารางเป็นกลุ่มต่างๆ เมื่อกำหนดกลุ่มแล้วคำสั่ง SELECT จะกำหนดวิธีการแบนกลุ่มเหล่านั้นลงในแถวเดียว

  • SQLite ORDER BY

โดยทั่วไปตาราง SQLite จะจัดเก็บข้อมูลตามลำดับที่ไม่ระบุและจะส่งคืนระเบียนในลำดับที่ไม่ได้ระบุเดียวกันในขณะที่ดึงข้อมูลโดยใช้คำสั่ง SQLite select ในกรณีเช่นนี้คุณสามารถใช้คำสั่ง ORDER BY ที่ใช้เพื่อจัดเรียงระเบียนคอลัมน์ทั้งจากน้อยไปหามากหรือจากมากไปหาน้อย ในตัวอย่างด้านล่างฉันได้จัดกลุ่มและเรียงลำดับ 9in จากมากไปหาน้อย) ข้อมูลตามที่อยู่

ไวยากรณ์

เลือกนิพจน์จากรายการตาราง [เงื่อนไขที่] ORDER BY column1, column2, ... [ASC | DESC]

ตัวอย่าง

เลือกที่อยู่ COUNT (ที่อยู่) จากกลุ่มข้อมูล StudentInfo ตามลำดับที่อยู่โดย ADDRESS DESC ADDRESS COUNT (ADDRESS) ---------- -------------- Texas 1 Norway 3 Houston 1 แคลิฟอร์เนีย 1
  • SQLite มีโดย

ใน SQLite ไฟล์ มี อนุประโยคเหมือนกับ ที่ไหน อนุประโยค HAVING clause เป็นเงื่อนไขเพิ่มเติมที่ใช้หลังจากการรวมเกิดขึ้นพร้อมกับ group by ในคำสั่ง select โดยทั่วไปใน SQLite ที่ไหน อนุประโยคใช้เพื่อใช้เงื่อนไขกับแต่ละองค์ประกอบในตารางและที่ มี อนุประโยคใช้เพื่อเพิ่มเงื่อนไขการกรองตามกลุ่มที่สร้างโดยคำสั่ง Group By

ตัวอย่าง

เลือกที่อยู่, COUNT (ที่อยู่) จากกลุ่มข้อมูลนักเรียนตามที่อยู่ที่มี COUNT (*)> 1 เลขที่อยู่ (ที่อยู่) ---------- -------------- นอร์เวย์ 3
  • ข้อ จำกัด SQLite

ใน SQLite คำสั่ง LIMIT ใช้เพื่อตั้งค่าขีด จำกัด ของระเบียนที่ส่งคืนโดยคำสั่ง select ลองพิจารณาตัวอย่างเพื่อทำความเข้าใจแนวคิด

ไวยากรณ์

เลือกนิพจน์จากรายการตาราง [เงื่อนไข WHERE] LIMIT number_rows OFFSET offset_value

ตัวอย่าง

เลือกชื่อที่อยู่จาก StudentInfo LIMIT 4 OFFSET 2 NAME ADDRESS ---------- ---------- Mitch Houston SAM Texas Johny Norway Robin Norway

ออฟเซ็ตเป็นทางเลือกและกำหนดจำนวนแถวที่จะข้ามไปที่จุดเริ่มต้นของชุดผลลัพธ์ตาม offset_value .

  • SQLite AND & OR

ใน SQLite ตัวดำเนินการ AND & OR ใช้เพื่อดำเนินการหลายเงื่อนไขในการเลือกแทรกอัปเดตและลบคำสั่งตามข้อกำหนดของเรา ตัวดำเนินการ SQLite AND จะส่งคืนแถวหรือระเบียนที่ตรงตามเงื่อนไขที่กำหนดโดยใช้ตัวดำเนินการ AND

ตัวอย่าง 1

เลือกชื่อจากข้อมูลนักเรียนที่อายุ = 22 และที่อยู่ = ชื่อ 'เท็กซัส' ---------- SAM

เงื่อนไข OR ใช้เพื่อกำหนดเงื่อนไขหลายเงื่อนไขในคำสั่ง SQLite และจะส่งคืนแถวหรือเร็กคอร์ดจากคำสั่งหากเงื่อนไขใดเงื่อนไขหนึ่งเป็นที่พอใจ

ตัวอย่าง 2

เลือกชื่อจากข้อมูลนักเรียนที่ไหน (อายุ = 22 และที่อยู่ = 'นอร์เวย์') หรือที่อยู่ = ชื่อ 'นอร์เวย์' ---------- John Johny Robin
  • ตัวดำเนินการ SQLite GLOB

ใน SQLite ตัวดำเนินการ GLOB ใช้เพื่อตรวจสอบว่าค่าสตริงที่ระบุตรงกับรูปแบบเฉพาะหรือไม่ ในกรณีที่ค่าสตริงตรงกับค่ารูปแบบก็จะกลับมา จริง และคล้ายกับตัวดำเนินการ LIKE นอกจากนี้ GLOB ยังเป็น กรณีที่สำคัญ.

ไวยากรณ์

เลือก * จาก table_name WHERE column_name GLOB 'search-expression'

ตัวอย่าง

เลือก * จาก StudentInfo WHERE NAME GLOB 'Joh *' ID NAME AGE ADDRESS DEPARTMENTID PHONE ---------- ---------------- ------- ------------ ---------- 3 ยอห์น 23 นอร์เวย์ 1 923 ******* 5 Johny 23 นอร์เวย์ 2,945 ** *****
  • ความแตกต่างของ SQLite

ใน SQLite คีย์เวิร์ด DISTINCT จะสแกนชุดผลลัพธ์ของคำสั่ง SELECT และกำจัดแถวที่ซ้ำกัน นอกจากนี้ค่า NULL จะถือว่าเป็นค่าที่ซ้ำกันดังนั้นหากเราใช้ส่วนคำสั่ง DISTINCT กับคอลัมน์ที่มีค่า NULL มันจะเก็บค่า NULL ไว้เพียงแถวเดียว เมื่อคุณใช้ DISTINCT สำหรับหลายคอลัมน์คำสั่งจะส่งกลับชุดค่าผสมที่ไม่ซ้ำกันของ coulnm1 และ คอลัมน์ 2

ตัวอย่าง

เลือกอายุที่แตกต่างจาก StudentInfo AGE ---------- 20 23 22
  • SQLite ในตัวดำเนินการ

ใน SQLite ตัวดำเนินการ IN ถูกใช้เพื่อกำหนดว่าค่าที่กำหนดตรงกับรายการของค่าที่กำหนดหรือผลลัพธ์ที่ส่งคืนโดยเคียวรีย่อย

ตัวอย่าง

เลือกชื่อจากข้อมูลนักเรียนที่อยู่ใน ('Texas', 'Houston') ชื่อ ---------- Mitch SAM
  • SQLite UNION และ UNION ALL

ใน SQLite ตัวดำเนินการ UNION ถูกใช้เพื่อรวมชุดผลลัพธ์ของ 2 หรือมากกว่าคำสั่ง SELECT และจะลบแถวที่ซ้ำกันระหว่างคำสั่ง SELECT ต่างๆ โปรดจำไว้ว่าคำสั่ง SELECT ที่เราใช้กับตัวดำเนินการ UNION ต้องมีจำนวนฟิลด์เท่ากันในชุดผลลัพธ์ที่มีชนิดข้อมูลที่คล้ายกัน

ไวยากรณ์

SELECT expression1, expression2, ... expression_n จากตาราง [เงื่อนไข WHERE] UNION / UNION ALL SELECT expression1, expression2, ... expression_n จากตาราง [WHERE condition]

ตัวอย่าง

เลือก DEPARTMENTID จาก StudentInfo UNION SELECT DeptId จาก DepartmentInfo ORDER โดย DEPARTMENTID ASC DEPARTMENTID ------------ 1 2 3 4 5

ตัวดำเนินการ UNION ALL ใช้เพื่อรวมชุดผลลัพธ์ของคำสั่ง SELECT 2 ชุดขึ้นไปและจะส่งคืนแถวทั้งหมดรวมทั้งรายการที่ซ้ำกัน

ตัวอย่าง

เลือก DEPARTMENTID จาก StudentInfo UNION ALL SELECT DeptId จาก DepartmentInfo ORDER BY DEPARTMENTID ASC DEPARTMENTID ------------ 1 1 2 2 2 2 3 3 4 4 5

ด้วยเหตุนี้เราจึงครอบคลุมคำสั่งพื้นฐานที่สุดที่คุณอาจต้องใช้เมื่อทำงานกับ SQLite ก้าวไปข้างหน้าด้วยบทช่วยสอน SQLite นี้มาดูคำสั่งเข้าร่วมใน SQLite

เข้าร่วมใน SQLite

ใน SQLite Joins คือใช้เพื่อรวมระเบียนจากสองตารางขึ้นไปในฐานข้อมูลและรับบันทึกตามความต้องการของเรา งJOINS ประเภทที่แตกต่างกันที่มีอยู่ใน SQLite ได้แก่ :

  • การเข้าร่วมภายใน -INNER JOIN ใช้เพื่อรวมและส่งคืนเฉพาะระเบียนที่ตรงกันจากตารางทวีคูณตามเงื่อนไขที่กำหนดในคำสั่ง SQLite
  • การเข้าร่วมภายนอก -SQLite Outer Join จะเลือกแถวที่ตรงกันจากหลายตารางเช่นเดียวกับ การเข้าร่วมภายใน และแถวอื่น ๆ นอกความสัมพันธ์พูดง่ายๆก็คือ SQLiteเข้าร่วมภายนอกเป็นการเพิ่มเข้าร่วมภายใน . โดยทั่วไปเรามีการเข้าร่วมภายนอกสามประเภทในมาตรฐาน SQL ได้แก่ LEFT, RIGHT และ FULL Outer Joins แต่ SQLite รองรับเฉพาะ LEFT OUTER JOIN
  • เข้าร่วมข้าม -ใช้เพื่อรับผลคูณคาร์ทีเซียนของแถวโดยจับคู่แต่ละแถวของตารางแรกกับทุกแถวของตารางที่สอง
  • เข้าร่วมด้วยตนเอง - มันใช้เพื่อเข้าร่วมโต๊ะเดียวกันกับตัวมันเอง ในการใช้ Self Join เราจำเป็นต้องสร้างนามแฝงที่แตกต่างกันสำหรับตารางเดียวกันเพื่อดำเนินการตามข้อกำหนดของเรา

แนวคิดนี้คล้ายกับระบบฐานข้อมูลเชิงสัมพันธ์อื่น ๆ เช่น SQL ดังนั้นหากต้องการทราบข้อมูลเพิ่มเติมคุณสามารถอ้างถึงบทความนี้ได้ที่ .

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

SQLite Tutorial: ข้อเสียของ SQLite

ด้านล่างนี้เป็นข้อด้อยของการใช้ SQLite:

  • มันทำงานได้ไม่ดีในสถาปัตยกรรมไคลเอนต์ / เซิร์ฟเวอร์
  • ขนาดฐานข้อมูล SQLite ถูก จำกัด ไว้ที่ 2GB ในกรณีส่วนใหญ่
  • SQLite ไม่ได้ติดตั้ง RIGHT OUTER JOIN และ FULL OUTER JOIN ด้วย SQLite เราสามารถใช้ LEFT OUTER JOIN ได้เท่านั้น
  • มุมมองใน SQLite เป็นแบบอ่านอย่างเดียว เราไม่สามารถใช้คำสั่ง DML (แทรกอัปเดตและลบ) กับ Views
  • เราไม่สามารถใช้คำสั่ง GRANT และ REVOKE กับ SQLite ได้

ด้วยเหตุนี้เราจึงสิ้นสุดบทช่วยสอน SQLite นี้

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

มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นของบทช่วยสอน SQLite นี้แล้วเราจะติดต่อกลับไป