Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> SQL

ภาษาคิวรีที่มีโครงสร้าง (SQL)


SQL (Structured Query Language) เป็นภาษาโปรแกรมเฉพาะซึ่งเป็นมาตรฐานที่ใช้สำหรับจัดการฐานข้อมูลเชิงสัมพันธ์และดำเนินการต่างๆ กับข้อมูล มีการใช้ SQL ที่หลากหลายซึ่งรวมถึงการปรับเปลี่ยนตารางฐานข้อมูลและโครงสร้างดัชนี การเพิ่ม อัปเดต และลบแถวข้อมูล และการดึงข้อมูลชุดย่อยต่างๆ จากฐานข้อมูลสำหรับการประมวลผลธุรกรรมและแอปพลิเคชันการวิเคราะห์ มีการสืบค้นข้อมูลและการดำเนินการเฉพาะทางซึ่งทำงานในรูปแบบของคำสั่งและเรียกกันทั่วไปว่าคำสั่ง SQL เช่น เลือก เพิ่ม แทรก อัปเดต ลบ สร้าง แก้ไข และตัดทอน

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

SQL ยังเป็นภาษาเฉพาะโดเมนที่ใช้สำหรับการเขียนโปรแกรมและการออกแบบในข้อมูลที่จัดเก็บไว้ในระบบการจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS) มีประโยชน์อย่างยิ่งในการจัดการข้อมูลที่มีโครงสร้างซึ่งมีความสัมพันธ์ระหว่างเอนทิตี/ตัวแปรต่างๆ ของข้อมูล

เดิม SQL มีพื้นฐานมาจากพีชคณิตเชิงสัมพันธ์และแคลคูลัสเชิงสัมพันธ์ทูเปิล SQL ประกอบด้วยคำสั่งหลายประเภทที่รู้จักกันทั่วไปว่าเป็นภาษาการสืบค้นข้อมูล (DQL) ภาษากำหนดข้อมูล (DDL) ภาษาควบคุมข้อมูล (DCL) และข้อมูล ภาษาการจัดการ (DML) ขอบเขตของ SQL รวมถึงคิวรีข้อมูล การจัดการข้อมูล (แทรก อัปเดต และลบ) ข้อกำหนดข้อมูล (การสร้างและปรับเปลี่ยนสคีมา) และการควบคุมการเข้าถึงข้อมูล นอกจากนี้ SQL ยังถูกอธิบายว่าเป็นภาษาประกาศ (4GL) เนื่องจากมีองค์ประกอบขั้นตอนด้วย

แอพพลิเคชั่นของ SQL

มีแอพพลิเคชั่นต่างๆ ของ SQL -

  • 1. สคริปต์การรวมข้อมูล - แอปพลิเคชันหลักของ SQL คือการเขียนสคริปต์การรวมข้อมูลโดยผู้ดูแลระบบฐานข้อมูลและนักพัฒนา
  • 2. แบบสอบถามเชิงวิเคราะห์ - นักวิเคราะห์ข้อมูลใช้ภาษาคิวรีที่มีโครงสร้างสำหรับการตั้งค่าและเรียกใช้การสืบค้นเชิงวิเคราะห์เป็นประจำ
  • 3. ดึงข้อมูล - แอปพลิเคชั่นยอดนิยมอีกตัวหนึ่งของภาษานี้คือการดึงข้อมูลชุดย่อยภายในฐานข้อมูลสำหรับแอปพลิเคชันการวิเคราะห์และการประมวลผลธุรกรรม อิลิเมนต์ SQL ที่ใช้บ่อยที่สุดคือ การเลือก แทรก อัปเดต เพิ่ม ลบ สร้าง ตัดทอน และแก้ไข
  • 4. แอปพลิเคชันที่สำคัญอื่นๆ - SQL ใช้สำหรับแก้ไขโครงสร้างดัชนีและตารางฐานข้อมูล นอกจากนี้ ผู้ใช้สามารถเพิ่ม อัปเดต และลบแถวของข้อมูลโดยใช้ภาษานี้

SQL Standard และส่วนขยายที่เป็นกรรมสิทธิ์

มาตรฐาน SQL อย่างเป็นทางการถูกนำมาใช้โดย American National Standards Institute (ANSI) ในปี 1986 และต่อมาโดยองค์กรระหว่างประเทศเพื่อการมาตรฐาน (ISO) ในปี 1987 ผู้ดูแลระบบฐานข้อมูลใช้ SQL เป็นประจำ เช่นเดียวกับนักพัฒนาที่เขียนสคริปต์และข้อมูลการรวมข้อมูล นักวิเคราะห์ที่ต้องการตั้งค่าและเรียกใช้การสืบค้นข้อมูลเชิงวิเคราะห์

ทั้งระบบจัดการฐานข้อมูลเชิงสัมพันธ์ที่เป็นกรรมสิทธิ์และแบบโอเพนซอร์สที่สร้างขึ้นโดยใช้ SQL นั้นมีให้ใช้งานโดยองค์กร ได้แก่ Microsoft SQL Server, Oracle Database, IBM DB2, SAP HANA, SAP Adaptive Server, MySQL (ปัจจุบันเป็นของ Oracle) และ PostgreSQL

อย่างไรก็ตาม ผลิตภัณฑ์ฐานข้อมูลเหล่านี้จำนวนมากสนับสนุน SQL ด้วยส่วนขยายที่เป็นกรรมสิทธิ์ของภาษามาตรฐานสำหรับการเขียนโปรแกรมตามขั้นตอนและฟังก์ชันอื่นๆ ตัวอย่างเช่น Microsoft เสนอชุดส่วนขยายที่เรียกว่า Transact-SQL (T-SQL) ในขณะที่รุ่นมาตรฐานของ Oracle คือ PL/SQL ด้วยเหตุนี้ ตัวแปรต่างๆ ของ SQL ที่ผู้ขายนำเสนอจึงไม่สามารถทำงานร่วมกันได้อย่างสมบูรณ์

คำสั่งและไวยากรณ์ของ SQL

คำสั่ง SQL แบ่งออกเป็นประเภทต่างๆ เช่น ภาษาการจัดการข้อมูล (DML) และคำสั่งภาษาข้อกำหนดของข้อมูล (DDL) การควบคุมธุรกรรม และมาตรการรักษาความปลอดภัย

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

ภาษา SQL แบ่งออกเป็นองค์ประกอบภาษาต่างๆ รวมถึง -

  • ข้อ ซึ่งเป็นส่วนประกอบของประโยคคำสั่งและแบบสอบถาม
  • นิพจน์ ซึ่งสามารถมีค่าสเกลาร์หรือตารางที่ประกอบด้วยคอลัมน์และแถวของข้อมูล
  • ภาคแสดง ใช้เพื่อระบุเงื่อนไขที่สามารถประเมินเป็น SQL สามค่าตรรกะ (3VL) (จริง/เท็จ/ไม่ทราบ) หรือค่าความจริงบูลีน (จริง/เท็จ) และใช้เพื่อจำกัดผลกระทบของคำสั่งและแบบสอบถาม หรือเพื่อเปลี่ยนการไหลของโปรแกรม .
  • สอบถาม ใช้เพื่อดึงข้อมูลตามเกณฑ์เฉพาะ
  • แถลงการณ์ ซึ่งอาจมีผลต่อเนื่องกับสคีมาและข้อมูล หรืออาจควบคุมธุรกรรม ขั้นตอนของโปรแกรม การเชื่อมต่อ เซสชัน หรือการวินิจฉัย
  • คำสั่ง SQL ยังรวม เครื่องหมายอัฒภาค (";") คำสั่ง เทอร์มิเนเตอร์
  • ช่องว่าง ไม่มีนัยสำคัญ โดยทั่วไปจะถูกละเว้นในคำสั่ง SQL และแบบสอบถาม ทำให้ง่ายต่อการจัดรูปแบบโค้ด SQL เพื่อให้สามารถอ่านได้

การทำงานร่วมกันและการกำหนดมาตรฐาน

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

มีเหตุผลหลายประการสำหรับปัญหาการเคลื่อนย้ายระหว่างระบบฐานข้อมูล -

  • ความซับซ้อนและขนาดของมาตรฐาน SQL หมายความว่าผู้ดำเนินการส่วนใหญ่ไม่รองรับมาตรฐานทั้งหมด
  • มาตรฐานนี้ไม่ได้ระบุพฤติกรรมของฐานข้อมูลในส่วนที่สำคัญหลายประการ (เช่น ดัชนี ที่จัดเก็บไฟล์...) ปล่อยให้การใช้งานเป็นตัวตัดสินว่าจะทำงานอย่างไร
  • มาตรฐาน SQL ระบุไวยากรณ์ที่ระบบฐานข้อมูลที่สอดคล้องต้องดำเนินการอย่างแม่นยำ อย่างไรก็ตาม ข้อกำหนดมาตรฐานของความหมายของโครงสร้างภาษานั้นมีความชัดเจนน้อยกว่า ทำให้เกิดความกำกวม
  • ผู้จำหน่ายฐานข้อมูลหลายรายมีฐานลูกค้าขนาดใหญ่อยู่แล้ว โดยที่เวอร์ชันที่ใหม่กว่าของมาตรฐาน SQL ขัดแย้งกับการทำงานก่อนหน้าของฐานข้อมูลของผู้ขาย ผู้ขายอาจไม่เต็มใจที่จะทำลายความเข้ากันได้แบบย้อนหลัง
  • มีแรงจูงใจในเชิงพาณิชย์เล็กน้อยสำหรับผู้ขายเพื่อให้ผู้ใช้เปลี่ยนซัพพลายเออร์ฐานข้อมูลได้ง่ายขึ้น (ดูการล็อคอินของผู้ขาย)
  • ผู้ใช้ที่ประเมินซอฟต์แวร์ฐานข้อมูลมักจะให้ปัจจัยอื่นๆ เช่น ประสิทธิภาพในลำดับความสำคัญสูงกว่าการปฏิบัติตามมาตรฐาน

ข้อดีของ SQL

  • SQL Queries สามารถใช้เพื่อดึงข้อมูลจำนวนมากจากฐานข้อมูลได้อย่างรวดเร็วและมีประสิทธิภาพ
  • SQL ใช้สำหรับดูข้อมูลโดยไม่ต้องจัดเก็บข้อมูลในวัตถุ
  • SQL รวมตารางตั้งแต่สองตารางขึ้นไปและแสดงเป็นวัตถุเดียวต่อผู้ใช้
  • ฐานข้อมูล SQL ใช้มาตรฐานที่มีมาช้านาน ซึ่ง ANSI & ไอเอสโอ ฐานข้อมูลที่ไม่ใช่ SQL ไม่เป็นไปตามมาตรฐานที่ชัดเจน
  • การใช้ SQL มาตรฐานช่วยให้จัดการระบบฐานข้อมูลได้ง่ายขึ้นโดยไม่ต้องเขียนโค้ดจำนวนมาก
  • SQL จำกัดการเข้าถึงตารางเพื่อไม่ให้ใครสามารถแทรกแถวลงในตารางได้
  • ก่อนหน้านี้ฐานข้อมูล SQL มีความหมายเหมือนกันกับฐานข้อมูลเชิงสัมพันธ์ ด้วยการเกิดขึ้นของ ObjectOriented DBMS ความสามารถในการจัดเก็บอ็อบเจ็กต์จะถูกขยายไปยังฐานข้อมูลเชิงสัมพันธ์

ข้อเสียของ SQL

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