แบบสอบถาม SQL อันดับต้น ๆ ใน Python ที่นักพัฒนา Python ทุกคนควรรู้

เผยแพร่แล้ว: 2021-01-29

SQL ย่อมาจาก 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?

ข้อจำกัดกำหนดประเภทของข้อมูลที่จะป้อนในตาราง มีการระบุไว้ในระหว่างการสร้างตารางและสามารถนำไปใช้กับเขตข้อมูลเดียวหรือหลายเขตข้อมูล ข้อจำกัดใน SQL คือ:
NOT NULL- ป้องกันค่า NULL ที่จะป้อนในฟิลด์
CHECK- ตรวจสอบว่าค่าทั้งหมดในฟิลด์เป็นไปตามเงื่อนไขที่กำหนดหรือไม่
DEFAULT- กำหนดค่าเริ่มต้นให้กับฟิลด์โดยอัตโนมัติหากไม่มีการป้อนค่า
UNIQUE- อนุญาตให้ป้อนเฉพาะค่าที่ไม่ซ้ำกันในฟิลด์
ดัชนี- จัดทำดัชนีฟิลด์ที่ให้การดึงข้อมูลที่รวดเร็วขึ้น
คีย์หลัก- ระบุแต่ละระเบียนในตารางโดยไม่ซ้ำกัน
กุญแจต่างประเทศ- จำกัดการกระทำที่อาจเป็นอันตรายต่อการเชื่อมโยงระหว่างตาราง

อธิบายดัชนีและประเภทของดัชนี?

ดัชนีหรือดัชนีฐานข้อมูลสามารถเรียกว่าตารางค้นหาพิเศษที่ทำให้การดำเนินการดึงข้อมูลเร็วขึ้นมาก มันกินหน่วยความจำมากขึ้นและเขียนเพิ่มเติมเพื่อค้นหาข้อมูลได้เร็วขึ้น ดัชนีสามารถมีได้ 4 ประเภท:
1. ดัชนีที่ไม่ซ้ำ
2. ดัชนีที่ไม่ซ้ำกัน
3. ดัชนีคลัสเตอร์

ความสัมพันธ์ใน SQL คืออะไรและมีประเภทใดบ้าง

ความสัมพันธ์ระหว่างหลายหน่วยงานหรือหลายวัตถุที่จับต้องได้และจับต้องไม่ได้ที่มีบางอย่างเกี่ยวข้องกันเรียกว่าความสัมพันธ์ ความสัมพันธ์ใน SQL มี 4 ประเภท:
1. ตัวต่อตัว
2. ตัวต่อตัว/ตัวต่อตัว
3. หลายต่อหลายคน
4. ความสัมพันธ์แบบอ้างอิงตนเอง