แบบสอบถาม SQL อันดับต้น ๆ ใน Python ที่นักพัฒนา Python ทุกคนควรรู้
เผยแพร่แล้ว: 2021-01-29SQL ย่อมาจาก Structured Query language ที่ช่วยในการจัดการ จัดการ และจัดเก็บฐานข้อมูลเชิงสัมพันธ์ ฐานข้อมูลเชิงสัมพันธ์ประกอบด้วยคอลเลกชันของตารางที่สัมพันธ์กันในรูปแบบใดรูปแบบหนึ่ง ตารางหลายตารางช่วยให้เราสามารถแยกเอนทิตีต่างๆ ของข้อมูลเป้าหมาย และหลีกเลี่ยงคอลัมน์หลายร้อยคอลัมน์ที่รวมเข้าด้วยกันในตารางเดียว ซึ่งอาจทำให้การจัดการฐานข้อมูลทำได้ยาก
มันเป็นภาษาแบบสอบถามและไม่ใช่ฐานข้อมูลเอง แบบสอบถามเหล่านี้สามารถดำเนินการกับระบบจัดการฐานข้อมูลเชิงสัมพันธ์ใดๆ เช่น Oracle, Microsoft SQL Server แต่มีวิธีแบบหลามเพื่อสร้างและดำเนินการค้นหา SQL
สารบัญ
SQLite3
นี่คือไลบรารี่ในตัวของ Python ที่ช่วยให้เราสร้างฐานข้อมูลน้ำหนักเบาโดยไม่จำเป็นต้องรันโมเดลไคลเอนต์-เซิร์ฟเวอร์จริง แอปพลิเคชันสามารถใช้ภายในเพื่อเก็บข้อมูลและดำเนินการคำสั่ง SQL แพ็คเกจนี้ใช้งานง่ายและอนุญาตให้ทำซ้ำสคีมาเดียวกันในฐานข้อมูลที่ใช้งานจริง เช่น Postgresql มาดูวิธีการตั้งค่าฐานข้อมูลกัน
- คำสั่งการนำเข้ามาตรฐาน:
นำเข้า sqlite3 เป็น sq
ไลบรารีถูกนำเข้าเป็นนามแฝง "sq"
- ตอนนี้ เราต้องสร้างการเชื่อมต่อกับฐานข้อมูล ออบเจ็กต์การเชื่อมต่อจะทำหน้าที่นี้:
การเชื่อมต่อ = sq.connect (“example.db”)
หากไม่ได้สร้างไฟล์นี้มาก่อน ไฟล์จะถูกสร้างขึ้นทันทีที่ดำเนินการคำสั่งนี้
- ในการเข้าถึงและดึงข้อมูลจากฐานข้อมูล จำเป็นต้องสร้างวัตถุเคอร์เซอร์
เคอร์เซอร์ = การเชื่อมต่อเคอร์เซอร์ ()
เมื่อตั้งค่าพื้นฐานเสร็จแล้ว เราสามารถส่งข้อมูลไปยังฐานข้อมูลโดยการสร้างตารางที่เกี่ยวข้องกัน แต่ก่อนหน้านั้น เรามาแก้ไขคำสั่ง SQL บางคำสั่งกัน
คำสั่งพื้นฐานในSQL
SQL นั้นยอดเยี่ยมในแง่ของคำสั่งภาษาอังกฤษที่อ่านได้ โดยปกติแล้วจะพิมพ์เป็นตัวพิมพ์ใหญ่และไม่มีข้อจำกัดเกี่ยวกับเรื่องนี้ โดยทั่วไปแล้วจะมีการปฏิบัติเพื่อให้คีย์เวิร์ดของคิวรีถูกเน้น และสามารถแยกแยะได้จากแอตทริบิวต์ของตาราง แต่เนื่องจากตอนนี้เรามี IDE ที่ทรงพลังที่ไฮไลต์ด้วยสีที่ต่างกัน วิธีการใดๆ ก็ใช้ได้
1. สร้างตาราง
สิ่งนี้ช่วยให้คุณสร้างวัตถุที่เก็บข้อมูล ตารางในฐานข้อมูลของคุณ ฐานข้อมูลสามารถมีหลายตารางที่มีความสัมพันธ์หนึ่งหรือหลายความสัมพันธ์ ตารางมีส่วนหัวสำหรับทุกคอลัมน์ที่อธิบายค่าที่เก็บไว้ ขณะสร้างตาราง คุณต้องระบุชื่อคอลัมน์ ประเภทของข้อมูลที่จะเก็บ และขนาด คุณสามารถเพิ่มแอตทริบิวต์อื่นๆ เช่น หากคอลัมน์เป็นคีย์หลัก สามารถมีค่าว่างได้ และอื่นๆ
สามารถสร้างตารางพื้นฐานได้ดังนี้:
สร้างตาราง company_data (
รหัส int,
ชื่อ varchar (24),
no_of_employee int
);
2. เลือกและจาก
ตามชื่อที่แนะนำ ใช้เพื่อเลือกและดึงข้อมูลจากตาราง เป็นขั้นตอนสำคัญที่จะช่วยให้คุณได้ดูข้อมูล มันคล้ายกับฟังก์ชั่นหัวหรือหางของนุ่น
แบบสอบถามอย่างง่ายโดยใช้คำสั่งเหล่านี้จะมีลักษณะดังนี้:
SELECT <column_name(s)>
จาก <table_name>;
หากต้องการดึงข้อมูลคอลัมน์ทั้งหมดจากตาราง คุณสามารถใส่ดาว (*) แทนชื่อคอลัมน์ทั้งหมดได้ คีย์เวิร์ด LIMIT ช่วยในการกำหนดจำนวนแถวสูงสุด พิจารณาคำถามนี้:
เลือก *
จาก example_table
จำกัด 5;
3. ที่ไหน
คำสั่ง where ใช้เพื่อระบุเงื่อนไขเพิ่มเติมเหนือแบบสอบถาม คุณสามารถรวมช่วงของคอลัมน์ การเปรียบเทียบเฉพาะ หรือการปฏิเสธได้
ตัวอย่างเช่น:
เลือก client_name, company_name
จากบริษัท_data
โดยที่ company_name = 'upGrad';
4. แทรก
ส่วนคำสั่งนี้ใช้เพื่อเพิ่มค่าลงในตารางข้อมูล ค่าจะถูกแทรกในลำดับเดียวกันกับชื่อคอลัมน์ที่ถูกเพิ่มลงในตารางในคำสั่ง create table หนึ่งสามารถแทรกหลายแถวหรือทีละรายการ
ตัวอย่างเช่น แบบสอบถามด้านล่างแทรก 3 ระเบียนลงในตาราง:
INSERT INTO company_data (id, ชื่อ, no_of_employees)
ค่านิยม
(1, 'companyz_A', 100),
(2, 'บริษัท_B', 200),
(3, 'บริษัท_C', 500);
ดำเนินการผ่าน Python
เมื่อคุณทราบคำสั่งแล้ว ก็ถึงเวลารันคำสั่งเหล่านั้นในโค้ด จนถึงตอนนี้ เราได้เชื่อมต่อกับฐานข้อมูลและสร้างวัตถุเคอร์เซอร์แล้ว วัตถุนี้จะช่วยในการรันคำสั่งบนฐานข้อมูล:

cursor.execute(''' <QUERY> ''')
แบบสอบถามถูกส่งผ่านเป็นสตริงและในเครื่องหมายอัญประกาศ การเปลี่ยนแปลงนี้จะไม่ปรากฏในฐานข้อมูลจนกว่าคุณจะยอมรับการเปลี่ยนแปลงนี้ การปิดการเชื่อมต่อกับฐานข้อมูลในตอนท้ายทำให้มั่นใจได้ว่าจะไม่มีการดำเนินการใหม่หลังจากจุดนี้
ดูรหัสง่าย ๆ นี้:
นำเข้า sqlite3 เป็น sq
การเชื่อมต่อ = sq.connect (“example.db”)
เคอร์เซอร์ = การเชื่อมต่อเคอร์เซอร์ ()
เคอร์เซอร์.execute(”'
สร้างตาราง table1 (
รหัส int,
ชื่อ วาร์ชาร์ (24)
)
”')
เคอร์เซอร์.execute(”'
INSERT INTO table1 (id, ชื่อ)
ค่านิยม
(1, 'อัปเกรด'),
(2, 'บล็อก')
”')
เคอร์เซอร์.execute(”'
เลือก *
จากตาราง1
”')
การเชื่อมต่อ.commit()
การเชื่อมต่อปิด ()
เคล็ดลับสำคัญ
1. เนื่องจากข้อความค้นหาถูกส่งผ่านเป็นสตริง การแก้ไขโดยใช้ f-string อาจดูเหมือนเป็นตัวเลือกที่ดีในการทำให้โปรแกรมเป็นไดนามิกและควบคุมโดยผู้ใช้ แต่อาจทำให้เกิดปัญหาด้านความปลอดภัยบางอย่าง เช่น การโจมตีด้วยการฉีด SQL เพื่อหลีกเลี่ยงปัญหาเหล่านี้ ให้ใช้ตัวยึดตำแหน่ง “?” ทุกที่ที่คุณต้องการแทนที่ค่าบางค่าในแบบสอบถาม ตัวอย่างเช่น:
cursor.execute('“เลือก ? จาก ?''', col_name, table_name)
คุณสามารถขอให้ผู้ใช้ระบุชื่อคอลัมน์และค่านั้นจะถูกแทนที่ที่นี่
2. ใช้ฟังก์ชัน เช่น fetchone() และ fetchall() เพื่อวนซ้ำผลลัพธ์ Fetchone ส่งคืนแถวถัดไปในแบบสอบถาม และ fetchall ส่งคืนแถวทั้งหมดที่ดึงมาโดยเคอร์เซอร์ ผลลัพธ์จะถูกส่งกลับเป็น tuple ดังนั้นจึงไม่สามารถแก้ไขได้โดยฟังก์ชันภายนอกในโปรแกรม
3. หากคุณต้องการเพิ่มค่าจำนวนมากลงในฐานข้อมูล คุณสามารถใช้ฟังก์ชัน executemany() และส่งรายการของทูเพิลที่มีค่าที่จะเพิ่มได้ ตัวอย่างเช่น:
to_add = [(1, 'สวัสดี'), (2 'โลก')]
cursor.executemany('INSERT INTO ค่าตาราง (?, ?)', to_add)
อ่านเพิ่มเติม: แนวคิดและหัวข้อโครงการ Python
เรียนรู้ หลักสูตรวิทยาศาสตร์ข้อมูล ออนไลน์จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว
บทสรุป
SQL เป็นภาษาฐานข้อมูลที่ต้องการมากที่สุดและเข้าใจง่าย ผู้เริ่มต้นใน Data Science ส่วนใหญ่ควรฝึก SQL เนื่องจากจะปรับปรุงกระบวนการดึงข้อมูลและให้ข้อมูลคร่าวๆ ว่า Data Engineering ดำเนินการอย่างไร เป็นภาษามาตรฐานสำหรับการจัดการฐานข้อมูลใดๆ และช่วยให้เข้าถึงฐานข้อมูลได้รวดเร็วยิ่งขึ้น
หากคุณอยากเรียนรู้เกี่ยวกับวิทยาศาสตร์ข้อมูล ให้ลองดูประกาศนียบัตร PG ด้านวิทยาศาสตร์ข้อมูลของ IIIT-B และ upGrad ซึ่งสร้างขึ้นสำหรับมืออาชีพด้านการทำงานและเสนอกรณีศึกษาและโครงการมากกว่า 10 รายการ เวิร์กช็อปภาคปฏิบัติจริง การให้คำปรึกษากับผู้เชี่ยวชาญในอุตสาหกรรม 1- on-1 กับที่ปรึกษาในอุตสาหกรรม การเรียนรู้มากกว่า 400 ชั่วโมงและความช่วยเหลือด้านงานกับบริษัทชั้นนำ
ข้อจำกัดกำหนดประเภทของข้อมูลที่จะป้อนในตาราง มีการระบุไว้ในระหว่างการสร้างตารางและสามารถนำไปใช้กับเขตข้อมูลเดียวหรือหลายเขตข้อมูล ข้อจำกัดใน SQL คือ: ดัชนีหรือดัชนีฐานข้อมูลสามารถเรียกว่าตารางค้นหาพิเศษที่ทำให้การดำเนินการดึงข้อมูลเร็วขึ้นมาก มันกินหน่วยความจำมากขึ้นและเขียนเพิ่มเติมเพื่อค้นหาข้อมูลได้เร็วขึ้น ดัชนีสามารถมีได้ 4 ประเภท: ความสัมพันธ์ระหว่างหลายหน่วยงานหรือหลายวัตถุที่จับต้องได้และจับต้องไม่ได้ที่มีบางอย่างเกี่ยวข้องกันเรียกว่าความสัมพันธ์ ความสัมพันธ์ใน SQL มี 4 ประเภท:คุณรู้อะไรเกี่ยวกับข้อจำกัดใน SQL?
NOT NULL- ป้องกันค่า NULL ที่จะป้อนในฟิลด์
CHECK- ตรวจสอบว่าค่าทั้งหมดในฟิลด์เป็นไปตามเงื่อนไขที่กำหนดหรือไม่
DEFAULT- กำหนดค่าเริ่มต้นให้กับฟิลด์โดยอัตโนมัติหากไม่มีการป้อนค่า
UNIQUE- อนุญาตให้ป้อนเฉพาะค่าที่ไม่ซ้ำกันในฟิลด์
ดัชนี- จัดทำดัชนีฟิลด์ที่ให้การดึงข้อมูลที่รวดเร็วขึ้น
คีย์หลัก- ระบุแต่ละระเบียนในตารางโดยไม่ซ้ำกัน
กุญแจต่างประเทศ- จำกัดการกระทำที่อาจเป็นอันตรายต่อการเชื่อมโยงระหว่างตาราง อธิบายดัชนีและประเภทของดัชนี?
1. ดัชนีที่ไม่ซ้ำ
2. ดัชนีที่ไม่ซ้ำกัน
3. ดัชนีคลัสเตอร์ ความสัมพันธ์ใน SQL คืออะไรและมีประเภทใดบ้าง
1. ตัวต่อตัว
2. ตัวต่อตัว/ตัวต่อตัว
3. หลายต่อหลายคน
4. ความสัมพันธ์แบบอ้างอิงตนเอง