แบบสอบถาม sql ในการเข้าถึง ms การแนะนำ. SQL - ภาษาสำหรับการเข้าถึงและจัดการการเข้าถึงฐานข้อมูล ตัวอย่างคำสั่ง SQL ในการเข้าถึง

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

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

การจำแนกประเภทของคำสั่ง SQL

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

    คำสั่งในการสร้างแบบสอบถาม

    คำสั่งของขั้นตอนและฟังก์ชันในตัว

    คำสั่งสำหรับทริกเกอร์และตารางระบบ

    ชุดค่าผสมสำหรับการทำงานกับตัวแปรวันที่และสตริง

    คำสั่งสำหรับการทำงานกับข้อมูลและตาราง

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

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

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

การใช้ SQL ใน MicrosoftAccess

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

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

ลองดูตัวอย่างที่เฉพาะเจาะจง:

เลือก Pe_SurName

โดยที่ Pe_Name = "แมรี่";

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

ถึงแม้ว่า โดยใช้ SQLการเข้าถึงมีจำกัด บางครั้งคำสั่งง่ายๆ ดังกล่าวอาจทำให้งานที่มีอยู่ง่ายขึ้นอย่างมาก

การใช้คำสั่ง SQL ใน Oracle

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

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

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

SELECTCONCAT(CONCAT(CONCAT('พนักงาน', sname), CONCAT(SUBSTR(fname, 0, 1), SUBSTR(otch, 0, 1)), CONCAT('accepted', Acceptdate)) จากพนักงาน WHERE ยอมรับ > to_date ( '01.01.80′,'dd.mm.yyyy');

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

การใช้ SQL บนอินเทอร์เน็ต

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

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

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

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

$link = mysqli_connect("localhost", "root", "", "tester");

if (!$link) die("ข้อผิดพลาด");

$query = "สร้างผู้ใช้ตาราง(

เข้าสู่ระบบ VARCHAR (20)

รหัสผ่าน VARCHAR(20)

if (mysqli_query($link, $query)) echo "สร้างตารางแล้ว";

elseecho "ไม่ได้สร้างตาราง: ".mysqli_error();

mysqli_close($ลิงค์);

จากการดำเนินการค้นหาดังกล่าว คุณจะได้รับตาราง "ผู้ใช้" ใหม่ซึ่งจะมีสองฟิลด์: เข้าสู่ระบบและรหัสผ่าน

ไวยากรณ์ได้รับการแก้ไขสำหรับเว็บ แต่ขึ้นอยู่กับคำสั่ง MicrosoftSQLServer

การสร้างแบบสอบถาม MicrosoftSQLServer

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

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

เลือก * จากบุคคล

โดยที่ P_BerthDay >= '01/01/2016' และ P_BerthDay<= ‘03/01/2016’

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

เลือกP_Name - ชื่อ

P_SurName - นามสกุล

P_Patronimic - นามสกุล

โดยที่ P_BerthDay >= '01/01/2016' และ P_BerthDay<= ‘03/01/2016’

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

คำสั่ง SQL พื้นฐานสำหรับการเปลี่ยนแปลงข้อมูล

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

    แทรก (ทรานส์แทรก)

    อัปเดต (ทรานส์อัปเดต)

    ลบ (ทรานส์ลบ)

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

ตามกฎแล้วก่อนที่จะใช้คำสั่ง MSSQL คุณต้องคิดให้รอบคอบและคำนึงถึงผลที่ตามมาทั้งหมดจากการดำเนินการ

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

คำสั่งแทรก

ในการแทรกข้อมูลลงในตาราง คำสั่งที่ปลอดภัยที่สุดคือ แทรก ข้อมูลที่แทรกไม่ถูกต้องสามารถลบและป้อนกลับเข้าไปในฐานข้อมูลได้เสมอ

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

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

ใส่เข้าไปในตัวบุคคล

เลือก 'Grigoriev', 'Vitaly', 'Petrovich','01/01/1988'

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

ผู้แทรก (P_Name, P_SurName ,P_BerthDay)

ค่านิยม ('เดวิด', 'ตะขอ', '02/11/1986')

คำสั่งดังกล่าวจะเติมเฉพาะเซลล์ที่ระบุเท่านั้น และคำสั่งอื่นๆ ทั้งหมดจะมีค่าเป็นโมฆะ

คำสั่งให้เปลี่ยนข้อมูล

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

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

ตั้งค่า P_BerthDay = '02/10/1986' โดยที่ P_ID = 5

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

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

คำสั่งสำหรับการใช้ขั้นตอนและฟังก์ชันในตัว

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

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

สมมติว่ามีการสร้างขั้นตอนเพื่อแสดงวันเดือนปีเกิดของพนักงานจากตารางบุคคลที่อธิบายไว้ก่อนหน้านี้ ในกรณีนี้ ไม่จำเป็นต้องเขียนคำขอทั้งหมด หากต้องการรับข้อมูลที่จำเป็น เพียงดำเนินการคำสั่ง Exec [ชื่อขั้นตอน] และส่งพารามิเตอร์ที่จำเป็นสำหรับการสุ่มตัวอย่าง ตัวอย่างเช่น เราสามารถพิจารณากลไกในการสร้างขั้นตอนในลักษณะนี้:

สร้างกระบวนการพิมพ์บุคคล

@DBsmalldatetime

@DE สมอลเดทไทม์

SELECT * จากบุคคล

จาก HumanResources.vEmployeeDepartmentHistory

โดยที่ P_BerthDay >= @DB และ P_BerthDay<= @DE

และวันที่สิ้นสุดISNULL;

ขั้นตอนนี้จะส่งคืนข้อมูลทั้งหมดเกี่ยวกับพนักงานที่มีวันเกิดในช่วงเวลาที่กำหนด

การจัดระเบียบความสมบูรณ์ของข้อมูล ทริกเกอร์

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

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

ไม่มีข้อจำกัดเกี่ยวกับประเภทของคำสั่ง SQL ที่สามารถใช้ในทริกเกอร์ได้ ลองดูตัวอย่าง

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

ก่อนอื่น เราต้องอธิบายคำสั่งบริการสำหรับการสร้างทริกเกอร์:

เราระบุว่าการดำเนินการข้อมูลใด (ในกรณีของเราเป็นการดำเนินการเปลี่ยนแปลงข้อมูล)

ขั้นตอนต่อไปคือการระบุตารางและตัวแปร:

ประกาศ @ID int. @Date smalldatetime @nID int. @nDatesmalldatetime

ยกเลิกการเคอร์เซอร์ C1 สำหรับ P_ID ที่เลือก, P_BerthDay จากสิ่งที่แทรก

ยกเลิกการเคอร์เซอร์ C2 สำหรับ P_ID ที่เลือก, P_BerthDay จากการลบ

เรากำหนดขั้นตอนการเลือกข้อมูล หลังจากนั้น ในส่วนของเคอร์เซอร์ เราจะเขียนเงื่อนไขและการตอบสนองต่อเงื่อนไขนั้น:

ถ้า @ID = @nID และ @nDate = "01/01/2016"

sMasseges "ไม่สามารถดำเนินการได้ วันที่ไม่เหมาะสม"

เป็นมูลค่าการกล่าวขวัญว่าไม่เพียงแต่สามารถสร้างทริกเกอร์เท่านั้น แต่ยังปิดการใช้งานชั่วคราวอีกด้วย การจัดการนี้สามารถดำเนินการโดยโปรแกรมเมอร์โดยการรันคำสั่ง SQL SERVER เท่านั้น:

altertablePERSONdisabletriggerall - เพื่อปิดการใช้งานทริกเกอร์ทั้งหมดที่สร้างขึ้นสำหรับตารางนี้ และตามลำดับ PERSONenabletriggerall ที่เปลี่ยนแปลงได้ - เพื่อเปิดใช้งาน

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

บทสรุป

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

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

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

การสร้างตารางการออกแบบพลังงานโดยใช้ DDL

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

ส่วนต่อไปนี้จะใช้ SQL เพื่อสร้างตาราง ปรับเปลี่ยน และปล่อยการดำเนินการแบบเดียวกับที่ส่วนก่อนหน้านี้ใช้เครื่องมือ RAD ดำเนินการ

การใช้ SQL กับ Microsoft Access

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

  1. เปิดฐานข้อมูล จากนั้นเลือก แบบสอบถาม จากรายการออบเจ็กต์
  2. ในบานหน้าต่างงาน ที่อยู่ทางด้านขวาของหน้าต่าง เลือกตัวเลือก สร้างแบบสอบถามในมุมมองออกแบบ กล่องโต้ตอบเพิ่มตารางจะปรากฏขึ้น
  3. เลือกตารางใดก็ได้ คลิกที่ปุ่มเพิ่มและปิด ละเว้นเคอร์เซอร์ที่กะพริบในหน้าต่างแบบสอบถามที่สร้างขึ้นใหม่
  4. จากเมนูหลักของ Access เลือก ดูโหมด SQL หน้าต่างตัวแก้ไขจะปรากฏขึ้นพร้อมกับคำสั่ง SQL SELECT เริ่มต้น
  5. ลบคำสั่ง SELECT จากนั้นป้อนคำสั่ง SQL ที่จำเป็น
  6. เมื่อเสร็จแล้วให้คลิกที่ไอคอนบันทึก Access จะพร้อมท์ให้คุณใส่ชื่อสำหรับแบบสอบถามที่คุณเพิ่งสร้างขึ้น
  7. ป้อนชื่อสำหรับคำขอแล้วคลิกตกลง

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

การสร้างตาราง

เมื่อทำงานกับ DBMS ที่มีคุณลักษณะครบถ้วน เช่น Microsoft SQL Server, Oracle 9i หรือ IBM DB2 คุณต้องป้อนข้อมูลเดียวกันเมื่อสร้างตารางโดยใช้ SQL เช่นเดียวกับที่คุณทำเมื่อสร้างตารางโดยใช้เครื่องมือ RAD ความแตกต่างที่นี่คือเครื่องมือ RAD ช่วยคุณได้โดยการจัดเตรียมกล่องโต้ตอบสำหรับการสร้างตาราง (หรือโครงสร้างที่คล้ายกัน) และป้องกันไม่ให้คุณป้อนชื่อฟิลด์ ประเภท หรือขนาดที่ไม่ถูกต้อง SQL จะไม่ให้ความสนใจคุณมากนัก เมื่อทำงานกับ SQL คุณควรรู้อย่างชัดเจนว่าต้องทำอะไรตั้งแต่เริ่มต้น ต้องป้อนคำสั่ง CREATE TABLE ทั้งหมดก่อนที่ SQL จะสังเกตเห็น ไม่ต้องพูดถึงบอกคุณว่ามีข้อผิดพลาดในคำสั่งหรือไม่

คำสั่งต่อไปนี้จะสร้างตารางที่เหมือนกับตารางที่สร้างไว้ก่อนหน้านี้:

สร้างตาราง PowerSQL
หมายเลขข้อเสนอ INT ขนาดเล็ก
ชื่อ ถ่าน (15),
นามสกุล ถ่าน(20)
ที่อยู่ ถ่าน(30)
เมือง ถ่าน(25)
รัฐจังหวัด ถ่าน(2)
รหัสไปรษณีย์ ถ่าน(10)
ประเทศ ถ่าน(30)
โทรศัพท์ ถ่าน (14),
HowKnow ถ่าน(30)
ข้อเสนอ ถ่าน(50)
BusinOrCharity ถ่าน(1);

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

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

บทความก่อนหน้านี้กล่าวถึงประเด็นต่างๆ ถือเป็นเทคโนโลยีในการสร้างโครงสร้างของตารางฐานข้อมูล "sql_training_st.mdb" ตามคำสั่ง SQL นอกจากนี้ เมื่อใช้คำสั่ง SQL ตาราง ACCESS DBMS "sql_training_st.mdb" ก็ถูกเติมเต็ม

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

ภาษา SQL ประกอบด้วยสี่กลุ่ม:

  • ภาษาการจัดการข้อมูล DML;
  • ภาษาคำจำกัดความข้อมูล DDL;
  • ภาษาการจัดการข้อมูล DCL;
  • ภาษาควบคุมธุรกรรมของ TCL

กลุ่ม DML ประกอบด้วยคำสั่ง SQL หลักสี่ประเภท:

  • INSERT - ออกแบบมาเพื่อเพิ่มหนึ่งหรือหลายระเบียนที่ส่วนท้ายของตาราง
  • UPDATE - มีไว้สำหรับการเปลี่ยนแปลงบันทึกที่มีอยู่ในคอลัมน์ตารางหรือแก้ไขข้อมูลในตาราง
  • DELETE - ออกแบบมาเพื่อลบบันทึกออกจากตาราง
  • SELECT - ออกแบบมาเพื่อเลือกข้อมูลจากตาราง

มีการหารือเกี่ยวกับแบบสอบถาม SQL สามประเภทแรก (INSERT, UPDATE, DELETE) ซึ่งเกี่ยวข้องกับการสืบค้นฐานข้อมูลเพื่อแก้ไข

ในบทความนี้ เราจะดูที่แบบสอบถามสำหรับการดึงข้อมูลจากตารางฐานข้อมูล Access

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

มาเขียนแบบสอบถาม SQL (คำสั่ง SQL) ต่อไปนี้สำหรับการสุ่มตัวอย่าง โดยเลือกโหมด SQL โดยการรันคำสั่ง View/SQL Mode ป้อนคำสั่ง SQL ต่อไปนี้จากแป้นพิมพ์:

เลือก *
จากนักเรียน;

คำสั่งนี้ประกอบด้วยสองส่วนย่อย "SELECT *" และ "FROM Students" ส่วนคำสั่งแรกประกอบด้วยคำสั่ง SELECT และตัวระบุ * ("ตัวระบุ *" หมายถึงการแสดงรายการคอลัมน์ทั้งหมดของตาราง) ส่วนคำสั่งที่สองประกอบด้วยคำสั่ง FROM และตัวระบุ "Students"

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


ข้าว. 1. แบบสอบถาม SQL SELECT เพื่อเลือกข้อมูล

ในตัวอย่างนี้ ตัวอย่างข้อมูลจะถูกสร้างขึ้นจากคอลัมน์ทั้งหมดของตารางนักเรียน

บันทึกคำขอด้วยชื่อ "Students-query1" อันเป็นผลมาจากการดำเนินการคำสั่ง "บันทึก" วัตถุจะปรากฏใน "พื้นที่การนำทาง" - "คำขอ: นักเรียน - คำขอ 1"

หลังจากบันทึกคำขอการเลือกแล้ว คุณต้องดำเนินการคำขอนี้โดยคลิกที่ไอคอน "เรียกใช้" ผลลัพธ์ของคำสั่ง Run ดังแสดงในรูป 2.



ข้าว. 2. การเลือกข้อมูลจากทุกคอลัมน์ของตาราง นักเรียน

ภาษา SQL ไม่มีฟังก์ชันเหมือนกับภาษาการพัฒนาเต็มรูปแบบ แต่มุ่งเน้นไปที่การเข้าถึงข้อมูล ดังนั้นจึงรวมอยู่ในเครื่องมือการพัฒนาโปรแกรม ในกรณีนี้เรียกว่า SQL แบบฝังมาตรฐานภาษา SQL ได้รับการสนับสนุนโดยการใช้งานสมัยใหม่ของภาษาการเขียนโปรแกรมต่อไปนี้: PL/1, Ada, C, COBOL, Fortran, MUMPS และ Pascal

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

มีสองวิธีหลักในการใช้ SQL แบบฝัง: แบบคงที่และไดนามิก

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

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

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

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



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

คำอธิบายและการใช้เคอร์เซอร์ใน SQL มีดังนี้ ในส่วนของคำอธิบายของโปรแกรม ตัวแปรชนิดเคอร์เซอร์ (CURSOR) จะเชื่อมโยงกับคำสั่ง SQL (โดยปกติจะเป็นคำสั่ง SELECT) ในส่วนของการดำเนินการของโปรแกรม เคอร์เซอร์จะเปิดขึ้น (OPEN<имя курсора», перемещение курсора по записям (FETCI-1 <имя курсора>...) ตามด้วยการประมวลผลที่เหมาะสม และสุดท้ายปิดเคอร์เซอร์ (CLOSE<имя курсора>).

ใน DBMS เชิงสัมพันธ์เพื่อดำเนินการเกี่ยวกับความสัมพันธ์จะใช้ภาษาสองกลุ่มซึ่งมีภาษาคิวรีเชิงทฤษฎีเป็นพื้นฐานทางคณิตศาสตร์ที่เสนอโดย E. Codd:

พีชคณิตเชิงสัมพันธ์

แคลคูลัสเชิงสัมพันธ์

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

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

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

คุณสมบัติของแอพพลิเคชั่น แบบสอบถาม SQL

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

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

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

คิวรีควบคุมจะสร้างหรือแก้ไขวัตถุฐานข้อมูล เช่น ตาราง Access หรือ SQL Server

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

การตรวจสอบในแบบสอบถามย่อยสำหรับการมีอยู่ของผลลัพธ์บางส่วนโดยใช้คำที่สงวนไว้ EXISTS หรือ NO EXISTS

ค้นหาข้อความค้นหาหลักสำหรับค่าใดๆ ที่เท่ากับ มากกว่า หรือน้อยกว่าค่าที่ส่งคืนในข้อความค้นหาย่อย (โดยใช้คำใดๆ, IN หรือคำสงวนทั้งหมด)

การสร้างแบบสอบถามย่อยภายในแบบสอบถามย่อย (แบบสอบถามย่อยที่ซ้อนกัน)

ภาษา SQL ใน Access สามารถใช้ในการพัฒนาฟอร์มหน้าจอ รายงาน ตลอดจนสร้างแมโครและโปรแกรม VBA

ความสัมพันธ์ระหว่างภาษา QBE และ SQL

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

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

SQL ในแบบฟอร์มและรายงาน

แหล่งที่มาหลักของบันทึกในจอแสดงผลและรายงานคือตารางและการสืบค้น ในกรณีที่สอง คำขออาจเป็นแบบสอบถามฐานข้อมูลสำเร็จรูปหรือที่สร้างขึ้นเมื่อพัฒนาแบบฟอร์มหรือรายงาน

SQL ในมาโคร

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

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

จากคำสั่งแมโครจำนวนมาก คำสั่งแมโครสองคำสั่งเกี่ยวข้องโดยตรงกับ SQL: เรียกใช้ SQL Query (เรียกใช้ SQL) และ Open Query (OpenQuery)

คำสั่งแมโคร เรียกใช้ SQL Queryเรียกใช้การเปลี่ยนแปลง Access หรือแบบสอบถามการควบคุมโดยใช้คำสั่ง SQL ที่เหมาะสม มาโครนี้ทำให้สามารถดำเนินการในแมโครได้โดยไม่ต้องบันทึกแบบสอบถามก่อน คุณยังสามารถดำเนินการค้นหาที่บันทึกไว้โดยใช้มาโครได้

เปลี่ยนแปลงคำขอเป็นคำสั่ง SQL ที่ใช้ฟังก์ชันต่อไปนี้: การเพิ่ม (INSERT INTO), การลบ (DELETE), การสร้างตาราง (SELECT...INTO) และการอัปเดต (UPDATE)

คำขอควบคุมเป็นคำสั่ง SQL ที่ทำหน้าที่ดังต่อไปนี้: สร้างตาราง (CREATE TABLE), แก้ไขตาราง (ALTER TABLE), วางตาราง (DROP TABLE), สร้างดัชนี (CREATE INDEX) และปล่อยดัชนี (DROP INDEX)

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

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

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

SQL ในโปรแกรม VBA

VBA เช่นเดียวกับมาโคร ได้รับการออกแบบมาเพื่อดำเนินการซ้ำๆ บนวัตถุฐานข้อมูล Access โดยอัตโนมัติ

ใน Access มีวิธีเรียกใช้โปรแกรม VBA ดังต่อไปนี้:

รวมถึงโปรแกรมในขั้นตอนการประมวลผลเหตุการณ์

การเรียกใช้ฟังก์ชันในนิพจน์

การเรียกขั้นตอนย่อยในขั้นตอนอื่นหรือในหน้าต่างการดีบัก

การดำเนินการคำสั่งแมโคร RunCode (RunCode) ในแมโคร

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

มาดูการเรียกใช้แบบสอบถามฐานข้อมูลโดยใช้คำสั่ง SQL ในโปรแกรม Visual Basic for Applications

คำขอจะเลือกบันทึกจากฐานข้อมูลที่ตรงตามเงื่อนไขบางประการ (คำขอเลือก) หรือออกคำแนะนำเพื่อดำเนินการที่ระบุกับบันทึกที่ตรงตามเงื่อนไขบางประการ (คำขอเปลี่ยนแปลง)

มีวิธีการดำเนินการแบบสอบถามดังต่อไปนี้:

การเรียกเมธอด Execute (เพื่อดำเนินการคำสั่ง SQL สำหรับการเปลี่ยนแปลง);

การสร้างและการดำเนินการของวัตถุ QueryDef พิเศษ

การใช้คำสั่ง SQL เป็นอาร์กิวเมนต์กับเมธอด OpenRecordset

ดำเนินการวิธีการ OpenRecordset บนวัตถุ QueryDef ที่มีอยู่

การเรียกเมธอด RunSQL และ OpenQuery

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

วัตถุ QueryDefแสดงถึงคำจำกัดความของแบบสอบถามที่บันทึกไว้ในฐานข้อมูล สามารถมองได้ว่าเป็นคำสั่ง SQL ที่คอมไพล์แล้ว

วิธีการ OpenRecordsetใช้เพื่อเปิดวัตถุประเภท Recordset เพื่อดำเนินการต่อไป

วิธีการ RunSQLรันแมโคร เรียกใช้แบบสอบถาม SQLในโปรแกรม VBA

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

ตัวเลือกการดำเนินการค้นหาจะถูกกำหนดโดยโปรแกรมเมอร์โดยคำนึงถึงลักษณะของปัญหาที่กำลังแก้ไข

แบบสอบถาม SQL คือแบบสอบถามที่สร้างขึ้นโดยใช้คำสั่ง SQL SQL (Structured Query Language) ใช้เพื่อสร้างแบบสอบถามและอัปเดตและจัดการฐานข้อมูลเชิงสัมพันธ์ เช่น ฐานข้อมูล Microsoft Access

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

ประเภทของคำขอในตัวสร้าง:

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

ในการทำเช่นนี้จะใช้มาโครซึ่งประกอบด้วยคำสั่งที่ดำเนินการตามลำดับหลายคำสั่ง

การคำนวณในการสืบค้น ความสามารถในการสร้างและแก้ไขสูตร

สำหรับฟิลด์จากตารางที่ระบุในสคีมาแบบสอบถาม คุณสามารถระบุการคำนวณใดก็ได้

ในการคำนวณ คุณต้องเพิ่มฟิลด์ที่มีการคำนวณเพิ่มเติมลงในคำขอ โดยค่าจะถูกคำนวณตามค่าของฟิลด์อื่นในคำขอ

แบบสอบถามสรุป การจัดกลุ่ม ฟังก์ชั่นสรุป

แบบสอบถามสุดท้ายจะถูกสร้างขึ้นโดยใช้โหมด - แบบสอบถามสรุป

สามารถใช้ตารางได้สามตาราง รวมทั้งตารางลิงก์ด้วย

ในกรณีนี้ คุณสามารถเรียกเมนูบริบทได้จากทุกที่ในคำขอ (ปุ่มเมาส์ขวา) และเลือกแอตทริบิวต์ "การดำเนินการกลุ่ม"

บรรทัดการจัดกลุ่มใหม่จะปรากฏในแบบฟอร์มคำขอ

ฟังก์ชันทั้งหมด: ในฟิลด์ที่เราต้องการคำนวณผลรวม ให้เลือกฟังก์ชัน "ผลรวม" จากรายการเพื่อรวมค่าทั้งหมดของฟิลด์ที่เลือก ฟังก์ชัน Count จะนับจำนวนค่าของฟิลด์ การแก้ไขข้อมูล ไมโครซอฟต์

การสืบค้นเป็นการดึงดูด DBMS ให้ดำเนินการใดๆ กับข้อมูล เช่น การเลือกส่วนหนึ่งของข้อมูลจากปริมาตรรวม การเพิ่มฟิลด์ที่คำนวณ ข้อมูลที่เปลี่ยนแปลงจำนวนมาก ฯลฯ

ในคำขอของคุณ คุณสามารถ:

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

ประเภทของคำขอ:

  • - การสุ่มตัวอย่าง;
  • - การสร้างตาราง
  • - อัปเดต (การเปลี่ยนแปลงข้อมูล);
  • - การเพิ่มบันทึก;
  • - การลบบันทึก

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

Microsoft Access มีแบบสอบถามหลายประเภท