คอมพิวเตอร์ฐานข้อมูล

SQL วิธีการจัดเก็บ: การสร้างและการใช้งาน

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

การแนะนำ

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

การจัดเก็บ SQL จริงมีหลากหลายประโยชน์ที่แตกต่างในหมู่พวกเขากระบวนการดังกล่าว การผลิตการเขียนโปรแกรมความปลอดภัยแปรปรวน - ทั้งหมดนี้ดึงดูดผู้ใช้ทำงานกับฐานข้อมูลมากขึ้น จุดสูงสุดของความนิยมมาวิธีการสำหรับปี 2005-2010 เมื่อผมได้รับจากโปรแกรม "Microsoft" ภายใต้ชื่อ«SQL Server บริหารสตูดิโอ» ด้วยความช่วยเหลือของการทำงานกับฐานข้อมูลได้กลายเป็นเรื่องง่ายในทางปฏิบัติมากขึ้นและสะดวกมากขึ้น ปีแล้วปีนี้ วิธีการในการส่งข้อมูล ได้รับความนิยมในสภาพแวดล้อมการเขียนโปรแกรม วันนี้, MS SQL Server เป็นโปรแกรมปกติอย่างแน่นอนซึ่งสำหรับผู้ใช้ในการ "สื่อสาร" กับฐานข้อมูลที่ยืนอยู่บนที่ตราไว้หุ้นด้วย "Excel"

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

ที่จะใช้งานนี้กับข้อมูลที่มีหลายเทคโนโลยีการเขียนโปรแกรมภาษา เหล่านี้รวมถึงตัวอย่างเช่น PL / SQL จาก ระบบการจัดการฐานข้อมูล Oracle, psql ใน InterBase Firebird และระบบเช่นเดียวกับคลาสสิก "maykrosoftovskih » Transact-SQL ทั้งหมดของพวกเขาได้รับการออกแบบมาเพื่อสร้างและเรียกใช้วิธีการจัดเก็บช่วยให้คุณสามารถใช้กลไกของตัวเองบนรถขนฐานข้อมูลขนาดใหญ่ มันเป็นสิ่งจำเป็นและเพื่อให้แน่ใจว่าผู้ที่ดำเนินการจัดการของข้อมูลดังกล่าวสามารถป้องกันวัตถุทั้งหมดจากบุคคลที่สามไม่ได้รับอนุญาตและมีการสร้างการปรับเปลี่ยนหรือลบข้อมูลบางอย่าง

ผลผลิต

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

ความปลอดภัย

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

การถ่ายโอนข้อมูล

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

- ส่งข้อมูล ผ่านพารามิเตอร์ชนิดเอาท์พุท;

- ส่งข้อมูลผ่านคำสั่งกลับนั้น

- ส่งข้อมูลผ่านทางเลือกผู้ให้บริการ

และตอนนี้ดูที่วิธีการขั้นตอนนี้จะมีลักษณะเดียวกันภายใน

1. สร้าง EXEC-เก็บไว้ในขั้นตอนของ SQL

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

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

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

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

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

- ร่างกายไม่ได้สร้างกระบวนการจัดเก็บอื่น ๆ ;

- ร่างกายจะต้องไม่สร้างความประทับใจเท็จเกี่ยวกับวัตถุนั้น

- ร่างกายไม่ได้สร้างทริกเกอร์ใด ๆ

2. ตั้งค่าตัวแปรในร่างกายของขั้นตอนที่

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

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

ผู้ใช้มักจะถามคำถาม: "วิธีการกำหนดค่าหลายค่าในคำสั่งเดียวในร่างกายของขั้นตอนที่ 'ดี คำถามที่น่าสนใจ แต่เรื่องนี้เป็นเรื่องง่ายกว่าที่คุณคิด คำตอบ: ด้วยความช่วยเหลือของคู่เช่น«เลือก Var value =" คุณสามารถใช้คู่เหล่านี้คั่นด้วยเครื่องหมายจุลภาค

3. สร้างขั้นตอนการจัดเก็บ SQL

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

ในตัวอย่างก่อนหน้านี้ขั้นตอนจะใช้เวลาสองพารามิเตอร์ซึ่งในภาษาอังกฤษจะเรียกว่าเงื่อนไข @State และ @City ชนิดข้อมูลที่สอดคล้องกับประเภทที่ระบุไว้ในใบสมัคร ร่างกายขั้นตอนมีตัวแปรภายใน @TotalAuthors (ผู้เขียนทั้งหมด) และตัวแปรนี้จะใช้เพื่อแสดงจำนวนของพวกเขา ถัดมาคำขอเลือกส่วนนั้นทุกข้อหา สุดท้ายค่าที่คำนวณจะปรากฏในหน้าต่างการส่งออกโดยใช้คำสั่งพิมพ์

วิธีการดำเนินการขั้นตอนการจัดเก็บ SQL

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

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

4. วิธีการจัดเก็บ SQL Server: วิธีการของการกลับมา

มีสามวิธีที่สำคัญในการส่งข้อมูลที่เก็บไว้ในขั้นตอนที่เรียกว่า พวกเขามีการระบุไว้ด้านล่าง:

- ค่าผลตอบแทนขั้นตอนการเก็บ;

- เอาท์พุทพารามิเตอร์วิธีการจัดเก็บ;

- เลือกหนึ่งในขั้นตอนการจัดเก็บ

4.1 ค่ากลับมาของการจัดเก็บ SQL

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

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

4.2 ขั้นตอนการเอาท์พุทพารามิเตอร์ SQL ที่เก็บไว้

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

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

นอกจากนี้ในสถานการณ์ก่อนหน้านี้สองตัวแปรมีการประกาศที่จะเห็นค่าที่มีการติดตั้งวิธีการจัดเก็บ, MS SQL Server เป็นพารามิเตอร์การแสดงผล จากนั้นขั้นตอนที่จะดำเนินการโดยใช้ค่าปกติ«CA»พารามิเตอร์ พารามิเตอร์ต่อไปนี้การส่งออกและมีการประกาศตัวแปรจะถูกส่งผ่านในลักษณะที่กำหนด โปรดทราบว่าเมื่อคำหลักที่การส่งออกยังตัวแปรที่ระบุไว้ที่นี่ หลังจากขั้นตอนเสร็จเรียบร้อยแล้วค่าส่งกลับโดยใช้พารามิเตอร์ที่ส่งออกจะปรากฏบนหน้าต่างข้อความ

4.3 การเลือกการจัดเก็บ SQL

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

สรุป

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

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 th.delachieve.com. Theme powered by WordPress.