ภาษาโปรแกรม SQL “ผู้ใช้” คืออะไร? ข้อจำกัดอื่นๆ – UNIQUE, DEFAULT, CHECK

ในบทนี้...

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

SQL คืออะไรและไม่ใช่อะไร

สิ่งแรกที่ต้องเข้าใจเกี่ยวกับ SQL คือว่ามันไม่ใช่ ขั้นตอนเช่น FORTRAN, Basic, C, COBOL, Pascal และ Java ในการแก้ปัญหาโดยใช้ภาษาขั้นตอนเหล่านี้ คุณต้องเขียนขั้นตอนที่ดำเนินการที่ระบุทีละรายการจนกว่างานจะเสร็จสิ้น ขั้นตอนอาจเป็นลำดับเชิงเส้นหรือมีการแตกแขนง แต่ในกรณีใดกรณีหนึ่งโปรแกรมเมอร์จะระบุลำดับการดำเนินการ

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

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

เพื่ออธิบายสิ่งที่ฉันหมายถึงเมื่อฉันพูดว่า "บอกระบบว่าคุณต้องการอะไร" สมมติว่าคุณมีตาราง EMPLOYEE พร้อมข้อมูลพนักงาน และคุณต้องการเลือกแถวทั้งหมดจากตารางที่ตรงกับพนักงาน "อาวุโส" ทั้งหมด คนงาน "อาวุโส" หมายถึงบุคคลใดก็ตามที่มีอายุเกิน 40 ปี หรือผู้ที่มีรายได้มากกว่า 60,000 ดอลลาร์ต่อปี การเลือกที่คุณต้องการสามารถทำได้โดยใช้แบบสอบถามต่อไปนี้:

เลือก * จากพนักงาน โดยที่อายุ >40 หรือเงินเดือน >60000

คำสั่งนี้เลือกจากตาราง EMPLOYEE ทุกแถวที่มีค่าคอลัมน์ AGE (อายุ) มากกว่า 40 หรือค่าคอลัมน์ SALARY (เงินเดือน) มากกว่า 60000 ตัว SQL เองรู้วิธีเลือกข้อมูล กลไกฐานข้อมูลจะตรวจสอบฐานข้อมูลและตัดสินใจด้วยตนเองว่าควรดำเนินการแบบสอบถามอย่างไร สิ่งที่คุณต้องทำคือระบุข้อมูลที่คุณต้องการ

จดจำ:
แบบสอบถามคือคำถามที่คุณถามฐานข้อมูล หากข้อมูลใดๆ ตรงกับเงื่อนไขคำขอของคุณ SQL จะส่งข้อมูลดังกล่าวให้กับคุณ
.

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

คุณสามารถเลือกข้อมูลจากฐานข้อมูลได้ด้วยวิธีใดวิธีหนึ่งต่อไปนี้

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

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

52. SQL (ภาษาแบบสอบถามที่มีโครงสร้าง) – ภาษาที่มีโครงสร้างคำขอ- นี้ ภาษามาตรฐานคำขอสำหรับการทำงานร่วมกับ ฐานข้อมูลเชิงสัมพันธ์ข้อมูล.

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

SQL สามารถใช้เพื่อเข้าถึงฐานข้อมูลได้สองโหมด: งานแบบโต้ตอบ และใน แอพพลิเคชั่น .

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

การระบุลักษณะภาษา SQL โดยรวมเราสามารถเน้นคุณสมบัติต่อไปนี้:

· โครงสร้างระดับสูงชวนให้นึกถึง ภาษาอังกฤษ;

· ความเป็นอิสระจาก DBMS เฉพาะ

· ความพร้อมของมาตรฐานที่กำลังพัฒนา

· ความสามารถในการดำเนินการสืบค้นเชิงโต้ตอบเพื่อดึงข้อมูลและปรับเปลี่ยนโครงสร้าง

·ข้อกำหนด การเข้าถึงซอฟต์แวร์ไปยังฐานข้อมูล

· การสนับสนุนสถาปัตยกรรมไคลเอ็นต์/เซิร์ฟเวอร์

· ความสามารถในการขยายและการสนับสนุนสำหรับเทคโนโลยีเชิงวัตถุ



· ความสามารถในการเข้าถึงข้อมูลบนอินเทอร์เน็ต

หน้าที่หลักของภาษา SQL:

เอสแอลแอล – ภาษาแบบสอบถามแบบโต้ตอบ- ผู้ใช้เข้า คำสั่ง SQLโต้ตอบเพื่อดึงข้อมูลและแสดงบนหน้าจอตลอดจนทำการเปลี่ยนแปลงฐานข้อมูล

เอสแอลแอล – ภาษาโปรแกรมฐานข้อมูล- ในการเข้าถึงฐานข้อมูล คำสั่ง SQL จะถูกแทรกลงในแอปพลิเคชันโปรแกรม

เอสแอลแอล – ภาษาการบริหารฐานข้อมูล- ผู้ดูแลระบบฐานข้อมูลสามารถใช้ SQL เพื่อกำหนดโครงสร้างฐานข้อมูลและควบคุมการเข้าถึงข้อมูล

เอสแอลแอล – ภาษาแอปพลิเคชันไคลเอ็นต์/เซิร์ฟเวอร์- ในการนำไปใช้ โปรแกรม SQLใช้เป็นวิธีการจัดการสื่อสาร เครือข่ายท้องถิ่นด้วยเซิร์ฟเวอร์ฐานข้อมูลที่เก็บข้อมูลที่ใช้ร่วมกัน ฯลฯ

55. ความสามารถด้านภาษาภาษา SQL ซึ่งสอดคล้องกับมาตรฐานล่าสุด SQL:2003, SQL:1999 เป็นภาษาที่สมบูรณ์และ ภาษาที่ซับซ้อนความเป็นไปได้ทั้งหมดที่ยากต่อการตระหนักในทันทีแต่ยังไม่ค่อยเข้าใจมากนัก ดังนั้นเราจึงต้องแบ่งภาษาออกเป็นระดับต่างๆ ในการจำแนกประเภทใดประเภทหนึ่งที่จัดทำโดยมาตรฐาน SQL ภาษานี้แบ่งออกเป็นระดับ "พื้นฐาน" (รายการ) "ระดับกลาง" (ระดับกลาง) และ "เต็ม" ระดับพื้นฐานมีคำสั่งประมาณสี่สิบคำสั่งที่สามารถจัดกลุ่มเป็นหมวดหมู่ตามฟังก์ชันการทำงานได้

สร้างรายละเอียดตาราง (NOMZ INT, ตัวอักษรชื่อเต็ม (15), ปี INT, ตัวอักษรเพศ (3))

รายละเอียดตารางวาง

แก้ไขรายละเอียดตาราง (SAMPLE CHAR(10))

สร้างมุมมองความก้าวหน้าทางวิชาการ M1 ตามที่เลือก *จากผลการเรียน WHERE GROUP= "M-1"

แทรกค่าข้อมูล (980101, "IVANOV I. I. ", 1980, "HUSBAND")

ลบจากรายละเอียดโดยที่ NOMZ=980201

อัปเดตข้อมูล SET ชื่อเต็ม = "KRAVTSOVA I. I." โดยที่ NOMZ=980201

เลือก * จากข้อมูลโดยที่ชื่อเต็ม = "SIDOROV S. S. " หรือชื่อเต็ม = "PETROV P. P. "

54. ชนิดข้อมูลและนิพจน์เพื่อเข้าถึงตารางเชิงสัมพันธ์ใน ภาษา SQLคุณต้องเขียน (ระบุ) คำสั่ง เลือก (เลือก)คำหลักแจ้ง DBMS ว่าจะดำเนินการอย่างไร คำสั่งนี้- การร้องขอคำสั่งเริ่มต้นขึ้น คำหลัก- นอกเหนือจาก SELECT แล้ว สิ่งเหล่านี้อาจเป็นคำก็ได้ สร้าง-สร้าง, แทรก-แทรก, ลบ- ลบ, ให้สัญญา– ครบถ้วน ฯลฯ

จาก -คีย์เวิร์ดเช่น SELECT ที่ปรากฏในทุกคำสั่ง ตามด้วยช่องว่าง ตามด้วยชื่อของตารางที่ใช้เป็นแหล่งข้อมูล ชื่อของตารางและฟิลด์ต้องมีอักขระตั้งแต่ 1 ถึง 18 ตัว โดยขึ้นต้นด้วยตัวอักษร และไม่มีช่องว่างหรืออักขระพิเศษ

ที่ไหน คีย์เวิร์ดที่ตามด้วยเพรดิเคต ซึ่งเป็นเงื่อนไขที่กำหนดให้กับรายการตารางที่ต้องปฏิบัติตามเพื่อที่จะรวมไว้ในส่วนที่เลือก

สั่งซื้อโดย –การเรียงลำดับบันทึกที่แสดง (จากน้อยไปมาก, มากไปน้อย - จากมากไปน้อย หากไม่ได้ระบุประเภทการเรียงลำดับ การเรียงลำดับจะเกิดขึ้นตามลำดับจากน้อยไปหามาก)

ถ่าน(ความยาว) อักขระ(ความยาว)สตริงอักขระที่มีความยาวคงที่

จำนวนเต็ม INTจำนวนเต็ม

สมอลลินท์จำนวนเต็มเล็ก

ตัวเลข(ความแม่นยำ องศา) ทศนิยม(ความแม่นยำ องศา DEC(ความแม่นยำ องศา)หมายเลขจุดคงที่

ลอย (แม่นยำ)หมายเลขจุดลอยตัว

ความแม่นยำสองเท่าตัวเลขแบบล็อคลอย มีความแม่นยำสูง

นิพจน์ใน SQL ใช้เพื่อระบุเกณฑ์ในการเลือกข้อมูลหรือดำเนินการกับค่าที่อ่านจากฐานข้อมูล นิพจน์คือลำดับเฉพาะของฟิลด์ฐานข้อมูล ค่าคงที่ ฟังก์ชันที่เชื่อมต่อโดยตัวดำเนินการ

ค่าคงที่ใช้เพื่อระบุค่าข้อมูลเฉพาะ ค่าคงที่จุดคงที่ตัวอย่างเช่น: 21 -375.18 62.3

ค่าคงที่จุดลอยตัวตัวอย่างเช่น: 1.5E7 -3.14E9 2.5E-6 0.783E24

ค่าคงที่สตริงจะต้องรวมอยู่ใน คำพูดเดียว- ตัวอย่างของค่าคงที่ดังกล่าว: “Minsk” “New York” “Ivanov I. I”

ไม่มีค่า(โมฆะ). SQL รองรับการจัดการข้อมูลที่หายไปโดยใช้แนวคิดเรื่องค่าที่หายไป

DBMS เชิง SQL ส่วนใหญ่สนับสนุนสิ่งที่เรียกว่า ฟังก์ชันรวม (ทั้งหมด)- เพื่อใช้บ่อยๆ ฟังก์ชันรวมสามารถรวมสิ่งต่อไปนี้:

· นับ– จำนวนค่าในคอลัมน์ตาราง

· ผลรวม– ผลรวมของค่าในคอลัมน์

· เฉลี่ย– ค่าเฉลี่ยเลขคณิตของค่าในคอลัมน์

· สูงสุดค่าสูงสุดในคอลัมน์;

· นาทีค่าต่ำสุดในคอลัมน์

คุณสามารถใช้นิพจน์ต่อไปนี้: ประเภทตัวดำเนินการ:

· เลขคณิต: + (ส่วนที่เพิ่มเข้าไป), - (ลบ), * (การคูณ) / (แผนก);

· ความสัมพันธ์: = (เท่ากัน), > (มากกว่า),< (меньше), >= (มากกว่าหรือเท่ากับ)<= (меньше или равно), <>(ไม่เท่ากัน);

· ตรรกะ: และ(ตรรกะ "และ") หรือ(ตรรกะ "หรือ") ไม่(การปฏิเสธเชิงตรรกะ);

56. คำสั่งควบคุมธุรกรรมช่วยให้คุณมั่นใจในความสมบูรณ์ของฐานข้อมูล

ธุรกรรม SQLเป็นคำสั่ง SQL ตามลำดับหลายคำสั่งที่ต้องดำเนินการเป็นหน่วยเดียว

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

ทีม ให้สัญญาและ ย้อนกลับใช้ในโหมดโปรแกรมเป็นหลักแม้ว่าจะสามารถใช้แบบโต้ตอบได้เช่นกัน

57. เพื่อเข้าถึงคำสั่งควบคุมเหล่านี้เป็นคำสั่งสำหรับดำเนินการฟังก์ชันการดูแลระบบที่กำหนดหรือเพิกถอนสิทธิ์ (สิทธิ์) ในการใช้ตารางฐานข้อมูลในลักษณะใดลักษณะหนึ่ง ผู้ใช้ฐานข้อมูลแต่ละรายมีสิทธิ์บางประการที่เกี่ยวข้องกับวัตถุฐานข้อมูล

สิทธิ– นี่คือการกระทำกับออบเจ็กต์ที่ผู้ใช้สามารถดำเนินการได้ สิทธิ์สามารถเปลี่ยนแปลงได้ตลอดเวลา: สิทธิ์เก่าสามารถยกเลิกได้, สิทธิ์ใหม่สามารถเพิ่มได้ ให้สิทธิดังต่อไปนี้:

· INSERT – สิทธิ์ในการเพิ่มข้อมูลลงในตาราง

· UPDATE – สิทธิ์ในการเปลี่ยนแปลงข้อมูลตาราง

· DELETE – สิทธิ์ในการลบข้อมูลจากตาราง

· ข้อมูลอ้างอิง – สิทธิ์ในการกำหนดคีย์หลัก

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

แปล: อเล็กซานเดอร์ พิราดิน

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

SQL ทำงานอย่างไร?

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

หากคุณต้องการค้นหาสตริงที่เฉพาะเจาะจง คุณจะต้องทำตามขั้นตอนทีละขั้นตอนดังต่อไปนี้:

  • พิจารณาแถวของตาราง
  • ตรวจสอบดูว่าสตริงนี้เป็นหนึ่งในสตริงที่คุณต้องการหรือไม่
  • หากเป็นเช่นนั้น ให้บันทึกไว้ที่ไหนสักแห่งจนกว่าจะตรวจสอบทั้งตารางแล้ว
  • ตรวจสอบว่ามีแถวอื่นๆ ในตารางหรือไม่
  • หากมี ให้กลับไปที่ขั้นตอนที่ 1
  • หากไม่มีแถวแล้ว ให้พิมพ์ค่าทั้งหมดที่เก็บไว้ในขั้นตอนที่ 3

(แน่นอนว่านี่ไม่ใช่ชุดคำสั่ง C จริง ๆ แต่เป็นตรรกะของขั้นตอนที่จะรวมไว้ในโปรแกรมจริง) SQL จะทำทั้งหมดนี้ให้คุณ คำสั่งใน SQL สามารถดำเนินการกับทุกกลุ่มของตารางเป็นเอนทิตีเดียว และสามารถประมวลผลข้อมูลจำนวนเท่าใดก็ได้ที่แยกหรือได้มาจากตารางเหล่านั้นเป็นหน่วยเดียว

แอนซี่ทำอะไร?

ดังที่เราได้กล่าวไว้ในบทนำ มาตรฐาน SQL ถูกกำหนดโดยใช้รหัส ANSI (American National Standards Institute) SQL ไม่ได้ถูกคิดค้นโดย ANSI นี่คือสิ่งประดิษฐ์ของ IBM โดยพื้นฐานแล้ว แต่บริษัทอื่นๆ ก็หันมาใช้ SQL ทันที อย่างน้อยหนึ่งบริษัท (Oracle) ได้รับสิทธิ์ในการทำการตลาดผลิตภัณฑ์ SQL จาก IBM

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

SQL แบบโต้ตอบและแบบซ้อน

SQL มีสองแบบ: แบบโต้ตอบและแบบซ้อน โดยส่วนใหญ่แล้ว ทั้งสองรูปแบบทำงานเหมือนกัน แต่ใช้ต่างกัน Interactive SQL ใช้เพื่อรันบนฐานข้อมูลโดยตรงเพื่อสร้างเอาต์พุตสำหรับลูกค้า ใน SQL นี้ - เมื่อคุณป้อนคำสั่ง คำสั่งนั้นจะถูกดำเนินการทันที และคุณจะเห็นผลลัพธ์ได้ทันที (ถ้ามี)

Nested SQL ประกอบด้วยคำสั่ง SQL ที่วางอยู่ภายในโปรแกรมที่ปกติจะเขียนเป็นภาษาอื่น (เช่น COBOL หรือ PASCAL) ทำให้โปรแกรมดังกล่าวมีประสิทธิภาพและประสิทธิผลมากขึ้น

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

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

ส่วนย่อยของ SQL

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

  • DDL (Data Definition Language) - เรียกว่า Schema Description Language ใน ANSI - ประกอบด้วยคำสั่งที่สร้างอ็อบเจ็กต์ (ตาราง ดัชนี มุมมอง และอื่นๆ) ในฐานข้อมูล
  • DML (Data Manipulation Language) คือชุดคำสั่งที่กำหนดว่าค่าใดจะแสดงในตารางในเวลาใดก็ตาม
  • DCD (ภาษาควบคุมข้อมูล) ประกอบด้วยเครื่องมือที่กำหนดว่าจะอนุญาตให้ผู้ใช้ดำเนินการบางอย่างหรือไม่ เป็นส่วนหนึ่งของ ANSI DDL

อย่าลืมชื่อเหล่านี้ ภาษาเหล่านี้ไม่ใช่ภาษาที่แตกต่างกัน แต่ส่วนของคำสั่ง SQL ถูกจัดกลุ่มตามฟังก์ชัน

ประเภทข้อมูลต่างๆ

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

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

น่าเสียดายที่การกำหนดประเภทข้อมูลเหล่านี้เป็นประเด็นหลักที่โปรแกรมฐานข้อมูลเชิงพาณิชย์ส่วนใหญ่และมาตรฐาน SQL อย่างเป็นทางการไม่สอดคล้องกันเสมอไป มาตรฐาน ANSI SQL รับรู้เฉพาะข้อความและตัวเลข ในขณะที่โปรแกรมเชิงพาณิชย์ส่วนใหญ่ใช้ประเภทพิเศษอื่นๆ ที่จริงแล้ว เช่น DATA และ TIME นั้นเป็นประเภทมาตรฐานเกือบทั้งหมด (แม้ว่ารูปแบบที่แน่นอนจะแตกต่างกันไปก็ตาม) บางแพ็คเกจยังรองรับประเภทต่างๆ เช่น MONEY และ BINARY (MONEY คือระบบ "สกุลเงิน" พิเศษที่ใช้โดยคอมพิวเตอร์)

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

ANSI กำหนดประเภทตัวเลขหลายประเภท ซึ่งความแตกต่างนั้นค่อนข้างละเอียดอ่อนและบางครั้งก็สับสน ชนิดข้อมูล ANSI ที่ได้รับอนุญาตแสดงอยู่ในภาคผนวก B ความซับซ้อนของประเภทตัวเลข ANSI อย่างน้อยในบางส่วนสามารถนำมาประกอบกับความพยายามที่จะทำให้ SQL ที่ซ้อนกันเข้ากันได้กับภาษาอื่นจำนวนหนึ่ง ตัวเลข ANSI ทั้งสองประเภท ได้แก่ INTEGER และ DECIMAL (ซึ่งสามารถเรียกย่อว่า INT และ DEC ตามลำดับ) จะเพียงพอสำหรับวัตถุประสงค์ของเรา เช่นเดียวกับวัตถุประสงค์ของแอปพลิเคชันทางธุรกิจที่ใช้งานได้จริงที่สุด โดยปกติแล้ว ประเภท INTEGER สามารถแสดงเป็น DECIMAL NUMBER ได้ ซึ่งไม่มีตัวเลขใดๆ ทางด้านขวาของจุดทศนิยม

ประเภทของข้อความคือ CHAR (หรือ CHAR) ซึ่งหมายถึงสตริงข้อความ ฟิลด์ CHAR มีความยาวที่กำหนดโดยจำนวนอักขระสูงสุดที่สามารถป้อนลงในฟิลด์ได้ การใช้งานส่วนใหญ่ยังมีประเภทที่ไม่เป็นมาตรฐานที่เรียกว่า VARCHAR ซึ่งเป็นสตริงข้อความและอาจมีความยาวเท่าใดก็ได้จนถึงจำนวนสูงสุดที่กำหนดโดยการใช้งาน (ปกติคือ 254 อักขระ) ค่า CHARACTER และ VARCHAR จะรวมอยู่ในเครื่องหมายคำพูดเดี่ยวเป็น "ข้อความ" ความแตกต่างระหว่าง CHAR และ VARCHAR คือ CHAR ต้องสำรองหน่วยความจำให้เพียงพอสำหรับความยาวสูงสุดของสตริง ในขณะที่ VARCHAR จะจัดสรรหน่วยความจำตามความจำเป็น

ประเภทอักขระประกอบด้วยอักขระที่สามารถพิมพ์ได้ทั้งหมด รวมถึงตัวเลขด้วย อย่างไรก็ตาม เลข 1 ไม่เหมือนกับสัญลักษณ์ "1" อักขระ "1" เป็นเพียงข้อความที่พิมพ์ ซึ่งระบบไม่ได้กำหนดให้เป็นค่าตัวเลข 1 ตัวอย่างเช่น 1 + 1 = 2 แต่ "1" + "1" ไม่เท่ากับ "2" ค่าอักขระจะถูกเก็บไว้ในคอมพิวเตอร์เป็นค่าไบนารี่ แต่จะแสดงให้ผู้ใช้เห็นเป็นข้อความที่พิมพ์

การแปลงเสร็จสิ้นในรูปแบบที่กำหนดโดยระบบที่คุณใช้ รูปแบบการแปลงนี้จะเป็นหนึ่งในสองประเภทมาตรฐาน (อาจมีส่วนขยาย) ที่ใช้ในระบบคอมพิวเตอร์: รหัส ASCII (ใช้ในคอมพิวเตอร์ส่วนบุคคลและคอมพิวเตอร์ขนาดเล็กทั้งหมด) และรหัส EBCDIC (รหัสการแลกเปลี่ยนข้อมูลทศนิยมไบนารีแบบขยาย) (ใช้ในคอมพิวเตอร์ขนาดใหญ่) การดำเนินการบางอย่าง เช่น การจัดเรียงค่าฟิลด์ตามตัวอักษร จะเปลี่ยนไปตามรูปแบบ

เราต้องปฏิบัติตามตลาด ไม่ใช่ ANSI ในการใช้ประเภท DATE (ในระบบที่ไม่รู้จักประเภท DATE คุณสามารถประกาศวันที่เป็นฟิลด์อักขระหรือตัวเลขได้ แต่จะทำให้การดำเนินการส่วนใหญ่ต้องใช้แรงงานมากขึ้น)

คุณควรตรวจสอบเอกสารประกอบของคุณสำหรับแพ็คเกจซอฟต์แวร์ที่คุณจะใช้เพื่อดูว่าแพ็คเกจซอฟต์แวร์นั้นรองรับประเภทข้อมูลใด

SQL. ความไม่สอดคล้องกัน

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

“ผู้ใช้” คืออะไร?

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

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

อนุสัญญาและคำศัพท์เฉพาะทาง

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

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

คำสั่งหรือคำสั่งคือคำสั่งที่คุณใช้ในการเข้าถึงฐานข้อมูล SQL

คำสั่งประกอบด้วยส่วนตรรกะตั้งแต่หนึ่งส่วนขึ้นไปที่เรียกว่าส่วนคำสั่ง

ประโยคเริ่มต้นด้วยคำสำคัญและประกอบด้วยคำสำคัญและข้อโต้แย้ง ตัวอย่างเช่น ส่วนคำสั่งที่คุณอาจพบคือ "FROM Salespeope" และ "WHERE city = "London"" อาร์กิวเมนต์ทำให้สมบูรณ์หรือเปลี่ยนความหมายของประโยค ในตัวอย่างข้างต้น พนักงานขายคืออาร์กิวเมนต์ และ FROM คือคีย์เวิร์ดของส่วนคำสั่ง FROM ในทำนองเดียวกัน "city = "London"" เป็นข้อโต้แย้งของส่วนคำสั่ง WHERE

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

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

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

ประวัติย่อ

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

ตอนนี้คุณรู้บางสิ่งเกี่ยวกับ SQL แล้ว: โครงสร้างของมันคืออะไร, วิธีการใช้งาน, มันแสดงข้อมูลอย่างไร และถูกกำหนดอย่างไร (และความไม่สอดคล้องกันบางประการที่มาพร้อมกับมัน) แบบแผนและเงื่อนไขบางประการที่ใช้อธิบาย ทั้งหมดนี้มีข้อมูลมากเกินไปสำหรับบทเดียว เราไม่ได้คาดหวังให้คุณจำรายละเอียดเหล่านี้ทั้งหมด แต่คุณสามารถกลับมาดูได้ในภายหลังหากต้องการ

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

ทำไมต้องเรียนภาษานี้?

ประการแรก SQL ได้รับการสอนเพื่อสร้างแอปพลิเคชันที่หลากหลายสำหรับหนึ่งในเครื่องมือบล็อกที่ได้รับความนิยมมากที่สุดในปัจจุบัน - WordPress หลังจากจบบทเรียนง่ายๆ ไม่กี่บทแล้ว คุณจะสามารถสร้างคำถามที่ซับซ้อนได้ ซึ่งเป็นเพียงการยืนยันความเรียบง่ายของภาษานี้เท่านั้น

เอสแอลแอลคืออะไร?

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

ขั้นตอนใดบ้างที่สามารถทำได้โดยใช้ภาษานี้?

แม้จะมีความเรียบง่าย แต่ฐานข้อมูล SQL ช่วยให้คุณสามารถสร้างแบบสอบถามได้หลากหลาย แล้วคุณจะทำอย่างไรถ้าคุณเรียนรู้ภาษาการเขียนโปรแกรมที่สำคัญนี้?

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

คำสั่งใดที่ได้รับความนิยมมากที่สุดในภาษานี้?

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

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

ประเภทของสิทธิ์ที่มีอยู่ในเซิร์ฟเวอร์นี้

สิทธิพิเศษหมายถึงการกระทำที่ผู้ใช้สามารถดำเนินการตามสถานะของเขา แน่นอนว่าสิ่งที่น้อยที่สุดคือการเข้าสู่ระบบปกติ แน่นอนว่าสิทธิพิเศษอาจมีการเปลี่ยนแปลงเมื่อเวลาผ่านไป อันเก่าจะถูกลบและอันใหม่จะถูกเพิ่ม ทุกวันนี้ ผู้ที่เรียนหลักสูตร "for dummies" ของ SQL Server ทราบว่ามีการดำเนินการที่ได้รับอนุญาตหลายประเภท:

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

ประวัติความเป็นมาของ SQL

ภาษานี้สร้างขึ้นโดย IBM Research Laboratory ในปี 1970 ในเวลานั้นชื่อแตกต่างออกไปเล็กน้อย (SEQUEL) แต่หลังจากใช้งานไปไม่กี่ปีก็เปลี่ยนไปโดยย่อให้สั้นลงเล็กน้อย อย่างไรก็ตาม แม้กระทั่งทุกวันนี้ผู้เชี่ยวชาญด้านการเขียนโปรแกรมที่มีชื่อเสียงระดับโลกหลายคนก็ยังคงออกเสียงชื่อนี้ด้วยวิธีที่ล้าสมัย SQL ถูกสร้างขึ้นโดยมีวัตถุประสงค์เดียวคือเพื่อประดิษฐ์ภาษาที่เรียบง่ายจนแม้แต่ผู้ใช้อินเทอร์เน็ตทั่วไปก็สามารถเรียนรู้ได้โดยไม่มีปัญหาใดๆ ข้อเท็จจริงที่น่าสนใจก็คือ ในเวลานั้น SQL ไม่ใช่ภาษาเดียวเท่านั้น ในแคลิฟอร์เนีย ผู้เชี่ยวชาญอีกกลุ่มหนึ่งได้พัฒนา Ingres ที่คล้ายกัน แต่ก็ไม่เคยแพร่หลายมากนัก ก่อนปี 1980 SQL มีหลายรูปแบบที่แตกต่างกันเพียงเล็กน้อยเท่านั้น เพื่อป้องกันความสับสน จึงได้มีการสร้างเวอร์ชันมาตรฐานขึ้นในปี 1983 ซึ่งยังคงได้รับความนิยมจนถึงปัจจุบัน หลักสูตร SQL "สำหรับหุ่นจำลอง" ช่วยให้คุณเรียนรู้เพิ่มเติมเกี่ยวกับบริการและศึกษาได้อย่างเต็มที่ภายในไม่กี่สัปดาห์

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

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

  • การสร้างตารางใหม่ในฐานข้อมูล (DB)
  • การเพิ่มบันทึกใหม่ลงในตารางที่มีอยู่
  • การแก้ไขบันทึก;
  • การลบบันทึกโดยสมบูรณ์
  • การเลือกบันทึกจากตารางต่างๆ ตามเงื่อนไขที่กำหนด
  • การเปลี่ยนรูปลักษณ์และโครงสร้างของตารางตั้งแต่หนึ่งตารางขึ้นไป

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

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

  • การสร้างหรือเปลี่ยนแปลงวัตถุใหม่หรือที่มีอยู่ในฐานข้อมูล
  • การรับข้อมูล
  • การเพิ่มข้อมูลใหม่ลงในตาราง
  • การลบข้อมูล
  • การเข้าถึงระบบการจัดการฐานข้อมูล (DBMS)

เล็กน้อยเกี่ยวกับข้อดีและข้อเสียของระบบประมวลผลข้อมูลนี้

ประโยชน์ของ SQL

  • ความเป็นอิสระจาก DBMS ที่มีอยู่ในระบบที่กำหนด ข้อความ SQL เป็นแบบสากลสำหรับ DBMS จำนวนมาก อย่างไรก็ตาม กฎนี้ใช้กับงานง่ายๆ ที่เกี่ยวข้องกับการประมวลผลข้อมูลในตาราง
  • การมีมาตรฐาน SQL ช่วยให้ "มีเสถียรภาพ" ภาษา
  • การประกาศ. ข้อดีนี้คือเมื่อทำงานกับข้อมูล โปรแกรมเมอร์จะเลือกเฉพาะข้อมูลที่จำเป็นต้องเปลี่ยนแปลงหรือแก้ไขเท่านั้น การดำเนินการนี้จะถูกตัดสินใจโดยอัตโนมัติที่ระดับซอฟต์แวร์ของ DBMS เอง

ข้อเสียของ SQL

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

สิ่งสุดท้าย: SQL Server คืออะไร นี่คือระบบการจัดการฐานข้อมูลที่พัฒนาขึ้นภายในกำแพงของ บริษัท Microsoft ที่มีชื่อเสียง ระบบนี้ทำงานร่วมกับฐานข้อมูลของคอมพิวเตอร์ส่วนบุคคลที่บ้านและฐานข้อมูลขนาดใหญ่ขององค์กรขนาดใหญ่ได้สำเร็จ ในส่วนของตลาดนี้ SQL Server มีมากกว่าการแข่งขัน

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