SQL პროგრამირების ენა დუმებისთვის. SQL პროგრამირების ენა. არსებული მონაცემთა ბაზების მიმოხილვა

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

SQL (Structured Query Language) – ენათა მონაცემთა ბაზის მენეჯმენტი რელაციური მონაცემთა ბაზებისთვის. SQL თავისთავად არ არის სრულფასოვანი პროგრამირების ენა, მაგრამ მისი სტანდარტი საშუალებას იძლევა შექმნას პროცედურული გაფართოებები, რომლებიც აფართოებენ მის ფუნქციონირებას სრულფასოვან ენობრივ პროგრამირებაზე.

ენა შეიქმნა 1970-იან წლებში სახელწოდებით "SEQUEL" System R მონაცემთა ბაზის მართვის სისტემისთვის (DBMS). მოგვიანებით მას დაარქვეს "SQL" სავაჭრო ნიშნის კონფლიქტების თავიდან ასაცილებლად. 1979 წელს SQL პირველად გამოქვეყნდა, როგორც კომერციული პროდუქტი, Oracle V2.

პირველი ოფიციალური ენის სტანდარტი მიღებულ იქნა ANSI-ს მიერ 1986 წელს და ISO-მ 1987 წელს. მას შემდეგ შეიქმნა სტანდარტის კიდევ რამდენიმე ვერსია, ზოგიერთი მათგანი განმეორდა წინა ვერსიებში მცირე ვარიაციებით, ხოლო ზოგმა შემოიღო ახალი არსებითი ციფრები.

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

SQL შეიქმნა, როგორც მარტივი სტანდარტიზაციის მეთოდი მონაცემთა მოპოვებისა და მართვისთვის, რომლებიც განთავსებულია ურთიერთობით მონაცემთა ბაზაში. მოგვიანებით, ის გახდა უფრო რთული, ნაკლებად გააზრებული და გადაიქცა საცალო ვაჭრობის იარაღად და არა სრულფასოვანი ხელსაწყოების შემქმნელად. ამჟამად, SQL (მნიშვნელოვანია Oracle-ის დანერგვაში) აღარ არის მონაცემთა ბაზის მართვის ყველაზე პოპულარული სისტემა, თუმცა რამდენიმე ალტერნატივა არსებობს.

SQL შედგება ოთხი ნაწილისაგან:

  1. მონაცემთა განმარტება (DDL) გამოიყენება მონაცემთა ბაზის მონაცემთა სტრუქტურების დასადგენად. DDL განცხადებები საშუალებას გაძლევთ შექმნათ, შეცვალოთ და წაშალოთ ობიექტები მონაცემთა ბაზაში. ობიექტების მისაღები ტიპები შეიძლება მოიძებნოს DBMS-ში და შეიძლება შეიცავდეს მონაცემთა ბაზებს, სერვერებს, ცხრილებს და სხვა დამატებით ობიექტებს, მაგალითად, როლებს და ინდექსებს.
  2. მონაცემთა მანიპულირების ენა (DML) გამოიყენება მონაცემთა ბაზიდან მონაცემების ამოსაღებად და შესაცვლელად. DML განცხადებები გაძლევთ საშუალებას მიიღოთ, ჩასვათ, შეცვალოთ და წაშალოთ მონაცემები ცხრილებში. მონაცემთა შეძენის ზოგიერთი ოპერატორი არ განიხილება DML-ის ნაწილად, ამიტომ ისინი არ ცვლიან მონაცემთა მდგომარეობას. ყველა DML განცხადება დეკლარაციული ხასიათისაა.
  3. მონაცემთა წვდომის კონტროლი (DCL) ეფუძნება მონაცემთა წვდომის კონტროლს მონაცემთა ბაზაში. DCL განცხადებები ენიჭება პრივილეგიებს და საშუალებას გაძლევთ ნახოთ და აირჩიოთ უფლებები იგივე DDL და DML განცხადებების მინიჭების მიზნით მონაცემთა ბაზის იმავე ობიექტებზე.
  4. ტრანზაქციის კონტროლი (TCL) გამოიყენება მონაცემთა ბაზაში ტრანზაქციების დამუშავების გასაკონტროლებლად. შექმენით TCL განცხადებები, რომ შეიცავდეს ვალდებულებას ტრანზაქციის დროს განხორციელებული ცვლილებების შესასრულებლად, უკან დაბრუნებას მათ შესასრულებლად და შენახვის წერტილს ტრანზაქციის მცირე ნაწილებად დაყოფისთვის.

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

მიმართვა:

Გამარჯობა მსოფლიო!:

მაგალითი Oracle 10g SQL, Oracle 11g SQL ვერსიებისთვის

რიგი "გამარჯობა, მსოფლიო!" არჩეულია ჩაშენებული ცხრილიდან dual, რომელიც გამოიყენება შეკითხვებისთვის, რომლებიც არ ამოიღებენ იმავე ცხრილს.

აირჩიეთ "გამარჯობა, სამყარო!" ორმაგიდან;

ფაქტორული:

მაგალითი Oracle 10g SQL, Oracle 11g SQL ვერსიებისთვის

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

  • ფსევდო ცხრილის დონე t1 და t2 ფსევდო ცხრილების შესაქმნელად რიცხვების 1-დან 16-მდე გადასატანად,
  • აგრეგატული ფუნქციის ჯამი, რომელიც საშუალებას გაძლევთ შეაჯამოთ სიმრავლის ელემენტები მარყუჟის ცალსახად ჩანაცვლების გარეშე,
  • ხოლო მათემატიკური ფუნქციები ln და exp საშუალებას გაძლევთ შეცვალოთ ჯამი (ფაქტორულის აუცილებელი გამოთვლა) ჯამით (მოცემული SQL-ით).

რიგი „0! = 1” არ შედის რიგების შერჩევაში, შედეგების წაშლაში, რადგან სცადეთ გამოთვალოთ ln(0) სანამ არ გამოირთვება.

ფიბონაჩის რიცხვები:

მაგალითი Oracle 10g SQL, Oracle 11g SQL ვერსიებისთვის

SQL არ უჭერს მხარს მარყუჟებს ან რეკურსიებს და ცხრილის ან მოთხოვნის სხვადასხვა მწკრივში ველების შეერთება არ არის სტანდარტული აგრეგატული ფუნქცია. ეს კონდახი არის Vikorist-ისგან:

  • Bine-ის ფორმულა და მათემატიკური ფუნქციები ROUND, POWER და SQRT n-ე ფიბონაჩის რიცხვის გამოსათვლელად;
  • ფსევდო ცხრილის დონე t1 ფსევდო ცხრილის შესაქმნელად, რომელიც შეიძლება იყოს რიცხვები 1-დან 16-მდე;
  • ფუნქცია SYS_CONNECT_BY_PATH დაინერგა გამოკლებული რიცხვების მოწესრიგებული შეერთებისთვის.

SELECT REPLACE (MAX (SYS_CONNECT_BY_PATH (fib || ", ", "/")), "/", "") || "..." ფიბლისტი FROM ( SELECT n , fib , ROW_NUMBER () OVER (ORDER BY n ) r FROM ( აირჩიეთ n , მრგვალი ((ძალა ((1 + sqrt (5 )) * 0 . 5 , n ) - სიმძლავრე ) ((1 - sqrt (5 )) * 0 . 5 , n )) / sqrt (5 )) fib from (აირჩიეთ დონე n ორმაგი შეერთებიდან დონის მიხედვით<= 16 ) t1 ) t2 ) START WITH r = 1 CONNECT BY PRIOR r = r - 1 ;

Გამარჯობა მსოფლიო!:

მაგალითი Microsoft SQL Server 2005, Microsoft SQL Server 2008 R2, Microsoft SQL Server 2012, MySQL 5, PostgreSQL 8.4, PostgreSQL 9.1, sqlite 3.7.3

აირჩიეთ "გამარჯობა, სამყარო!" ;

ფაქტორული:

მაგალითი Microsoft SQL Server 2005, Microsoft SQL Server 2008 R2, Microsoft SQL Server 2012 ვერსიებისთვის

Vikorist რეკურსიულად ენიჭება ფაქტორიალს, რომელიც განხორციელებულია რეკურსიული განცხადების მეშვეობით. შემდეგ მწკრივს ექნება ორი რიცხვითი ველი - n და n!, ხოლო შემდეგი მწკრივი გამოითვლება წინა რიგის მიხედვით.

თქვენ შეგიძლიათ გამოთვალოთ მთელი რიცხვები 20-მდე! როცა ცდები, ვირაჩუვატიე 21! ამის შემდეგ ჩნდება შეცდომა „არითმეტიკული გადინების შეცდომა“. განმუხტვის ბადე ხელახლა შეივსება.

რეალური რიცხვებისთვის გამოითვლება 100-ის ფაქტორიალი! (ამ მიზნით მე-3 რიგში ბიგინიტის ჩანაცვლება ფლოატით)

ფიბონაჩის რიცხვები:

მაგალითი Microsoft SQL Server 2005, Microsoft SQL Server 2008 R2, Microsoft SQL Server 2012 ვერსიებისთვის

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

ფაქტორული:

მაგალითი Oracle 10g SQL, Oracle 11g SQL ვერსიებისთვის

ეს მაგალითი აჩვენებს მოდელის ოპერატორის გამოყენებას, რომელიც ხელმისაწვდომია Oracle 10g-დან და საშუალებას გაძლევთ დაამუშავოთ რიგები, როგორც მასივის ელემენტები. თითოეული მწკრივი შეიცავს ორ ველს - რიგის ნომერი n და ფაქტორული f.

აირჩიეთ n || "!=" || f factorial ორმაგი მოდელიდან აბრუნებს ყველა მწკრივის განზომილებას (0 d) ზომებით (0 f, 1 n) წესები iterate (17) , n [გამეორების_ნომერი] = გამეორების_ნომერი);

ფიბონაჩის რიცხვები:

მაგალითი Oracle 10g SQL, Oracle 11g SQL ვერსიებისთვის

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

აირჩიეთ მაქსიმ(ები) || ", ..."-დან (აირჩიეთ s ორმაგი მოდელიდან დააბრუნეთ ყველა მწკრივის განზომილება (0 d) ზომებით (cast ( " " როგორც varchar2 (200 )) s , 0 f ) წესები iterate ( 16 ) ( f [ iteration_number ] = გაშიფვრა (გამეორების_რიცხვი, 0, 1, 1, 1, f [იტერაციის_ნომერი - 1] + f [იტერაციის_ნომერი - 2]), s [იტერაციის_ნომერი] = გაშიფვრა (იტერაციის_ნომერი, 0, to_char (f [ გამეორება 1] || ||to_char(f[განმეორების_ნომერი])))));

ფაქტორული:

მაგალითი MySQL 5 ვერსიებისთვის

აირჩიეთ concat (cast (t2 . n როგორც char ), "!= " , cast (exp (sum (log (t1 . n ) ))) როგორც char )) from ( აირჩიეთ @ i : = @ i + 1 AS n from TABLE, (აირჩიეთ @ i: = 0) როგორც sel1 ლიმიტი 16) t1, (აირჩიეთ @ j: = @ j + 1 AS TABLE-ში, (აირჩიეთ @ j: = 0) როგორც sel1 ლიმიტი 16) t2, de t1. ნ<= t2 . n group by t2 . n

ფიბონაჩის რიცხვები:

მაგალითი MySQL 5 ვერსიებისთვის

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

აირჩიეთ concat (group_concat (f გამყოფი ", "), ", ...")-დან (აირჩიეთ @ f: = @ i + @ j როგორც f, @ i: = @ j, @ j: = @ f TABLE-დან, (აირჩიეთ @ i: = 1, @ j: = 0) sel1 ლიმიტი 16) t

Გამარჯობა მსოფლიო!:

მაგალითი Oracle 10g SQL, Oracle 11g SQL ვერსიებისთვის

ამ აპლიკაციას აქვს ანონიმური PL/SQL ბლოკი, რომელიც გამოსცემს სტანდარტულ გამომავალ ნაკადს dbms_output პაკეტის გამოყენებით.

დაიწყეთ dbms_output. put_line ("გამარჯობა, მსოფლიო!"); დასასრული;

ფაქტორული:

მაგალითი Oracle 10g SQL, Oracle 11g SQL ვერსიებისთვის

ეს მაგალითი გვიჩვენებს ფაქტორიალის განმეორებით გაანგარიშებას PL/SQL მეთოდების გამოყენებით.

გამოაცხადეთ n ნომერი: = 0; f ნომერი: = 1; დაიწყება სანამ (n<= 16 ) loop dbms_output . put_line (n || "! = " || f ); n : = n + 1 ; f : = f * n ; end loop ; end ;

ფიბონაჩის რიცხვები:

მაგალითი Oracle 10g SQL, Oracle 11g SQL ვერსიებისთვის

ეს მაგალითი იყენებს ფიბონაჩის რიცხვების განმეორებით მნიშვნელობას. უკვე გამოთვლილი რიცხვები ინახება მონაცემთა სტრუქტურაში varray - მასივის ანალოგი.

დეკლარაციის ტიპის ვექტორი არის რიცხვის varray (16); ფიბ ვექტორი : = ვექტორი(); მე ნომერი; s varchar2(100); დაიწყეთ ფიბ. გაფართოება(16); ფიბ (1): = 1; ფიბ (2): = 1; s:=fib(1) | "," || ფიბ(2) || ","; for i 3 .. 16 loop fib (i): = fib (i - 1) + fib (i - 2); s: = s || ფიბ(ი) || ","; ბოლო მარყუჟი; dbms_output. დააყენა_ხაზები | | "..."); დასასრული;

კვადრატული დონე:

მაგალითი Oracle 10g SQL, Oracle 11g SQL ვერსიებისთვის

ეს მაგალითი შემოწმდა SQL*Plus-ში, TOAD-ში და PL/SQL Developer-ში.

Pure SQL საშუალებას გაძლევთ შეიყვანოთ ცვლილებები პროცესში ცვლილებების სახით. ასეთი ცვლილების სახელის აღსანიშნავად (ამ შემთხვევაში A, B და C), მიჰყევით ამპერსნდს და მის წინ დაუყოვნებლივ, თუ გჭირდებათ ამ ცვლილებაზე გაგზავნა. თუ მოთხოვნა დასრულებულია, მომხმარებელი ჩაანაცვლებს შეკითხვას ყველა იმ ცვლილების შეყვანილი მნიშვნელობით, რომელიც შეყვანილია მოთხოვნაში. კანის გაგზავნის მნიშვნელობის შეყვანის შემდეგ ამ ცვლილებაზე, მნიშვნელობა იცვლება და ემატება შესაბამისი მნიშვნელობა.

ცვლადების მნიშვნელობების შეყვანის მრავალი გზა არსებობს. ამ შემთხვევაში კანზე პირველ შეტყობინებას წინ უსწრებს არა ერთი, არამედ ორმაგი ამპერსანდი &&. ამ გზით, კანის ცვლილების მნიშვნელობები შეიტანება მხოლოდ ერთხელ და მასზე გაგზავნილი ყველა ნაბიჯი შეიცვლება იგივე მნიშვნელობებით (SQL * Plus-ში ერთი ამპერსანტის გამოყენებით, მნიშვნელობები კანის ცვლილებისთვის იმავე ცვლილებაზე ცალკე უნდა შეიყვანოთ). PL/SQL Developer-ს ევალება ამოიღოს ერთი & სიმბოლო ყველა ცვლადისთვის, წინააღმდეგ შემთხვევაში ORA-01008 შეცდომა "არ არის შეკრული ყველა ცვლადი".

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

თავად შეკითხვა შედგება ოთხი განსხვავებული მოთხოვნისაგან. კანი ატრიალებს რიგს, რათა გამოთვლის შედეგი მოათავსოს ერთ-ერთ ფაზაში (A=0, D=0, D>0 და D<0) и ничего — в трех остальных случаях. Результаты всех четырех запросов объединяются, чтобы получить окончательный результат.

შეცვალოს სესიის ნაკრები NLS_NUMERIC_CHARACTERS = "."; აირჩიეთ "არა კვადრატული განტოლება". ans ორმაგიდან, სადაც && A = 0 კავშირი აირჩიეთ "x =" || to_char (-&& B / 2 /& A ) ორმაგში სადაც & A != 0 და & B *& B - 4 *& A *&& C = 0 კავშირი აირჩიეთ "x1 = " || to_char ((-& B + sqrt (& B *& B - 4 *& A *& C )) / 2 /& A ) || ", x2 = "| to_char (-& B - sqrt (& B *& B - 4 *& A *& C )) / 2 /& A ორმაგიდან სადაც & A != 0 და & B *& B - 4 *& A *& C > 0 კავშირი აირჩიეთ "x1 = (" || to_char (-& B / 2 /& A ) || "," || to_char (sqrt (-& B *& B + 4 *& A *& C ) / 2 /& A ) || "), " || "x2 = (" || to_char (-& B / 2 /& A ) || "," || to_char (- sqrt (-& B *& B + 4 *& A *& C ) / 2 /& A ) || ")" ორმაგში სადაც & A != 0 და & B *& B - 4 *& A *& C< 0 ;

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

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

Როგორია?

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

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

Რა შეგიძლია?

ენა sql საშუალებას იძლევა:

  • ცხრილების შექმნა;
  • შეცვალეთ, შეარჩიეთ და შეინახეთ სხვადასხვა მონაცემები;
  • შეაგროვოს ინფორმაცია ბლოკებიდან;
  • ხარკის მოპარვა;
  • შექმენით მოთხოვნა წვდომიდან.

Მნიშვნელოვანი! მას შემდეგ რაც ისწავლეთ sql–დან, შეგიძლიათ დაწეროთ პროგრამები WordPress–ისთვის ნებისმიერი სირთულის.

იაკას სტრუქტურა

მონაცემთა ბაზა შედგება ცხრილისგან, რომლის წარდგენა შესაძლებელია Excel ფაილში.

მას აქვს სახელი, სვეტები და სტრიქონები ინფორმაციით. თქვენ შეგიძლიათ შექმნათ ასეთი ცხრილები დამატებითი sql მოთხოვნების გამოყენებით.

რა უნდა იცოდე?


ძირითადი პუნქტები Sql-ის შესახებ

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

მონაცემთა ბაზის შექმნა "bazaname"

თასებზე ვწერთ მონაცემთა ბაზის სახელს ლათინურად. შეეცადეთ გამოიცნოთ მისთვის გონივრულად. არ შექმნათ ბაზები, როგორიცაა "111" ან "www" ან მსგავსი რამ.

მონაცემთა ბაზის შექმნის შემდეგ დააინსტალირეთ:

სახელების დაყენება 'utf-8'

ეს აუცილებელია იმისათვის, რომ საიტის შინაარსი სწორად იყოს ნაჩვენები.

ახლა ჩვენ ვქმნით ცხრილს:

შექმენით მაგიდა 'bazaname'. "მაგიდა" (

ID INT(8) NOT NULL AUTO_INCREMENT ძირითადი გასაღები,

ჟურნალი VARCHAR(10),

გაივლის VARCHAR(10),

თარიღი DATE

მეორე რიგში დაინიშნა სამი ატრიბუტი. საინტერესოა რას ნიშნავს სუნი:

  • NOT NULL ატრიბუტი ნიშნავს, რომ შუა არ იქნება ცარიელი (ველი საჭიროა შევსებისთვის);
  • მნიშვნელობა AUTO_INCREMENT - ავტომატური შეყვანა;
  • PRIMARY KEY – პირველადი გასაღები.

როგორ დავამატოთ ინფორმაცია

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

ჩასმა "ცხრილში"

(შესვლა, გადასასვლელი, თარიღი) VALUES

('ვასა', '87654321', '2017-06-21 18:38:44');

თაღები მიუთითებს ღუმელების სახელს, ხოლო ფეხი - მნიშვნელობას.

Მნიშვნელოვანი! დაიცავით ნივთების სახელების და მნიშვნელობების თანმიმდევრობა.

როგორ განაახლოთ ინფორმაცია

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

განაახლეთ 'მაგიდა' SET საშვი = '12345678' WHERE id = '1'

ახლა შეცვალეთ პაროლი "12345678". ცვლილებები ემატება რიგს id=1-ით. თუ არ დაწერთ WHERE ბრძანებას, შეიცვლება ყველა სტრიქონი და არა კონკრეტული.

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

Yak vidality ჩანაწერი

თუ რამე არასწორად დაწერეთ, გთხოვთ გამოიყენოთ DELETE დახმარებისთვის. ის მუშაობს ისევე, როგორც UPDATE. ჩვენ ვწერთ შემდეგ კოდს:

წაშლა „ცხრილიდან“ WHERE id = „1“

აირჩიეთ ინფორმაცია

მონაცემთა ბაზიდან მნიშვნელობების მისაღებად გამოიყენეთ SELECT ბრძანება. ჩვენ ვწერთ შემდეგ კოდს:

SELECT * FROM 'table' WHERE id = '1'

რომელი აპლიკაციისთვის აირჩიეთ ცხრილში ყველა ხელმისაწვდომი ველი. ბრძანებაში შესაძლებელია ვარსკვლავის „*“ ჩაწერა. თუ თქვენ გჭირდებათ რაიმე შერჩევის მნიშვნელობის არჩევა, ჩაწერეთ ასე:

აირჩიეთ ჟურნალი, გაიარეთ ცხრილიდან WHERE id = '1'

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


მაგიდის ხედი

ითხოვეთ დახმარება DROP. ამ მიზნით ჩვენ დავწერთ შემდეგ რიგებს:

DROP TABLE მაგიდა;

ჩანაწერი მაგიდიდან მომღერალი გონების უკან

მოდით შევხედოთ ამ კოდს:

აირჩიეთ ID, ქვეყანა, ქალაქი FROM ცხრილიდან WHERE ხალხი>150000000

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

ობედნანია

შეგიძლიათ ცხრილის დაკავშირება ერთდროულად Join-ის გამოყენებით. როგორ შეგიძლიათ აღფრთოვანებულიყავით ამ ვიდეოდან მიღებული მოხსენებით:

PHP და MySQL

კიდევ ერთხელ მინდა ვთქვა, რა უნდა გკითხო ინტერნეტ პროექტის შექმნისას - ის მარჯვნივ არის. PHP დოკუმენტებში მათი გამოსასწორებლად, შექმენით შემდეგი ალგორითმი:

  • გადადით მონაცემთა ბაზაში დამატებითი ბრძანების mysql_connect();
  • mysql_select_db() გამოყენებით ვირჩევთ საჭირო მონაცემთა ბაზას;
  • გთხოვთ ითხოვოთ დახმარება mysql_fetch_array();
  • კავშირი დახურულია mysql_close() ბრძანების გამოყენებით.

Მნიშვნელოვანი! მონაცემთა ბაზის პრაქტიკა ადვილი არ არის. გოლოვნე - სწორად დაწერე.

განვითარებადი ვებოსტატები დაფიქრდებიან ამაზე. და რა უნდა მივიღოთ ამისგან? მე მინდა გირჩიოთ მარტინ გრაბერის წიგნი. SQL უბრალო მოკვდავებისთვის " ისეა დაწერილი, რომ დამწყებებმა ყველაფერი გაიგონ. ვიკორისტი, როგორც ყოველდღიური წიგნი.

ალე ცე თეორია. რაც შეეხება უფლებას პრაქტიკაში? სინამდვილეში, ინტერნეტპროექტი არა მხოლოდ უნდა შეიქმნას, არამედ Google-ისა და Yandex-ის TOP-შიც მიიყვანა. ვის შეუძლია დაგეხმაროთ ვიდეო კურსში? საიტის შექმნა და პოპულარიზაცია ».


ვიდეო ინსტრუქციები

მეტი საჭმელი დაკარგე? უყურეთ ონლაინ ვიდეოს დამატებითი დეტალებისთვის.

ვისნოვოკი

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

Გამარჯობა ყველას! დღეს, რაც შეიძლება მარტივად, განსაკუთრებით დამწყებთათვის, შევეცდები მოგითხროთ მათ შესახებ რა არის SQLდა რისთვის გამოიყენება? ამ მასალისგან თქვენ ასევე შეიტყობთ რა არის მონაცემთა ბაზა, მონაცემთა ბაზის მართვის სისტემა, ასევე SQL ენის დიალექტი და მთელი სტატია ისე იქნება შემუშავებული, რომ შეუფერხებლად მიგიყვანოთ იმის გაგებამდე, თუ რა არის SQL.

ვფიქრობ, თქვენ უკვე ხვდებით, რომ SQL, მთლიანობაში, დაკავშირებულია იქ არსებულ მონაცემთა ბაზებთან, ასე რომ, იმისათვის, რომ უკეთ გავიგოთ რა არის SQL, აუცილებელია გავიგოთ, რატომ არის საჭირო SQL, რატომ არის საჭირო. Დიდი მადლობა.

ახლა მე მოგცემთ მცირე ინფორმაციას, რომელიც ნათლად აგიხსნით SQL-ის მნიშვნელობას და რატომ არის საჭირო.

რა არის მონაცემთა ბაზა?

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

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

რა არის SQL?

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

და აი, უხეში საკვები: როგორ მივაღწიოთ მას და მოვიშოროთ საჭირო ინფორმაცია?

რისთვისაც არის სპეციალური ინსტრუმენტი და აქ გვეხმარება SQL, რომელიც არის ეს ინსტრუმენტი, რომელიც ეხმარება მონაცემთა მანიპულირებას ( შექმნილი, გაყალბებული, ხილული და ა.შ.) მონაცემთა ბაზაში.

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

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

Corysny მასალები თემაზე:

  • Microsoft SQL Server-ით მონაცემთა ბაზის შექმნა - ინსტრუქციები დამწყებთათვის;
  • მონაცემების დამატება Microsoft SQL Server მაგიდაზე – INSERT INTO განცხადება.

რა არის DBMS?

შეიძლება გაინტერესებთ, შეიცავს თუ არა მონაცემთა ბაზა ისეთ ინფორმაციას, რომელიც ინახება ცხრილებში, როგორ გამოიყურება იგი ფიზიკურად? როგორ შეიძლება გაოცდეს მისი რუჯი?

მოკლედ, ეს არის მხოლოდ შემოქმედების ფაილი სპეციალურ ფორმატში, რომელიც ზუსტად ასე გამოიყურება მონაცემთა ბაზაში ( უმეტეს შემთხვევაში, მონაცემთა ბაზა მოიცავს უამრავ ფაილს, მაგრამ ამავე დროს ეს არც ისე მნიშვნელოვანია).

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

ასეთი ინსტრუმენტი არის ზუსტად DBMS არის მონაცემთა ბაზის მართვის სისტემამოკლედ DBMS

ისევე როგორც DBMS-ები ყვავის

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

ამ სისტემებს შორის, მათი შესაძლებლობებისა და პოპულარობის გამო, შეგიძლიათ იხილოთ შემდეგი სისტემები:

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

Corysny მასალები თემაზე:

  • Microsoft SQL Server 2016 Express-ის ინსტალაცია – Microsoft SQL Server-ის უფასო გამოცემის Windows-ზე დაყენების მაგალითი;
  • Microsoft SQL Server 2017 Express-ის ინსტალაცია Ubuntu Server-ზე - Microsoft SQL Server-ის უფასო გამოცემის Linux-ზე დაყენების მაგალითი;
  • PostgreSQL 11-ის დაყენება Windows-ზე – Windows-ზე PostgreSQL-ის დაყენების მაგალითი;
  • Windows-ზე MySQL-ის ინსტალაცია – Windows-ზე MySQL-ის დაყენების მაგალითი;
  • MySQL-ის ინსტალაცია და კონფიგურაცია Linux Mint-ზე - MySQL-ის ინსტალაციის მაგალითი Linux-ზე;
  • Oracle Database Express Edition 11g-ის ინსტალაცია - Oracle-ის უფასო გამოცემის Windows-ზე დაყენების მაგალითი ( სტატია დიდი ხნის წინ დაიწერა, მაგრამ ყველაფერი იგივე იქნება).

ენის დიალექტები SQL (SQL გაფართოება)

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

SQL ენის დიალექტის ღერძი:

  • Transact-SQL(შემოკლებით T-SQL) – vikorist Microsoft SQL Server-დან;
  • PL/SQL(პროცედურული ენა / სტრუქტურირებული შეკითხვის ენა) - ვიკორიზებული Oracle Database-ში;
  • PL/pgSQL(პროცედურული ენა/PostGres სტრუქტურირებული შეკითხვის ენა) – ვიკორიზებული PostgreSQL-ში.

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

აირჩიეთ ProductId, ProductName FROM Products

სიგიჟეა, რომ ყველა DBMS მუშაობს ერთნაირად, თუნდაც SQL არის სტანდარტი.

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

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

მაგალითად, მე განსაკუთრებით სპეციალიზირებული ვარ T-SQL ენაზე და, ცხადია, ვმუშაობ Microsoft SQL Server-ით, რომელიც უკვე 8 წელზე მეტია!

თუმცა, რა თქმა უნდა, სხვა DBMS-ებთანაც ვმუშაობდი, ერთი საათი გავატარე ორი პროგრამა, რომელთაგან ერთი მუშაობდა PostgreSQL-ით, მეორე კი, რა თქმა უნდა, Microsoft SQL Server-ით.

გამოვიყენე MySQL, ისევე როგორც უამრავი ადამიანი, მხარდამჭერი საიტებისა და სერვისების ფარგლებში. მე მქონდა შესაძლებლობა მემუშავა Oracle Database-თან სხვა პროექტების ფარგლებში.

მე დავაჯგუფე მთელი ჩემი დაგროვილი ცოდნა ზოგიერთი T-SQL ენის შესახებ ერთ ადგილზე და მოვაწყე წიგნების სახით. თუ გაინტერესებს Transact-SQL (T-SQL) სწავლა, გირჩევთ წაიკითხოთ ჩემი წიგნები:

  • T-SQL პროგრამისტის გზა – თვითმმართველი Transact-SQL დამწყებთათვის. მასთან ერთად ვაძლევ დეტალურ ანგარიშს თაგვის ყველა კონსტრუქციის შესახებ და თანდათან გადავდივარ მარტივიდან დასაკეცზე. ვარგისია ყოვლისმომცველი T-SQL ენის სწავლებისთვის;
  • T-SQL პროგრამირების სტილი - კოდის სწორი ჩაწერის საფუძველი. წიგნი ეფუძნება T-SQL კოდის განვითარებას ( მათთვის, ვინც იცის ჩემი T-SQL, მაშინ. ვიცი, რომ საფუძვლები მინდა).

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

ძირითადი SQL ბრძანებები, რომლებიც შეიძლება იცოდეს პროგრამისტმა

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

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

აპლიკაციებისთვის მონაცემთა ბაზის დაყენება

შექმენით ბაზა რობოტის ბრძანებების დემონსტრირებისთვის. ამისათვის თქვენ უნდა დაამატოთ ორი ფაილი: DLL.sql და InsertStatements.sql. ამის შემდეგ გახსენით ტერმინალი და გადადით MySQL კონსოლზე შემდეგი ბრძანებისთვის (სტატიაში ნათქვამია, რომ MySQL უკვე დაინსტალირებულია სისტემაში):

Mysql -u root -p

შემდეგ შეიყვანეთ თქვენი პაროლი.

Vikonite ბრძანება ქვემოთ. მოდით ვუწოდოთ მონაცემთა ბაზას "უნივერსიტეტი":

CREATE DATABASE უნივერსიტეტი; USE უნივერსიტეტი; წყარო ; წყარო

ბრძანებები რობოტებისთვის მონაცემთა ბაზებით

1. არსებული მონაცემთა ბაზების მიმოხილვა

მონაცემთა ბაზების ჩვენება;

2. ახალი მონაცემთა ბაზის შექმნა

მონაცემთა ბაზის შექმნა;

3. აირჩიეთ მონაცემთა ბაზა ვიკისტანისთვის

გამოყენება ;

4. SQL ბრძანებების იმპორტი .sql ფაილიდან

წყარო ;

5. Vidalennya bazi danikh

ჩამოაგდეს მონაცემთა ბაზა ;

მაგიდებთან მუშაობა

6. ბაზიდან ხელმისაწვდომი ცხრილის მიმოხილვა

ცხრილების ჩვენება;

7. ახალი ცხრილის შექმნა

მაგიდის შექმნა ( , , ᲛᲗᲐᲕᲐᲠᲘ ᲒᲐᲡᲐᲦᲔᲑᲘ ( ), ᲣᲪᲮᲝᲣᲠᲘ ᲒᲐᲡᲐᲦᲔᲑᲘ ( ) ლიტერატურა ());

მთლიანობის გაცვლა ვიკორისტანის საათზე. მაგიდის შექმნა

შეიძლება დაგჭირდეთ მაგიდასთან სასიმღერო პოზიციების მოწყობა. ცხრილის შექმნისას შეგიძლიათ დააყენოთ შემდეგი გამოთვლები:

  • ცხრილის შუას არ შეიძლება ჰქონდეს NULL მნიშვნელობა;
  • პირველადი გასაღები - PRIMARY KEY (col_name1, col_name2, ...);
  • უცხო გასაღები - FOREIGN KEY (col_namex1, …, col_namexn) REFERENCES ცხრილის_სახელი (col_namex1, …, col_namexn) .

შეგიძლიათ დააინსტალიროთ ერთზე მეტი ძირითადი გასაღები. ამ ადგილას ნახავთ საწყობის ძირითად გასაღებს.

კონდახი

შექმენით ცხრილი "ინსტრუქტორი":

CREATE TABLE ინსტრუქტორი (ID CHAR(5), სახელი VARCHAR(20) NOT NULL, dept_name VARCHAR(20), ხელფასი NUMERIC(8,2), PRIMARY KEY (ID), FOREIGN KEY (dept_name) REFERENCES Department(dept_name));

8. შეხედულებები ცხრილის შესახებ

შეგიძლიათ ნახოთ სხვადასხვა ხედები (მნიშვნელობის ტიპი, გასაღებების ჩათვლით) ცხრილის დამატებით შემდეგი ბრძანების გამოყენებით:

აღწერე ;

9. ცხრილის მონაცემების დამატება

ᲩᲐᲓᲔᲗ (, , , ...) ღირებულებები ( , , , …);

ცხრილის კანის განყოფილებაში მონაცემების დამატებისას არ არის საჭირო საგნების სახელების მითითება.

ᲩᲐᲓᲔᲗ ღირებულებები ( , , , …);

10. ცხრილის მონაცემების განახლება

განახლება SET = , = , ... სად ;

11. ცხრილიდან ყველა მონაცემის ნახვა

წაშლა FROM-დან ;

12. მაგიდის ხედი

ჩამოაგდეს მაგიდა ;

ბრძანებები მოთხოვნების შესაქმნელად

13. აირჩიეთ

SELECT გამოიყენება სიმღერების ცხრილიდან მონაცემების მოსაშორებლად:

აირჩიეთ , , … დან ;

შეურაცხმყოფელი ბრძანების გამოყენებით შეგიძლიათ აჩვენოთ ყველა მონაცემი ცხრილიდან:

აირჩიეთ * FROM ;

14. SELECT DISTINCT

ცხრილის სვეტები შეიძლება შეიცავდეს მონაცემებს, რომლებიც მეორდება. გამოიყენეთ SELECT DISTINCT უნიკალური მონაცემების შესარჩევად.

აირჩიეთ განსხვავებული , , … დან ;

15. სად

თქვენ შეგიძლიათ გამოიყენოთ WHERE საკვანძო სიტყვა SELECT-ში, რათა დაამატოთ სიტყვები შეკითხვაზე:

აირჩიეთ , , … დან სად ;

კითხვისას შეგიძლიათ დაუსვათ შემდეგი კითხვები:

  • ტექსტთან გათანაბრება;
  • რიცხვითი სიდიდეების გათანაბრება;
  • ლოგიკური ოპერაციები AND (i), OR (ან) და NOT (გადაკვეთა).

კონდახი

სცადეთ ამ ბრძანებების გამოსვლა. გონებისადმი პატივისცემის აღსადგენად დააყენეთ WHERE:

SELECT * FROM კურსიდან WHERE dept_name='შედ. მეცნიერ.'; SELECT * FROM კურსიდან WHERE კრედიტები>3; SELECT * FROM კურსიდან WHERE dept_name="Comp. Sci." და კრედიტები>3;

16. ჯგუფი BY

GROUP BY ოპერატორი ხშირად გამოიყენება აგრეგატული ფუნქციებით, როგორიცაა COUNT, MAX, MIN, SUM და AVG გამომავალი მნიშვნელობების დასაჯგუფებლად.

აირჩიეთ , , … დან ᲘᲗ ᲓᲐᲯᲒᲣᲤᲔᲑᲐ ;

კონდახი

ჩვენ ვხედავთ უამრავ კურსს კანის განყოფილებისთვის:

SELECT COUNT(course_id), dept_name FROM კურსის ჯგუფიდან dept_name;

17. ქონა

HAVING საკვანძო სიტყვა დაემატა SQL-ს ისე, რომ WHERE არ იყოს გამოყენებული აგრეგატულ ფუნქციებთან მუშაობისთვის.

აირჩიეთ , , ... FROM ᲘᲗ ᲓᲐᲯᲒᲣᲤᲔᲑᲐ ქონა

კონდახი

აქ არის ფაკულტეტების სია, რომლებიც გვთავაზობენ ერთზე მეტ კურსს:

SELECT COUNT(course_id), dept_name FROM course GROUP BY dept_name HAVING COUNT(course_id)>1;

18. შეკვეთა

ORDER BY გამოიყენება შედეგების დასალაგებლად შემცირებიდან ან გაზრდიდან. ORDER BY ახარისხებს კატეგორიების მიხედვით, თუ არ არის მითითებული დახარისხების მეთოდი ASC ან DESC.

აირჩიეთ , , … დან შეკვეთა , , ...ASC | DESC;

კონდახი

წარმოგიდგენთ ვალუტის კურსების ჩამონათვალს სესხების რაოდენობის ზრდისა და ცვლილებისთვის:

აირჩიეთ * კურსიდან შეკვეთა კრედიტების მიხედვით; SELECT * FROM კურსიდან ORDER BY კრედიტების მიხედვით DESC;

19. შორის

BETWEEN გამოიყენება არჩეული ინტერვალიდან მონაცემების მნიშვნელობის შესარჩევად. შეიძლება იყოს რიცხვითი და ტექსტური მნიშვნელობები, ასევე თარიღები.

აირჩიეთ , , … დან სად ᲨᲝᲠᲘᲡ და ;

კონდახი

აქ არის ინსტრუქტორების სია, რომელთა ხელფასი 50 000-ზე მეტია, ან 100 000-ზე ნაკლები:

აირჩიეთ * ინსტრუქტორისგან, სადაც ხელფასი 50000-დან 100000-მდე;

20. LIKE

LIKE ოპერატორი გამოიყენება WHERE-ში მსგავსი მნიშვნელობის ნიმუშის ჩასართავად.

არსებობს ორი განსხვავებული ოპერატორი, რომელიც შეიძლება გამოყენებულ იქნას LIKE-ში:

  • % (joden, ერთი ან ბევრი სიმბოლო);
  • _ (ერთი პერსონაჟი).
აირჩიეთ , , … დან სად LIKE ;

კონდახი

ჩვენ ვაჩვენებთ კურსების ჩამონათვალს, რომელთა სახელები მოიცავს "to" და კურსების სიას, რომელთა სახელები იწყება "CS-"-ით:

აირჩიეთ * კურსიდან WHERE სათაური LIKE '%to%'; SELECT * FROM კურსიდან WHERE course_id LIKE "CS-___";

21. IN

დამატებითი IN-ის შემდეგ, შეგიძლიათ მიუთითოთ მნიშვნელობა WHERE ოპერატორისთვის:

აირჩიეთ , , … დან სად IN ( , , …);

კონდახი

ჩვენ ვაჩვენებთ სტუდენტების სიას პირდაპირ კომპ. მეცნიერება, ფიზიკა და ელექ. ინჟ.:

SELECT * FROM student WHERE dept_name IN('Comp. Sci.', 'Physics', 'Elec. Eng.');

22. შეუერთდი

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

აირჩიეთ , , … დან შეუერთდი ჩართულია = ;

კონდახი 1

აქ არის ყველა კურსის სია და დამატებითი ინფორმაცია ფაკულტეტების შესახებ:

აირჩიეთ * კურსიდან შეუერთდით განყოფილებას course.dept_name=department.dept_name;

კონდახი 2

აქ არის ყველა არსებული სავალდებულო კურსის სია და მათ შესახებ დეტალები:

SELECT prereq.course_id, title, dept_name, credits, prereq_id FROM prereq LEFT OUTER JOIN კურსი ON prereq.course_id=course.course_id;

კონდახი 3

ჩვენ ვაჩვენებთ ყველა კურსის ჩამონათვალს, მიუხედავად იმისა, სავალდებულოა თუ არა:

SELECT course.course_id, title, dept_name, credits, prereq_id FROM prereq RIGHT OUTER JOIN კურსი ON prereq.course_id=course.course_id;

23. ხედი

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

კარიბჭე

ხედის შექმნა AS SELECT , , … დან სად ;

ვილუჩენნია

DROP VIEW ;

კონდახი

შექმენით ხედი, რომელიც შედგება კურსებისგან 3 კრედიტით:

24. აგრეგატული ფუნქციები

ეს ფუნქციები გამოიყენება საერთო შედეგის დასადგენად, რომელიც დაკავშირებულია განხილულ მონაცემებთან. შემდეგი არის ძირითადი გაერთიანებული ფუნქციები:

  • COUNT (col_name) – ატრიალებს რიგი მწკრივების რაოდენობას;
  • SUM (col_name) - აბრუნებს ამ სვეტის ჯამის მნიშვნელობას;
  • AVG (col_name) – აბრუნებს ამ სვეტის შუა მნიშვნელობას;
  • MIN (col_name) – აბრუნებს მოცემული სვეტის ყველაზე დაბალ მნიშვნელობას;
  • MAX (col_name) – აბრუნებს მოცემული სვეტის ყველაზე დიდ მნიშვნელობას.

25. ინვესტიციები

Subquery nesting არის SQL მოთხოვნა, რომელიც მოიცავს SELECT , FROM და WHERE პუნქტებს, რომლებიც ჩასმულია სხვა მოთხოვნაში.

კონდახი

გავიგოთ, რა მოხდა 2009 წლის გაზაფხულზე და 2010 წლის გაზაფხულზე:

SELECT DISTINCT course_id FROM semester WHERE semester = 'Fall' AND year= 2009 AND course_id IN (SELECT course_id FROM section WHERE semester = 'Spring' AND year= 2010);

Merriam-Webster's ონლაინ ლექსიკონი მონაცემთა ბაზაიაკ მონაცემთა დიდი კოლექცია, სპეციალური წოდების მქონე ორგანიზაციებისთვის შვედკოგოს დაცვაі ხარკის კრებული(მაგალითად, კომპიუტერის გამოყენებით).

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

მონაცემთა დაზოგვის სხვადასხვა სახის პრობლემების მრავალი რისკის გამო, შეიქმნა მრავალი DBMS.

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

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

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

მონაცემთა ბაზა სასაზღვრო სტრუქტურით

მერეჟევის მოდელია ინდიკატორების შეყვანა მონაცემთა ბაზებში - ჩანაწერებში და სხვა ჩანაწერების გაგზავნა. ამ გზით თქვენ შეგიძლიათ შეინახოთ ჩანაწერი კანის ტეგისთვის. კოჟენ დეპუტატმა მრავალი საათი დახარჯა ჩვენთან მდიდარი გარიგების დასადებად. მონაცემები ისეა დალაგებული, რომ ანგარიშის მენეჯერის ჩანაწერი შეესაბამებოდეს ზუსტად ერთ ტრანზაქციის ჩანაწერს. თითოეული ხელშეკრულების ჩანაწერი შეიცავს მონაცემებს ამ კონკრეტული კონტრაქტიდან, ასევე სხვა კონტრაქტის ჩანაწერის ინდიკატორს. ვალუტის გადამყვანის გარდა, რომელსაც ადრე განვიხილეთ, ჩვენ შეგვიძლია შევქმნათ სტრუქტურა, რომელიც დაახლოებით ასე გამოიყურება (ნახ. 1):

Პატარა 1. ვალუტის გადამყვანების ჩანაწერების სტრუქტურა

საჭირო იქნება მონაცემები და ქსოვის შედეგები (ვარსკვლავები და მოდელების სახელები – merezhnaya) სია mov-ისთვის (ნახ. 2):

Პატარა 2. ქსოვის სია

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

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

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

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

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

იერარქიული მონაცემთა ბაზის მოდელი

მაგალითად, 1960-იანი წლების ბოლოს, IBM-მა მიიღო IMS DBMS, როგორც იერარქიული მონაცემთა ბაზის მოდელი. ამ მოდელში ჯგუფების განმეორების პრობლემა წარმოიშვა იმის გამო, რომ ზოგიერთი ჩანაწერი გაერთიანებულია ბევრ სხვასთან.

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

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

რელატიური მონაცემთა ბაზის მოდელი

დიდი გარღვევა მონაცემთა ბაზის მართვის სისტემების თეორიის განვითარებაში მოხდა 1970 წელს, როდესაც წიგნი გამოიცა. F. Codd (E. F. Codd) “A Relational Model of Data for Large Shared Data Banks”), განყოფილება. ცე პოსილანნია. ამ მართლაც რევოლუციურ პროცესში დაინერგა ნოტების კონცეფცია და ნაჩვენები იყო, თუ როგორ გამოვიყენოთ ცხრილები ფაქტების წარმოსაჩენად, როგორ დავაყენოთ შენიშვნები „რეალური სამყაროს“ ობიექტებთან და, შესაბამისად, დაზოგოთ მათ შესახებ.

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

რელაციური მონაცემთა ბაზის მართვის სისტემა განისაზღვრება წესების ნაკრებით. უპირველეს ყოვლისა, ცხრილის ჩანაწერს ეწოდება "Tuple" და თავად ეს ტერმინი განხილულია PostgreSQL-ის ზოგიერთ დოკუმენტაციაში. ტუპლი არის კომპონენტების (ან ატრიბუტების) მოწესრიგებული ჯგუფი, რომელიც მიეკუთვნება კონკრეტულ ტიპს. ყველა ტუპლი მიჰყვება ერთსა და იმავე შაბლონს, მაგრამ ყველა მათგანს აქვს ერთი და იგივე ტიპის კომპონენტების იგივე რაოდენობა. მოდით შევხედოთ ტოპების კომპლექტს:

("საფრანგეთი", "FRF", 6.56) ("ბელგია", "BEF", 40.1)

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

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

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

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

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

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

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

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

SQL მოთხოვნების ფილმები და სხვა

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

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

QUEL ენის მოთხოვნების ერთ-ერთი პირველი განხორციელება დაფუძნებული იყო 1970-იანი წლებიდან ინგრესის მონაცემთა ბაზის შექმნაზე. სხვა ენა ითხოვს სხვა მეთოდს, სახელწოდებით QBE (Query By Example - ჩაიცვი კონდახით). დაახლოებით ამავე დროს, IBM კვლევით ცენტრში მომუშავე ჯგუფმა შეიმუშავა ენა SQL-ში სტრუქტურირებული შეკითხვებისთვის (Structured Query Language), რომელსაც ეწოდება "გაგრძელება".

SQL-ცე სტანდარტული ენამისი მნიშვნელობის ყველაზე ფართო გაფართოებაა ISO/IEC 9075:1992 სტანდარტი, „ინფორმაციული ტექნოლოგია - მონაცემთა ბაზის ენები - SQL“ (ან, უფრო მარტივად, SQL92), ANSI X3.135-1992-ის ამერიკული ანალოგი, რომელიც განსხვავდება პირველი რამდენიმე ტორინკის გარსით. ამ სტანდარტებმა შეცვალა ადრე არსებული SQL89. სინამდვილეში, არსებობს უფრო ახალი სტანდარტი, SQL99, მაგრამ ის ჯერ არ არის გაფართოებული და SQL ბირთვი ჯერ არ განახლებულა.

არსებობს SQL92-ის სამი დონე: Entry SQL, Intermediate SQL და Full SQL. ყველაზე გავრცელებული არის "Entry" იარუსი და PostgreSQL კი ახლოსაა ამ ტიპთან, თუმცა მცირე ტევადობით. დეველოპერები დაკავებულნი არიან მცირე შეცდომების გამოსწორებით და PostgreSQL-ის ახალი ვერსიით ყველაფერი უახლოვდება სტანდარტს.

Movi SQL-ს აქვს სამი ტიპის ბრძანება:

  • მონაცემთა მანიპულირების ენა (DML)- მონაცემთა ენობრივი მანიპულირება. SQL-ის ეს ნაწილი 90% შემთხვევაში გამარჯვებულია. იგი შედგება ბრძანებებისაგან დამატება, წაშლა, განახლება და, რაც მთავარია, მონაცემთა ბაზიდან არჩევა.
  • მონაცემთა განმარტების ენა (DDL)- ხარკის ენა. ეს ბრძანებები გამოიყენება ცხრილის შესაქმნელად და მონაცემთა ბაზის სხვა ასპექტების სამართავად, რომლებიც სტრუქტურირებულია, ძირითადად, მათ წინაშე არსებული მონაცემებით.
  • მონაცემთა კონტროლის ენა (DCL)- ენის მონაცემთა მართვა

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

SQL

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

თუმცა, ბაზრის ზეწოლის ქვეშ, მონაცემთა ბაზის დეველოპერები იბრძვიან შექმნან პროდუქტები, რომლებიც განსხვავდება ერთი ტიპისგან. ასე გამოჩნდა მთელი რიგი SQL დიალექტები, რომლებიც მალავდნენ მათ სტანდარტში, რომელიც აღწერს ენას, მაგრამ არ არის მინიჭებული ბრძანებები დიდი რაოდენობით ადმინისტრაციული მონაცემთა ბაზის ამოცანებისთვის, რაც აუცილებელი და თუნდაც მნიშვნელოვანი საწყობია ვიკორისტანის ბაზებისთვის რეალურ სამყაროში. . აქედან გამომდინარე, არსებობს სხვაობა Oracle-ის, SQL Server-ისა და PostgreSQL-ის მიერ მიღებულ (მაგალითად) SQL დიალექტებს შორის.

SQL აღწერილი იქნება მთელ ამ წიგნში, მაგრამ ჩვენ შემოგთავაზებთ რამდენიმე მაგალითს იმის საჩვენებლად, თუ როგორ არის ის მსგავსი. გამოდის, რომ SQL-თან მუშაობის დასაწყებად, სულაც არ არის საჭირო ფორმალური წესების დაცვა.

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

CREATE TABLE ელემენტი (item_id serial, აღწერა char(64) not null, cost_price numeric(7,2), sale_price numeric(7,2));

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

ახლა ჩვენ გამოვიყენებთ SQL საგულდაგულოდ შექმნილი ცხრილის შესავსებად. ვისაც დასაკეცი არაფერი აქვს:

INSERT INTO item(description, cost_price, sale_price) მნიშვნელობები ("Fan Small", 9.23, 15.75); INSERT INTO item (აღწერილობა, ღირებულება_ფასი, გაყიდვის_ფასი) მნიშვნელობები ("დიდი გულშემატკივარი", 13.36, 19.95); INSERT INTO item (აღწერილობა, ღირებულება_ფასი, გაყიდვის_ფასი) მნიშვნელობები ("კბილის ჯაგრისი", 0.75, 1.45);

SQL-ის საფუძველია SELECT განცხადება. იგი წყვეტს შედეგად მიღებული სიმრავლეების შექმნას - ჩანაწერების ჯგუფებს (და ჩანაწერის ატრიბუტებს), რომლებიც აკმაყოფილებენ გარკვეულ კრიტერიუმს. ეს კრიტერიუმები შეიძლება გაფართოვდეს. შედეგად გამრავლება შეიძლება შეირჩეს სამიზნე ობიექტებად UPDATE განცხადების მიერ განხორციელებული ცვლილებებისთვის, ან DELETE-ით დასასრულებლად.

SELECT განცხადების კონდახების ღერძი:

SELECT * მომხმარებლისგან, orderinfo WHERE orderinfo.customer_id = customer.customer_id GROUP BY customer_id SELECT customer.title, customer.fname, customer.lname, COUNT(orderinfo.orderinfo_id) AS "შეკვეთების რაოდენობა" = orderinfo.customer_id ჯგუფი მომხმარებლის მიხედვით. სათაური, კლიენტი.fname, customer.lname

ეს SELECT განცხადებები მოიცავს ყველა კლიენტის პრეტენზიას დადგენილი წესით და მოიცავს თითოეული კლიენტის მიერ წარმოდგენილ პრეტენზიების დიდ რაოდენობას.

მაგალითად, PostgreSQL მონაცემთა ბაზა გთავაზობთ მონაცემებზე წვდომის უამრავ გზას, აქ შეგიძლიათ:

  • Vikoristovat კონსოლის პროგრამა vikonannya SQL განცხადებებისთვის
  • დაუყოვნებლივ დააინსტალირეთ SQL დანამატებში
  • Vikorize API (აპლიკაციის პროგრამირების ინტერფეისები) ფუნქციონირებს SQL განცხადებების მოსამზადებლად და რედაქტირებისთვის, შედეგების გადახედვისა და სხვადასხვა პროგრამირების სისტემის მონაცემების განახლებისთვის.
  • განახორციელეთ შუამავალი წვდომა PostgreSQL მონაცემთა ბაზის მონაცემებზე ODBC (Open Database Connection) ან JDBC (Java Database Connectivity) დრაივერის ან სტანდარტული ბიბლიოთეკის, როგორიცაა DBI მონაცემთა ბაზებისთვის. vi Perl

მონაცემთა ბაზის მართვის სისტემები

DBMSროგორც ადრე ითქვა, - პროგრამების აკრეფით შეგიძლიათ მოძებნოთ მონაცემთა ბაზები და ვიკი. DBMS მოთხოვნები მოიცავს:

  • მონაცემთა ბაზის შექმნა.თითოეული სისტემა შეიცავს ერთ დიდ ფაილს და ქმნის ერთ ან რამდენიმე მონაცემთა ბაზას შუაში, სხვებს შეუძლიათ იმუშაონ ოპერაციული სისტემის რამდენიმე ფაილთან ან უშუალოდ განახორციელონ დაბალი დონის წვდომა დისკის დანაყოფებზე. კომპანიები და დეველოპერები არ არიან დამნაშავეები ასეთი ფაილების დაბალი დონის სტრუქტურაში, რადგან ყველა საჭირო წვდომას უზრუნველყოფს DBMS.
  • შეძენისა და განახლებისთვის საშუალებების უზრუნველყოფა. DBMS უნდა უზრუნველყოს მონაცემების მოძიების შესაძლებლობა, რომელიც აკმაყოფილებს გარკვეულ კრიტერიუმებს, მაგალითად, მოცემული კლიენტის მიერ მიღებული ყველა შეკვეთის არჩევის შესაძლებლობას, რომელიც ჯერ არ არის მიწოდებული. მას შემდეგ, რაც SQL უფრო ფართოდ გავრცელდა, როგორც სტანდარტული ენა, ასეთი მოთხოვნების გამოხატვის გზა შეიცვალა სისტემიდან სისტემაში.
  • უამრავი პრობლემა.თუ მონაცემთა ბაზა შეიცავს უამრავ დანამატს, ან ის იძლევა ერთდროულად რამდენიმე კლიენტზე წვდომის საშუალებას, მაშინ DBMS უნდა უზრუნველყოს, რომ თითოეული კლიენტისთვის მონაცემთა დამუშავება არ შეუშლის ხელს სხვების მუშაობას. შემდეგ, მომხმარებლებმა უნდა შეამოწმონ მხოლოდ მაშინ, როდესაც ვინმე სხვა წერს მონაცემებს, როდესაც მათ უნდა წაიკითხონ (ან ჩაწერონ) მონაცემები ელემენტზე. ამავდროულად, შეგიძლიათ დაიწყოთ ზოგიერთი მონაცემის წაკითხვა. მიმოხილვა ცხადყოფს, რომ მონაცემთა სხვადასხვა ბაზა მხარს უჭერს ამოცანების სიმდიდრის სხვადასხვა დონეს და რომ ამ დონეების კორექტირება შესაძლებელია.
  • შეინახეთ დღიური. DBMS-ს შეუძლია შეინახოს მონაცემთა ყველა ცვლილების ჟურნალი მიმდინარე პერიოდისთვის. თქვენ შეგიძლიათ გამოიყენოთ იგი მონაცემთა განახლებისთვის და ასევე (შესაძლოა, უფრო მნიშვნელოვანი) მონაცემთა განახლებისთვის სისტემის უკმარისობის შემთხვევაში, მაგალითად, დაგეგმილი ტექნიკური მომსახურება. დარწმუნდით, რომ შენახულია მონაცემთა სარეზერვო ასლი და შენახულია ტრანზაქციის ჟურნალი, რათა სარეზერვო ასლი იყოს გამოყენებული მონაცემთა ბაზის განახლებისთვის დისკის დაზიანების შემთხვევაში.
  • მონაცემთა საფუძვლების დაცვა. DBMS უნდა უზრუნველყოფდეს წვდომის კონტროლს ისე, რომ მხოლოდ დარეგისტრირებულ მომხმარებლებს შეეძლოთ მანიპულირება მონაცემთა ბაზაში შენახული მონაცემებით და მონაცემთა ბაზის სტრუქტურით (ატრიბუტები, ცხრილები და ინდექსები). მაშასადამე, კანის ბაზისთვის არსებობს კოსმეტოლოგთა იერარქია, რომელ სტრუქტურაზე არის „სუპერ სკრაბერი“, რომელსაც შეუძლია შეცვალოს ყველაფერი ნებისმიერ დროს, შემდეგ მიდის კოსმეტოლოგებთან, რომლებსაც შეუძლიათ მონაცემების დამატება და წაშლა და ბოლოში. არიან ისინი, ვისაც მხოლოდ კითხვის უფლება აქვთ. DBMS პასუხისმგებელია მონაცემების დამატებისა და წაშლის დაშვებაზე, ასევე იმის დაზუსტებაზე, თუ რამდენ მონაცემთა ბაზებს შეუძლიათ უარი თქვან წვდომაზე.
  • მთლიანობის წახალისება იგზავნება.სინამდვილეში, DBMS-ებს აქვთ მონაცემთა მთლიანობისა და სისწორის დაცვა. როგორც წესი, თუ განახლება არღვევს რელაციური მოდელის წესებს, DBMS აჩვენებს შეტყობინებას განახლების შესახებ.