Მონაცემთა ბაზებისა და ცხრილების შექმნა SQL- ში

შექმნა მონაცემთა ბაზა

მზად ხართ მონაცემთა ბაზებისა და ცხრილების შექმნა სტრუქტურირებული შეკითხვის ენაზე ? ამ სტატიაში, ჩვენ შეისწავლის ცხრილების შექმნის პროცესს ხელით შექმნის DATABASE და შექმნას TABLE ბრძანებები. თუ ახალი ხართ SQL- სთვის, შეგიძლიათ განიხილოთ ჩვენი SQL Basics- ის პირველი სტატიის ნახვა.

ბიზნესის მოთხოვნები

სანამ კლავენ კლავიატურაზე, ჩვენ უნდა დავრწმუნდეთ, რომ ჩვენ გვაქვს მომხმარებელთა მოთხოვნების მყარი გაგება. რა არის საუკეთესო გზა მიიღოს ამ insight? რა თქმა უნდა! XYZ- ის ადამიანური რესურსების დირექტორთან ერთად ვიყავით იმის შესახებ, რომ ისინი ვიჯეტის გაყიდვების კომპანიას წარმოადგენენ და, პირველ რიგში, დაინტერესებული არიან მათი გაყიდვების პერსონალის შესახებ ინფორმაცია.

XYZ კორპორაცია განცალკევებს მათი გაყიდვების ძალას აღმოსავლეთ და დასავლეთ ნაწილებად, რომელთაგან თითოეული დაყოფილია სხვადასხვა ტერიტორიებზე, რომლებიც დაფარულია ინდივიდუალური გაყიდვების წარმომადგენლებთან. ადამიანური რესურსების დეპარტამენტი სურს დაიკავოს თითოეული თანამშრომლის ტერიტორია, ასევე თითოეული თანამშრომლის ხელფასი ინფორმაცია და სამეთვალყურეო სტრუქტურა. ამ მოთხოვნების დასაკმაყოფილებლად, ჩვენ შევქმენით მონაცემთა ბაზა, რომელიც შედგება სამი ცხრილისაგან, რომელიც მოცემულია ამ გვერდზე არსებულ ერთობლივ-დიაგრამებზე .

შერჩევა მონაცემთა ბაზა პლატფორმა

ჩვენ გადავწყვიტეთ გამოიყენოთ მონაცემთა ბაზების მართვის სისტემა (ან DBMS), რომელიც აგებულია სტრუქტურირებული შეკითხვის ენაზე (SQL). ამიტომ, ყველა ჩვენი მონაცემთა ბაზა და მაგიდის შექმნა ბრძანებები უნდა იყოს დაწერილი სტანდარტული ANSI SQL გათვალისწინებით.

როგორც დამატებითი სარგებელი, გამოყენებით ANSI- ის შესაბამისი SQL უზრუნველყოფს, რომ ეს ბრძანებები იმუშავებს ნებისმიერი DBMS, რომელიც მხარს უჭერს SQL სტანდარტის , მათ შორის Oracle და Microsoft SQL Server. თუ არ გაქვთ შერჩეული პლატფორმა თქვენს მონაცემთა ბაზაში ჯერ კიდევ, სტატია მონაცემთა ბაზის პროგრამული პარამეტრები დადის თქვენ მეშვეობით შერჩევის პროცესში.

შექმნა მონაცემთა ბაზა

ჩვენი პირველი ნაბიჯი არის მონაცემთა ბაზის შექმნა. ბევრი მონაცემთა ბაზების მართვის სისტემები გთავაზობთ რიგი პარამეტრები, რათა Customize მონაცემთა ბაზის პარამეტრების ამ ეტაპზე, მაგრამ ჩვენი მონაცემთა ბაზა მხოლოდ იძლევა მარტივი შექმნის მონაცემთა ბაზაში. როგორც ყველა ჩვენი ბრძანებით შეგიძლიათ დაათვალიეროთ თქვენი DBMS- ის დოკუმენტაციის კონსულტაციები, რათა დადგინდეს თქვენი კონკრეტული სისტემის მხარდაჭერილი ნებისმიერი მოწინავე პარამეტრი თქვენს საჭიროებებს. მოდით გამოვიყენოთ CREATE DATABASE ბრძანება, რომ შევქმნათ ჩვენი მონაცემთა ბაზა:

შეიტანეთ მონაცემთა ბაზა პერსონალი

აღნიშნეთ ზემოთ მოყვანილი კაპიტალიზაციის განსაკუთრებული აღნიშვნა. ეს საერთო პრაქტიკაა SQL პროგრამისტებისთვის, რომლებიც გამოიყენება SQL- ის საკვანძო სიტყვებით, როგორიცაა "შექმნა" და "მონაცემთა ბაზა", ხოლო ყველა "" პერსონალის "სახელით" ეს კონგრესები ადვილად იკითხება.

გავაგრძელებ ამ ტერმინს, რადგან ჩვენ ვატარებთ ცხრილებს ჩვენს მონაცემთა ბაზაში.

სწავლის მეტი

თუ გსურთ შეიტყოთ მეტი სტრუქტურირებული შეკითხვის ენაზე , წაიკითხოთ შესავალი SQL- ზე ან დარეგისტრირდით ჩვენს უფასო სწავლების SQL E-mail კურსისთვის.

ახლა, ჩვენ შექმნილია და შევქმენით ჩვენი მონაცემთა ბაზა, ჩვენ მზად ვართ დავიწყოთ XYZ კორპორაციის პერსონალის მონაცემების შესანახად სამი მაგიდის შექმნა. ჩვენ უნდა განვახორციელოთ ცხრილები, რომლებიც შემუშავებულ იქნა ამ tutorial- ის წინა ნაწილიდან.

შექმნა ჩვენი პირველი მაგიდა

ჩვენი პირველი მაგიდა შედგება თითოეული კომპანიის თანამშრომლის პირადი მონაცემებისგან. ჩვენ გვჭირდება თითოეული თანამშრომლის სახელი, ხელფასი, პირადობის მოწმობა და მენეჯერი. ეს არის კარგი დიზაინის პრაქტიკა, რათა გამოვყოთ ბოლო და პირველი სახელები ცალკეულ სფეროებში, რათა გამარტივდეს მონაცემთა ძიებისა და დახარისხების მომავალი. ასევე, თითოეული თანამშრომლის მენეჯერის ტრეკზე გავაგრძელებთ მენეჯერის თანამშრომლის მითითებას თითოეული თანამშრომლის ჩანაწერში. მოდი, პირველ რიგში შევხედოთ სასურველი თანამშრომლის მაგიდას.

ReportsTo ატრიბუტი ინახავს თითოეულ თანამშრომელს მენეჯერის პირადობის მოწმობას. ნიმუშის ჩანაწერებიდან ჩვენ შეგვიძლია განვსაზღვროთ, რომ Sue Scampi არის მენეჯერი ორივე ტომ Kendall და ჯონ სმიტი. თუმცა, Sue- ს მენეჯერის მონაცემთა ბაზაში არ არის ინფორმაცია, როგორც მისი სვეტში NULL- ის ჩანაწერია .

ახლა ჩვენ შეგვიძლია SQL გამოვიყენოთ მაგიდის შექმნა პერსონალის მონაცემთა ბაზაში. სანამ ამას გავაკეთებთ, მოდით უზრუნველვყოთ, რომ ჩვენ ვართ სწორი მონაცემთა ბაზაში,

გამოყენება პერსონალი

გარდა ამისა, "DATABASE პერსონალი"; ბრძანება იგივე ფუნქციას შეასრულებს. ახლა ჩვენ შეგვიძლია შევხედოთ SQL ბრძანებას გამოყენებული ჩვენი თანამშრომლების მაგიდა:

შექმენით TABLE- ის თანამშრომლები (თანამშრომელი INTEGER არ არის NULL, lastname VARCHAR (25) არ არის NULL, firstname VARCHAR (25) არ არის NULL, reportsto INTEGER NULL);

როგორც ზემოთ მოყვანილი მაგალითის მიხედვით, აღინიშნა, რომ პროგრამირების კონვენცია გულისხმობს, რომ ჩვენ ვიყენებთ ყველა ასოებს SQL საკვანძო სიტყვებისა და ქვემო წერილებისთვის მომხმარებლის სახელწოდების სვეტებისა და ცხრილებისთვის. თავდაპირველი ბრძანება შეიძლება თავდაპირველად ჩანდეს, მაგრამ აქ არის მარტივი სტრუქტურა. აი განზოგადებული ხედვა, რომელიც გარკვეულწილად გასაგებია:

შექმენით TABLE table_name (attribute_name datatype პარამეტრები, ..., attribute_name, datatype პარამეტრები);

ატრიბუტები და მონაცემთა ტიპები

წინა მაგალითში მაგიდა სახელწოდებაა თანამშრომლები და მოიცავს ოთხ ატრიბუტს: თანამშრომლის, გვარი, სახელი და ანგარიშგება. მონაცემთა ბაზა მიუთითებს იმ ტიპის ტიპზე, რომელთა დაცვაც გსურთ თითოეულ სფეროში. თანამშრომელი ID არის მარტივი რიცხვი, ამიტომ ჩვენ ვიყენებთ INTEGER მონაცემთა ბაზის როგორც თანამშრომელი სფეროსა და ანგარიშის სფეროს. დასაქმებულთა სახელები იქნება ცვლადი სიგრძის სიმბოლოები და ჩვენ არ ველოდებით ნებისმიერ თანამშრომელს, რომ გვქონდეს პირველი ან ბოლო სახელი 25 სიმბოლოზე. ამიტომ, ჩვენ ვიყენებთ VARCHAR (25) ტიპის ამ სფეროებში.

NULL ღირებულებები

ჩვენ ასევე შეგვიძლია განვსაზღვროთ NULL ან არა NULL CREATE- ის განცხადების პარამეტრებში. ეს უბრალოდ ეუბნება მონაცემთა ბაზას თუ არა NULL (ან ცარიელი) ღირებულებებს, რომ ამ ატრიბუტზე დაშვებულია მონაცემთა ბაზაში რიგების დამატება. ჩვენს მაგალითში HR დეპარტამენტი მოითხოვს, რომ თითოეული თანამშრომლისთვის ინახება თანამშრომელი ID და სრული სახელი. თუმცა, ყველა თანამშრომელი არ არის მენეჯერი - აღმასრულებელი დირექტორი იუწყება არავის! - ასე რომ, ჩვენ ნება დართეთ NULL მასალა ამ სფეროში. გაითვალისწინეთ, რომ NULL არის ნაგულისხმები მნიშვნელობა და ამ პარამეტრიდან გამომდინარე, ნებაყოფლობითია ნულოვანი მნიშვნელობის ატრიბუტისთვის.

შენობა დარჩენილი მაგიდები

მოდით შევხედოთ ტერიტორიების ცხრილს. ამ მონაცემების სწრაფი გამონაკლისი, როგორც ჩანს, ჩვენ გვჭირდება შენახული მთელი რიცხვი და ორი ცვლადი სიგრძე. ჩვენს წინა მაგალითთან ერთად, ჩვენ არ ველით რეგიონის პირადობის მოწმობას 25-ზე მეტი სიმბოლოთი. თუმცა, ზოგიერთი ჩვენი ტერიტორიის დიდი სახელები გვყავს, ამიტომ ჩვენ გავზრდით ამ სიმბოლოების დასაშვებ სიგრძე 40 სიმბოლოს. მოდით შევხედოთ შესაბამისი SQL:

შექმნა ტერიტორიები (ტერიტორიული INTEGER არ არის NULL, ტერიტორია აღწერა VARCHAR (40) არ არის NULL, რეგიონალური VARCHAR (25) არ არის NULL);

საბოლოოდ, ჩვენ ვიყენებთ თანამშრომელთა ტერიტორიების მაგიდას თანამშრომლებისა და ტერიტორიების ურთიერთობების შესანახად. დეტალური ინფორმაცია თითოეული თანამშრომლისა და ტერიტორიის შესახებ ინახება ჩვენს წინა ორ მაგიდასთან. აქედან გამომდინარე, ჩვენ მხოლოდ უნდა მოვახერხოთ ამ ორი მაგიდის ორი რიცხვითი საიდენტიფიკაციო ნომრები. თუ ამ ინფორმაციის გაფართოების საჭიროება შეგვიძლია გამოვიყენოთ ჩვენი მონაცემების შერჩევის ბრძანებებში შეყვანა, რათა მიიღოთ ინფორმაცია მრავალ მაგიდასთან. მონაცემების შენახვის ეს მეთოდი ამცირებს ჩვენს მონაცემთა ბაზაში და იძლევა სივრცის ოპტიმალურ გამოყენებას ჩვენი შენახვის მოწყობილობებზე. ჩვენ დავფარავთ JOIN ბრძანებას სიღრმისეული მომავალში tutorial. აქ არის SQL კოდი, რომ შევასრულოთ ჩვენი საბოლოო ცხრილი:

შეიქმნას სავარჯიშო შტაბები (თანამშრომლის ინტეგრირება არ არის NULL, ტერიტორიული ინტეგრირება არ არის NULL);

მექანიზმი SQL უზრუნველყოფს შექმნის შემდეგ მონაცემთა ბაზის სტრუქტურის შეცვლას

თუ დღეს განსაკუთრებით თავშეკავებულად ხარ, ალბათ შენიშნა, რომ ჩვენ "შემთხვევით" გამოვყოფთ ერთ-ერთ დიზაინის მოთხოვნას, როდესაც ვატარებთ მონაცემთა ბაზის ცხრილებს. XYZ კორპორაციის HR დირექტორმა მოითხოვა, რომ მონაცემთა ბაზის ტრეკზე თანამშრომელი ხელფასი ინფორმაცია და ჩვენ უგულვებელყოფილია უზრუნველყოს ამ მონაცემთა ბაზაში მაგიდები ჩვენ შევქმენით.

თუმცა, ყველაფერი არ არის დაკარგული. ჩვენ შეგვიძლია გამოვიყენოთ ALTER TABLE ბრძანება, რომ დაამატოთ ეს ატრიბუტი ჩვენს მონაცემთა ბაზაში. ჩვენ გვსურს ხელფასის შენახვა, როგორც მთელი რიცხვი. სინტაქსი საკმაოდ ჰგავს CREATE TABLE ბრძანებას, აქ არის:

გარდა TABLE თანამშრომლების დამატება ხელფასი INTEGER NULL;

გაითვალისწინეთ, რომ ჩვენ მიუთითეთ, რომ NULL მნიშვნელობები დასაშვებია ამ ატრიბუტისთვის. უმეტეს შემთხვევაში, არ არსებობს ვარიანტი, როდესაც სვეტის დამატებაა არსებული ცხრილისთვის. ეს იმის გამო არის, რომ მაგიდა უკვე შეიცავს მწკრივებს, არ შედის ამ ატრიბუტზე. ამიტომ, DBMS ავტომატურად აყენებს NULL ღირებულებას, რათა შეავსოთ ბათილი.

და რომ ჩვენი საძიებო SQL მონაცემთა ბაზაში და მაგიდის შექმნის პროცესში. შეამოწმეთ ხშირად ახალი განყოფილებები ჩვენი SQL ტუტორიუმის სერიაში. თუ გსურთ ელ-ფოსტის შეხსენება, როდესაც ახალი სტატიები დაემატა შესახებ მონაცემთა ბაზების საიტი, დარწმუნებული უნდა იყოს, რომ გამოიწეროთ ჩვენი ბიულეტენი!