Კომპიუტერები, Მონაცემთა ბაზა
SQL შენახული პროცედურების შექმნა და გამოყენება
SQL შენახული პროცედურების შესრულებადი პროგრამული მოდული, რომელიც შეიძლება შენახული მონაცემთა ბაზის სახით სხვადასხვა ობიექტები. სხვა სიტყვებით, ეს არის ობიექტი, რომელიც შეიცავს SQL-ს განცხადებაში. ამ შენახული პროცედურების შეიძლება გაფორმდეს კლიენტი პროგრამა, რომ კარგი შესრულება. გარდა ამისა, ასეთი ობიექტები ხშირად უწოდებენ სხვა სკრიპტები ან თუნდაც ნებისმიერი სხვა განყოფილებაში.
შესავალი
ბევრი თვლის, რომ ისინი მსგავსი პროცედურები სხვადასხვა მაღალი დონის პროგრამირების ენების (შესაბამისად, გარდა MS SQL). ალბათ ეს მართლაც ასეა. მათ აქვთ მსგავსი პარამეტრებით, მათ შეუძლია გასცეს მსგავსი მნიშვნელობა. უფრო მეტიც, ზოგიერთ შემთხვევაში, ისინი მოვიდეს კონტაქტში. მაგალითად, ისინი ერთად მონაცემთა ბაზა DDL და DML მონაცემები, აგრეთვე მომხმარებლის ფუნქციები (კოდი სახელი - UDF).
რეალურად ინახება SQL პროცედურების ფართო სპექტრს უპირატესობა, რომელიც განასხვავებს მათ შორის ისეთი პროცესები. უსაფრთხოება, ცვალებადობა პროგრამირების პროდუქტიულობა - ეს ყველაფერი იზიდავს მომხმარებლებს მუშაობა მონაცემთა ბაზებთან, უფრო და უფრო. პოპულარობა მოვიდა პროცედურების 2005-2010 წლების, როდესაც მე მივიღე პროგრამის "Microsoft" სახელწოდებით «SQL Server Management Studio». მისი დახმარებით, მუშაობა მონაცემთა ბაზებთან გახდა ბევრად უფრო ადვილია, უფრო პრაქტიკული და მოსახერხებელი. წელი შემდეგ წელს, ეს მეთოდი გადამცემი ინფორმაცია მოიპოვა პოპულარობა პროგრამირების გარემო. დღეს, MS SQL Server აბსოლუტურად ჩვეულებრივი პროგრამა, რომელიც მომხმარებლებს "კომუნიკაცია" მონაცემთა ბაზების, იდგა დადგა "Excel".
როდესაც თქვენ მოვუწოდებთ პროცედურა, იგი მყისიერად დამუშავებული სერვერზე გარეშე არასაჭირო პროცესების და მომხმარებლის ჩარევას. ამის შემდეგ შეგიძლიათ შეასრულოს რაიმე მოქმედება ერთად information: წაშლა, შესრულების, ცვლილება. მთელ ამ არის DDL-ოპერატორი, რომელიც ერთპიროვნულად შეასრულოს რთული ქმედებები იმ ობიექტების. და ეს ყველაფერი ხდება ძალიან სწრაფად, და სერვერზე ფაქტობრივად არ დატვირთული. ეს სიჩქარე და წარმადობა გაძლევთ სწრაფად გადასცეს დიდი რაოდენობით ინფორმაცია მომხმარებლის სერვერზე და პირიქით.
განახორციელოს ამ სამუშაოს ინფორმაციით, არსებობს რამდენიმე პროგრამირების ენებზე ტექნოლოგიები. ესენია, მაგალითად, PL / SQL საწყისი მონაცემთა ბაზის მართვის სისტემის Oracle, PSQL in InterBase და Firebird სისტემების, ისევე როგორც კლასიკური "maykrosoftovskih» გაუჩნდა- SQL. ყველა მათგანი შექმნილია შექმნა და აწარმოებს შენახული პროცედურები, რომელიც საშუალებას გაძლევთ გამოიყენოთ საკუთარი ალგორითმები დიდი მონაცემთა ბაზა ელფოსტის. ეს არის საჭირო და უზრუნველყოს, რომ ისინი, ვინც განახორციელოს მართვის ასეთი ინფორმაცია, შეუძლია დაიცვას ყველა ობიექტების არასანქცირებული მესამე მხარეს და, აქედან გამომდინარე, შექმნის, შეცვლის ან წაშლის გარკვეული მონაცემები.
პროდუქტიულობის
ეს მონაცემთა ბაზის ობიექტები შეიძლება პროგრამირდება სხვადასხვა გზები. ეს საშუალებას აძლევს მომხმარებლებს აირჩიეთ ტიპის პროცესი, რომელიც იქნება ყველაზე შესაფერისი, რომელიც ზოგავს დროს და ენერგიას. გარდა ამისა, პროცედურა თავად არის დამუშავებული, რითაც თავიდან აცილების დიდი დრო იხარჯება შორის კომუნიკაციის სერვერზე და მომხმარებელს. მოდული შეიძლება reprogrammed და შეიცვალა სწორი მიმართულებით აბსოლუტურად ნებისმიერ დროს. განსაკუთრებით აღსანიშნავია სიჩქარე, რომლის დაწყებას SQL შენახული პროცედურა ხდება: პროცესი სწრაფად სხვა მსგავსი ის, რაც მას მოსახერხებელი და მრავალმხრივი.
უსაფრთხოების
ამ ტიპის ინფორმაციის დამუშავების განსხვავდება ანალოგიური პროცესები, რომ ის უზრუნველყოფს უსაფრთხოების გაძლიერებაზე. ეს უზრუნველყოფილია იმით, რომ სხვა მომხმარებლებს წვდომის პროცედურები შეიძლება აღმოიფხვრას მთლიანად. ეს საშუალებას მისცემს Administrator ოპერაციების მათ დამოუკიდებლად, შიშის გარეშე მოხსნა ან არასანქცირებული წვდომის მონაცემთა ბაზაში.
მონაცემთა გადაცემის
ურთიერთობა შორის შენახული SQL პროცედურა და კლიენტი პროგრამა არის გამოიყენოს პარამეტრების და დაბრუნების ღირებულებებს. ეს უკანასკნელი არ არის საჭირო გადასცეს მონაცემები ინახება პროცედურა, მაგრამ ინფორმაცია (ძირითადად მომხმარებლის მოთხოვნით), და დამუშავებული SQL. ერთხელ შენახული პროცედურა დაასრულა თავისი სამუშაო, ის აგზავნის პაკეტების უკან (მაგრამ, კიდევ ერთხელ, თუ სასურველი), რათა მოუწოდებს განაცხადის გამოყენებით სხვადასხვა მეთოდები, რომლითაც შეიძლება განხორციელდეს როგორც ზარი შენახული SQL პროცედურა და სანაცვლოდ, მაგალითად:
- მონაცემთა გადაცემის მეშვეობით გამომავალი პარამეტრი ტიპის;
- მონაცემთა გადაცემის მეშვეობით დაბრუნების განაცხადი;
- მონაცემთა გადაცემის მეშვეობით გადამზიდავი შერჩევა.
ახლა შევხედოთ, თუ როგორ პროცესში გამოიყურება იგივე შიგნით.
1. შექმნა EXEC-შენახული SQL პროცედურა
თქვენ შეგიძლიათ შექმნათ პროცედურა MS SQL (Managment სტუდია). პროცედურის დასრულების შემდეგ იქმნება, ჩამოთვლილი პროგრამირებადი მონაცემთა ბაზაში კვანძის, რომელშიც პროცედურა ხორციელდება ოპერატორის მიერ შექმნის. იმისათვის, რომ შეასრულოს SQL შენახული პროცედურების გამოყენებით EXEC-პროცესი, რომელიც შეიცავს ობიექტის სახელი.
როდესაც შექმნით სახელი მოდის პირველი პროცედურა, და შემდეგ გააკეთა ერთი ან მეტი პარამეტრები, რომლებიც ენიჭება მას. პარამეტრები შეიძლება სურვილისამებრ. მას შემდეგ, რაც პარამეტრი (s), ანუ ორგანოს პროცედურა, უნდა ჩაიწეროს, აუცილებელია განახორციელოს გარკვეული საჭირო ოპერაციებში.
ის ფაქტი, რომ სხეულის აქვს ადგილობრივი ცვლადები, რომელიც მდებარეობს, და ამ ცვლადების ადგილობრივი და იმ პროცედურების შესაბამისად. სხვა სიტყვებით, ისინი შეიძლება ჩაითვალოს მხოლოდ იმ ორგანოს მკურნალობა Microsoft SQL Server. შენახული პროცედურები, ამ შემთხვევაში ითვლება ადგილობრივი.
ამდენად, უნდა შეიქმნას პროცესი, ჩვენ გვჭირდება პროცედურის სახელი და მინიმუმ ერთი პარამეტრი, როგორც პროცედურა სხეულის. გთხოვთ გაითვალისწინოთ, რომ შესანიშნავი ვარიანტი ამ შემთხვევაში შექმნისა და განხორციელების პროცედურების სქემის სახელი კლასიფიკატორი.
პროცედურა სხეულის შეიძლება ჰქონდეს რაიმე სახის ოპერატორები SQL, მაგალითად, როგორიცაა შექმნის მაგიდა, ჩასმა ერთი ან მეტი რიგები მაგიდა, დამყარების მონაცემთა ბაზის ტიპი და ხასიათი, და ასე შემდეგ. მიუხედავად ამისა, ეს პროცედურა სხეულის ზღუდავს გარკვეული ოპერაციების იგი. ზოგიერთი ყველაზე მნიშვნელოვანი შეზღუდვები ჩამოთვლილია ქვემოთ:
- სხეულის არ შექმნათ ნებისმიერი სხვა შენახული პროცედურა;
- სხეულის არ უნდა შევქმნათ ცრუ შთაბეჭდილებას ობიექტი;
- სხეულის არ ქმნის რაიმე იწვევს.
2. უცნობია ცვლადი ორგანოს პროცედურა
შეგიძლიათ გააკეთოთ ცვლადები ადგილობრივი პროცედურა სხეულის, და მერე იქნება ერთი პროცედურა სხეულის. კარგი პრაქტიკა შექმნა ცვლადი დასაწყისში შენახული პროცედურა სხეულის. მაგრამ ასევე შეგიძლიათ ცვლადები ნებისმიერ ორგანოს ობიექტი.
ზოგჯერ თქვენ შეამჩნევთ, რომ ზოგიერთი ცვლადის დგინდება იმავე რიგის, და თითოეული ცვლადის გამოყოფილი მძიმით. ასევე აღნიშნავენ, რომ ცვლადი prefixed ერთად @. ორგანიზმში პროცედურა, შეგიძლიათ მითითებული ცვლადი, რომელიც გსურთ. მაგალითად, ცვლადი @ NAME1 შეიძლება გამოცხადდეს დასასრულს პროცედურა სხეულის. იმისათვის, რომ მივანიჭოთ მნიშვნელობა ცვლადის განაცხადა გამოყენებით კომპლექტი პირადი მონაცემები. განსხვავებით იმ ვითარებაში, როდესაც ერთზე მეტი ცვლადის განაცხადა იმავე row, მხოლოდ ერთი კომპლექტი პირადი მონაცემები გამოყენებული ამ სიტუაციაში.
მომხმარებელი ხშირად სვამენ კითხვას: "როგორ მინიჭებას სხვადასხვა ღირებულებების ერთი განაცხადი ორგანოს პროცედურა?" ისე. საინტერესო კითხვა, მაგრამ ეს ბევრად უფრო ადვილია, ვიდრე ფიქრობთ. პასუხი: დახმარებით ასეთი წყვილი როგორც «აირჩიეთ Var = ღირებულება". თქვენ შეგიძლიათ გამოიყენოთ ეს წყვილი, მძიმით.
3. შექმენით SQL შენახული პროცედურა
მრავალფეროვანი მაგალითია ადამიანს შექმნას მარტივი პროცედურა და შეასრულოს ის. თუმცა, პროცედურა შეუძლია მიიღოს ისეთი პარამეტრების, რომელიც მოუწოდებს პროცესი მას ექნება მნიშვნელობა ახლოს (მაგრამ არა ყოველთვის). თუ ისინი ემთხვევა, მაშინ იწყება შესაბამისი პროცესების ორგანოს. მაგალითად, თუ თქვენ შექმნით პროცედურა, რომელიც მიიღებს ქალაქის და რეგიონის აბონენტის და დაბრუნებას მონაცემები, თუ რამდენი ავტორები ეხება შესაბამის ქალაქში და რეგიონში. პროცედურა შეკითხვის მონაცემთა ბაზის მაგიდასთან ავტორები, მაგალითად, ლუდის ბარებისა, ასრულებენ ამ გაანგარიშება ავტორები. მიიღოს ამ მონაცემების, მაგალითად, Google იწერს SQL სცენარი SQL2005 გვერდზე.
წინა მაგალითად, პროცედურა ორ პარამეტრების, რომელიც ინგლისურ ენაზე ეწოდოს პირობითად @State და @City. მონაცემთა ტიპის შეესაბამება ტიპის განაცხადში მითითებული. პროცედურა სხეულის შიდა ცვლადი @TotalAuthors (ყველა ავტორები), და ეს ცვლადი გამოიყენება არიან მათი რაოდენობა. შემდეგ მოდის განყოფილების შერჩევა თხოვნით, რომ ყველა ითვლის. და ბოლოს, გათვლილი ღირებულება არის ნაჩვენები გამომავალი ფანჯრის გამოყენებით ბეჭდვითი განცხადებაში.
როგორ ასრულებს SQL შენახული პროცედურა
არსებობს ორი გზა, რომ შეასრულოს პროცედურა. პირველი გზა არის ნაჩვენები მიერ ჩაბარების პარამეტრების როგორც მძიმით გამოყოფილი სია კეთდება პროცედურის შემდეგ სახელი. დავუშვათ, რომ ჩვენ გვაქვს ორი ღირებულებები (რაც წინა მაგალითად). ეს ფასეულობები გროვდება ცვლადები და @State @City პროცედურა. ამ მეთოდით, მნიშვნელოვანი პარამეტრების გადაცემის მიზნით. ეს მეთოდი ეწოდება გადაცემის თანმიმდევრობა არგუმენტები. მეორე მეთოდი, პარამეტრების უკვე დანიშნული პირდაპირ, ამ შემთხვევაში ბრძანება არ არის მნიშვნელოვანი. ეს მეორე მეთოდი ცნობილია, როგორც გადაცემა დაასახელა არგუმენტები.
პროცედურა შეიძლება ოდნავ გადახრილია დამახასიათებელი. ყველა იგივე, რაც წინა მაგალითად, მაგრამ პარამეტრების გადაინაცვლებს აქ მხოლოდ. ეს არის @City პარამეტრი ინახება პირველი და @State ინახება შემდეგი ნაგულისხმევი მნიშვნელობა. რა გარემოში, როგორც წესი, გამოყოფილი ცალკე. SQL შენახული პროცედურების, როგორც მარტივი პარამეტრები. ამ შემთხვევაში, იმ პირობით, რომ ვარიანტი რომ "UT" ცვლის ნაგულისხმევი მნიშვნელობა "CA". მეორე განსახიერება გადის მხოლოდ ერთი არგუმენტი მნიშვნელობა @City და @State ვარიანტი უპირობოდ "CA". გამოცდილი პროგრამისტები ურჩია, რომ ყველა ნაგულისხმევი ცვლადების მდებარეობს ახლოს ბოლომდე პარამეტრის სია. წინააღმდეგ შემთხვევაში, აღსრულება არ არის შესაძლებელი, მაშინ თქვენ უნდა ვიმუშაოთ გადაცემის დაასახელა არგუმენტები, რომ უფრო და უფრო რთული.
4. შენახული პროცედურები SQL Server: გზები დაბრუნების
არსებობს სამი ძირითადი გზა გაგზავნის მონაცემები ინახება ე.წ. პროცედურა. ისინი ქვემოთ ჩამოთვლილი:
- დაბრუნების ღირებულებების შენახული პროცედურა;
- გამომავალი პარამეტრი შენახული პროცედურები;
- აირჩიეთ ერთი შენახული პროცედურები.
4.1 დაბრუნება ღირებულებები SQL შენახული პროცედურების
ამ პროცედურას, პროცედურა ადგენს ღირებულება ადგილობრივი ცვლადი და დააბრუნებს მას. პროცედურა ასევე შეგიძლიათ პირდაპირ დაუბრუნდნენ მუდმივი მნიშვნელობა. შემდეგ მაგალითს, ჩვენ შევქმენით პროცედურა, რომელიც ბრუნდება საერთო რაოდენობის სპონსორები. თუ შევადარებთ წინა პროცედურა, თქვენ ხედავთ, რომ ღირებულება ბეჭდვითი შეიცვალა საპირისპირო.
ახლა მოდით შევხედოთ, თუ როგორ ასრულებს პროცედურა და არიან ღირებულება, მისი დაბრუნება. პროცედურების საჭირო შექმნას და ცვლადი ბეჭდვა, რომელიც ხორციელდება პროცესის შემდეგ. ყურადღება მიაქციეთ, რომ ნაცვლად დაბეჭდვის ოპერატორს შეუძლია გამოიყენოს Select-ოპერატორი, მაგალითად, აირჩიეთ @RetValue და OutputValue.
4.2 გამომავალი პარამეტრი SQL შენახული პროცედურების
პასუხი ღირებულება შეიძლება დაბრუნებას ერთი ცვლადი, რომელიც ჩვენ ვნახეთ, წინა მაგალითი. გამოყენება გამომავალი იძლევა პროცედურა ერთი ან მეტი ცვლადები დარეკა. გამომავალი პარამეტრი აღინიშნება, როგორც დრო ამ გასაღები სიტყვა «გამოყვანის», როდესაც შექმნა პროცედურა. იმ შემთხვევაში, თუ პარამეტრი მითითებულია, როგორც გამომავალი პარამეტრი, პროცედურა ობიექტი უნდა მივანიჭოთ მას ღირებულება. შენახული პროცედურების SQL, მაგალითები, რომლებიც ჩანს ქვემოთ, ასეთ შემთხვევაში დაბრუნების საბოლოო ინფორმაცია.
ამ მაგალითად, იქნება ორი კვირის სახელი: @TotalAuthors და @TotalNoContract. ისინი განსაზღვრულია პარამეტრის სია. ეს ცვლადები დანიშნული ღირებულებების პროცედურა სხეულის. როდესაც ჩვენ ვიყენებთ გამომავალი პარამეტრების, აბონენტის ხედავთ ღირებულების კომპლექტი პროცედურა სხეულის.
გარდა ამისა, წინა სცენარი, ორი ცვლადების განაცხადა, რომ ღირებულებები, რომლებიც დამონტაჟებული შენახული პროცედურები, MS SQL Server, როგორც გამომავალი პარამეტრი. შემდეგ პროცედურა ხორციელდება გამოყენებით ჩვეულებრივი ღირებულების «CA» პარამეტრი. შემდეგი პარამეტრების გამომავალი და, შესაბამისად, განაცხადა ცვლადები გავიდა დადგენილი წესით. გთხოვთ გაითვალისწინოთ, რომ როცა ცვლადი გამომავალი სიტყვით ასევე მითითებული აქ. პროცედურის დასრულების შემდეგ წარმატებით დასრულდა, ღირებულება დაბრუნდა გამოყენებით გამომავალი პარამეტრების ნაჩვენები გაგზავნა window.
4.3 შერჩევა SQL შენახული პროცედურების
ეს ტექნიკა გამოიყენება დაბრუნებას კომპლექტი სახით მაგიდა მონაცემები ღირებულებები (ჩანაწერთა) მოუწოდებდა ინახება პროცედურა. ამ მაგალითად, SQL შენახული პროცედურა პარამეტრების @AuthID ითხოვს მაგიდა "ავტორები" ფილტრაცია ჩანაწერები დაბრუნდა ამ მაჩვენებლის @AuthId. აირჩიეთ ოპერატორი გადაწყვეტს, თუ რა უნდა დაუბრუნდეს, მოუწოდებდა ინახება პროცედურა. როდესაც შენახული პროცედურის AuthId გადამდები დაბრუნება. ასეთი პროცედურა ყოველთვის ბრუნდება მხოლოდ ერთი ჩანაწერი და არა ყველა. თუმცა, პროცედურა არ აქვს შეზღუდვები დაბრუნების ერთზე მეტი ჩანაწერი. ხშირად მაგალითები გვხვდება, სადაც დაბრუნების მონაცემები არჩეული გამოყენებით პარამეტრების გათვლილი ცვლადები კეთდება უზრუნველყოფს გავურბივარ სულ ღირებულებებს.
დასკვნა
შენახული პროცედურა საკმაოდ სერიოზული პროგრამა, დაბრუნებულია ან გადატანილია, ისევე, როგორც ჩამოყალიბების აუცილებელი ცვლადები იმის გამო, რომ კლიენტი პროგრამა. მას შემდეგ, რაც შენახული პროცედურა ხორციელდება სერვერზე თავად, მონაცემთა გაცვლის დიდი მოცულობის შორის სერვერზე და კლიენტი პროგრამა (ზოგიერთი გათვლებით) შეიძლება იქნას აცილებული. ეს საშუალებას იძლევა, შეამციროს დატვირთვის SQL სერვერზე, რომელიც, რა თქმა უნდა, არის ხელში, მათი მფლობელები. ერთ-ერთი subspecies ინახება პროცედურები T SQL, მაგრამ მათი შესწავლა საჭიროა იმ ჩართული შექმნა შთამბეჭდავი მონაცემთა ბაზაში. არსებობს ასევე დიდი, უზარმაზარი ნიუანსს, რომელიც შეიძლება იყოს სასარგებლო შესწავლა შენახული პროცედურები, თუმცა, ეს საჭიროება მათთვის, ვინც გეგმავს გააკეთებს მჭიდრო პროგრამირების, მათ შორის პროფესიონალურად.
Similar articles
Trending Now