КампутарыПраграмаванне

Каманды SQL-запытаў

SQL - адзін з самых распаўсюджаных моў праграмавання, для стварэння і кіравання базай дадзеных, а таксама для правядзення разнастайных дзеянняў з самімі дадзенымі.

Як паказвае практыка, ён даволі просты ў засваенні і максімальна выкарыстоўвае стандартную лексіку англійскай мовы. Як і любы іншы мова праграмавання, SQL мае ўласную логіку і сінтаксіс, набор асноўных каманд і правілы іх выкарыстання.

Класіфікацыя каманд мовы SQL

Усе стандартныя каманды SQL можна разглядаць зыходзячы з іх прызначэння. Як аснову внегласной класіфікацыі можна ўзяць такія наборы, як:

  1. Каманды для пабудовы запытаў.

  2. Каманды ўбудаваных працэдур і функцый.

  3. Каманды трыгераў і сістэмных табліц.

  4. Наборы камбінацый для працы з датай і радковымі зменнымі.

  5. Каманды для працы з дадзенымі і табліцамі.

Дадзеную класіфікацыю можна працягваць да бясконцасці, але асноўныя наборы каманды мовы SQL будуць пабудаваны менавіта зыходзячы з гэтых тыпаў.

Разглядаючы класіфікацыю мовы, нельга не згадаць пра тое, што ён з'яўляецца універсальным, пра што кажа сфера яго выкарыстання. Гэтая мова праграмавання і яго разнавіднасці задзейнічаюцца не толькі ў стандартнай асяроддзі, але і ў іншых праграмах, якія, так ці інакш, вы выкарыстоўвалі.

Сферу выкарыстання SQL можна разглядаць з пункту гледжання офіснага праграмнага забеспячэння, а менавіта MicrosoftAccess. Гэтая мова, а дакладней, яго разнавіднасць - MySQL, дазваляе адміністраваць базы дадзеных у сеткі Internet. Нават асяроддзе распрацоўкі Oracle выкарыстоўвае ў аснове сваіх запытаў каманды SQL.

Выкарыстанне SQL ў MicrosoftAccess

Адным з самых простых прыкладаў выкарыстання мовы для праграмавання баз дадзеных лічыцца пакет праграмнага забеспячэння MicrosoftOffice. Вывучэнне гэтага праграмнага прадукту прадугледжана школьным курсам інфарматыкі, а ў адзінаццатым класе разглядаецца сістэма кіравання базай дадзеных MicrosoftAccess.

Менавіта пры вывучэнні гэтага прыкладання вучні знаёмяцца з мовай распрацоўкі баз дадзеных і атрымліваюць базавую разуменне ўсяго ў яго ўваходзіць. SQL каманды Access даволі прымітыўныя, вядома ж, калі разглядаць іх на прафесійным узроўні. Выкананне такіх каманд вельмі простае, а ствараюцца яны ў прыстасаваным рэдактары кода.

Разгледзім канкрэтны прыклад:

SELECT Pe_SurName

FROM Pherson

WHERE Pe_Name = 'Мэры';

Зыходзячы з сінтаксісу каманды можна зразумець, што яна верне карыстачу прозвішча чалавека, у дадзеным выпадку жанчыны па імені Мэры, якая захоўваецца ў табліцы базы дадзеных Contacts.

Хоць і выкарыстанне SQL у Access абмежавана, часам такія простыя запыты вельмі моцна могуць спрасціць выкананне пастаўленага задання.

Выкарыстанне каманд SQL ў Oracle

Oracle - гэта, напэўна, адзіны сур'ёзны канкурэнт Microsoft SQL Server. Менавіта дадзеная асяроддзе распрацоўкі і кіравання базай дадзеных пастаянна прыводзіць да ўдасканалення функцый праграмнага прадукту кампаніі 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 ( 'принятнаработу', acceptdate)) FROM employees WHERE acceptdate> to_date ('01 .01.80 ',' dd.mm.yyyy ');

Дадзены запыт верне дадзеныя пра супрацоўнікаў, якія прынятыя на працу ў пэўны прамежак часу. Хоць структура запыту адрозніваецца, ад Microsoft SQL Server, выкананне каманд SQL ў гэтых сістэмах падобна, за выключэннем дробных дэталяў.

Выкарыстанне SQL ў сетцы Internet

З з'яўленнем сусветнага павуціння, то ёсць інтэрнэту, сфера выкарыстання мовы SQL пашыраецца. Як вядома, у сетцы захоўваецца маса інфармацыі, але яна не хаатычна размешчана, а размешчана на сайтах і серверах па пэўных крытэрах.

За захоўванне інфармацыі ў Інтэрнэце, як і ў іншых месцах, адказваюць непасрэдна базы дадзеных, а сайты з'яўляюцца сістэмамі кіравання. Як правіла, сайты і іх праграмны код арганізаваны на розных мовах праграмавання, але ў аснове баз дадзеных ляжыць адна з разнавіднасцяў SQL, а менавіта мова стварэння баз дадзеных, арыентаваны пад вэб-інтэрфейсы MySQL.

Сінтаксіс і асноўны набор каманд гэтай мовы цалкам капіююць звыклы ўсім SQL, але з некаторымі сваімі дапаўненнямі, якія і даюць яму адрозненне ад Microsoft tSQL Server.

Каманды SQL цалкам падобныя не толькі па сінтаксісе, але і па стандартнага набору службовых слоў. Розніца складаецца толькі ў выкліку і структураванні запыту. Для прыкладу можна разгледзець запыт для стварэння новай табліцы, менавіта яна з'яўляецца першым, чаму вучаць дзяцей у школах на інфарматыцы:

$ Link = mysqli_connect ( 'localhost', "root", '', 'tester');

if (! $ link) die ( "Error");

$ Query = 'create table users (

login VARCHAR (20),

password VARCHAR (20)

) ';

if (mysqli_query ($ link, $ query)) echo "Табліца стварыць.";

elseecho "Табліца не створаная:" .mysqli_error ();

mysqli_close ($ link);

У выніку выканання такога запыту можна атрымаць новую табліцу "Юзеры", у якой будзе два палі: лагін і пароль.

Сінтаксіс зменены пад ЗЭБ, але ў аснову пакладзены каманды MicrosoftSQLServer.

Пабудова запытаў MicrosoftSQLServer

Выбарка з табліц пэўнага набору дадзеных адна з асноўных задач SQL. Для такіх аперацый прадугледжана каманда select ў SQL. Менавіта пра яе пойдзе гаворка ніжэй.

Правілы пабудова каманды вельмі простыя, а сама каманда select ў SQL будуецца наступным чынам. Да прыкладу, ёсць табліца, у якой маюцца дадзеныя пра супрацоўніка, якая, да прыкладу, мае імя Person. Паставім задачу, што з табліцы трэба выбраць дадзеныя пра супрацоўнікаў, дата нараджэння якіх - у прамежку ад першага студзеня да першага сакавіка бягучага года ўключна. Для такой выбаркі неабходна выканаць каманду SQL, у якой будзе не толькі стандартная канструкцыя, але і ўмова выбару:

Select * from Person

Where P_BerthDay> = '01 / 01/2016 'and P_BerthDay <= '03 / 01/2016'

Выкананне такой каманды верне ўсе дадзеныя пра супрацоўнікаў, дзень нараджэння якіх знаходзіцца ў тым перыядзе, які быў зададзены вамі. Часам можа стаяць задача вывесці толькі прозвішча, імя і імя па бацьку супрацоўніка. Для гэтага запыт трэба пабудаваць крыху інакш, напрыклад, такім чынам:

SelectP_Name - імя

P_SurName - прозвішча

P_Patronimic - імя па бацьку

from Person

Where P_BerthDay> = '01 / 01/2016 'and P_BerthDay <= '03 / 01/2016'

Аднак гэта ўсяго толькі выбар чаго-небудзь. Ён, па сутнасці сваёй, не ўплывае ні на што, а толькі дае інфармацыю. Але калі вы вырашылі заняцца мовай SQL ўсур'ёз, вам прыйдзецца навучыцца ўносіць змены ў базы дадзеных, так як іх пабудова без гэтага папросту немагчыма. Як гэта робіцца, будзе разгледжана крыху ніжэй.

Асноўныя каманды SQL для змены дадзеных

Сінтаксіс мовы пабудаваны не толькі для выканання запытаў, але і для маніпуляцый з дадзенымі. У асноўным задачай праграміста баз дадзеных з'яўляецца напісанне скрыптоў для выбарак і справаздач, але часам неабходна ўносіць праўкі ў табліцы. Спіс каманд SQL для такіх дзеянняў невялікі і складаецца з трох асноўных каманд:

  1. Insert (зав. Уставіць).

  2. Update (зав. Абнаўленне).

  3. Delete (зав. Выдаліць).

Прызначэнне гэтых каманд лёгка вызначыць, для гэтага дастаткова будзе ўсяго толькі перавесці іх назва. Гэтыя каманды простыя ў выкарыстанні і маюць не складаную схему пабудовы, але варта згадаць, што некаторыя з іх, пры няправільным выкарыстанні, могуць нанесці непапраўную шкоду базе.

Як правіла, перад выкарыстаннем такія MSSQL каманды трэба прадумаць, і ўлічыць усе магчымыя наступствы іх выканання.

Вывучыўшы дадзеныя каманды, вы зможаце паўнавартасна пачаць працу з табліцамі баз дадзеных, тым самым відазмяняць яе і ўносіць нейкія новыя перменные ці ж выдаляць старыя.

каманда Insert

Для ўстаўкі дадзеных у табліцу выкарыстоўваецца самая бяспечная каманда - Insert. Няправільна ўстаўленыя дадзеныя заўсёды можна выдаліць і ўнесці ў базу дадзеных нанова.

Каманда Insert прызначана для ўстаўкі ў табліцу новых дадзеных і дазваляе дадаць як поўны набор, так і выбарачна.

Для прыкладу разгледзім каманду ўстаўкі ў раней апісаную табліцу Person. Для таго каб унесці дадзеныя ў табліцу неабходна выканаць каманду SQL, якая дазволіць ўставіць усе дадзеныя ў табліцу або запоўніць яе выбарачна.

Insert into person

Select 'Грыгор'еў', 'Віталь', 'Пятровіч', '1988/01/01'

Каманды MS SQL SERVER такога плану аўтаматычна запаўняюць усе вочкі табліцы з названымі дадзенымі. Бываюць сітуацыі, калі ў супрацоўніка няма імя па бацьку, скажам, ён па абмене прыехаў працаваць з Нямеччыны. У такім выпадку трэба выканаць каманду ўстаўкі дадзеных, якая занясе ў табліцу толькі тое, што неабходна. Сінтаксіс такой каманды будзе наступным:

Insertintoperson (P_Name, P_SurName, P_BerthDay)

Values ( 'Дэвід', 'Гук', '1986/11/02')

Такая каманда запоўніць толькі адзначаныя ячэйкі, а ўсе астатнія будуць мець значэнне null.

Каманда для змены дадзеных

Для змены дадзеных як усёй радкі, так і некаторых вочак выкарыстоўваецца каманда Update SQL. Выконваць такую каманду трэба толькі з пэўнай умовай, а менавіта дакладна ўказваць ў якую радок па нумары неабходна ўнесці змены.

Каманда Update SQL мае нескладаны сінтаксіс. Для правільнага выкарыстання неабходна ўказаць, якія дадзеныя, у якой калонцы і ў якой запісу варта змяніць. Далей скласці скрыпт і выканаць яго. Разгледзім прыклад. Трэба змяніць дату нараджэння Дэвіда Гука, які занесены ў табліцу супрацоўнікаў пад нумарам 5.

Update Person

Set P_BerthDay = '02 / 10/1986 'where P_ID = 5

Ўмова (у дадзеным скрыпце) не дасць змяніць дату нараджэння ва ўсіх запісах табліцы, а абновіць толькі патрэбныя.

Менавіта гэтай камандай праграмісты карыстаюцца часцей за ўсё, так як яна дазваляе змяняць дадзеныя ў табліцы не наносячы істотную шкоду ўсёй інфармацыі.

Каманды для выкарыстання ўбудаваных працэдур і функцый

З дапамогай мовы SQL можна не толькі будаваць запыты, але і ствараць убудаваныя механізмы для працы з дадзенымі. Як правіла, бываюць моманты, калі трэба выкарыстоўваць у целе аднаго запыту выбарку, напісаную раней.

Калі судзіць лагічна, то трэба скапіяваць тэкст выбаркі і ўставіць у патрэбнае месца, але можна абыйсціся і больш простым рашэннем. Разгледзім прыклад, калі на працоўным інтэрфейсе выведзена кнопка для друку справаздачы, скажам ў Excel. Гэтая аперацыя будзе выконвацца па меры неабходнасці. Для такіх мэтаў служаць убудаваныя захоўваемыя працэдуры. Каманды SQL запытаў, у дадзеным выпадку, заключаюцца ў працэдуру і выклікаюцца з дапамогай каманды SQLExec.

Выкажам здагадку, што была створана працэдура для вываду даты нараджэння супрацоўнікаў з раней апісанай табліцы Person. У такім выпадку няма неабходнасці пісаць увесь запыт. Для атрымання неабходнай інфармацыі дастаткова выканаць каманду Exec [імя працэдуры] і перадаць неабходныя для выбаркі параметры. Як прыклад можна разгледзець механізм стварэння працэдуры такога характару:

CREATEPROCEDUREPrintPerson

@DB smalldatetime

@DE smalldatetime

AS

SET NOCOUNT ON;

SELECT * from Person

FROM HumanResources.vEmployeeDepartmentHistory

WHERE P_BerthDay> = @DB and P_BerthDay <= @DE

ANDEndDateISNULL;

GO

Дадзеная працэдура верне ўсе звесткі пра супрацоўнікаў, дзень нараджэння якіх будзе знаходзіцца ў зададзеным часовым перыядзе.

Арганізацыя цэласнасці дадзеных. трыгеры

Некаторыя MS SQL-каманды, можна нават сказаць, канструкцыі, дазваляюць не толькі арганізаваць маніпуляцыі з дадзенымі, але і забяспечыць іх цэласнасць. Для такіх мэтаў у мове прызначаныя сістэмныя канструкцыі, якія стварае сам праграміст. Гэта так званыя трыгеры, якія змогуць забяспечыць кантроль дадзеных.

У гэтым выпадку для арганізацыі праверкі умоў выкарыстоўваюцца стандартныя каманды SQL-запытаў. У трыгер можна ствараць масу умоў і абмежаванняў для працы з дадзенымі, якія дапамогуць кіраваць не толькі доступам да інфармацыі, але і забараніць выдаленне, змяненне або ўстаўку дадзеных.

Тыпы каманд SQL, якія можна выкарыстоўваць у трыгеры, не абмежаваныя. Разгледзім на прыкладзе.

Калі апісваць механізм стварэння трыгера, то тыпы каманд SQL тут такія ж, як пры стварэнні працэдуры. Сам алгарытм будзе апісаны ніжэй.

Перш за ўсё трэба апісаць службовую каманду для стварэння трыгераў:

CREATE TRIGGER Person_Insert

Далей паказаць для якой табліцы:

ONPerson

Паказваем, для якой аперацыі з дадзенымі (у нашым выпадку гэта аперацыя змены дадзеных).

Наступным крокам будзе ўказанне табліц і зменных:

declare @ID int. @Date smalldatetime @nID int. @nDatesmalldatetime

Далей аб'яўляем курсоры для выбару дадзеных з табліц выдалення і ўстаўкі дадзеных:

DEclare cursor C1 for select P_ID, P_BerthDay from Inserted

DEclare cursor C2 for select P_ID, P_BerthDay from deleted

Задаем крокі выбару дадзеных. Пасля, у целе курсораў прапісваем ўмова і рэакцыю на яго:

if @ID = @nID and @nDate = '01 / 01/2016 '

begin

sMasseges 'Выканаць аперацыю немагчыма. Дата не падыходзіць '

end

Варта згадаць пра тое, што трыгер можна не толькі стварыць, але і адключыць на час. Такую маніпуляцыю можа правесці толькі праграміст, выканаўшы каманды SQL SERVER:

altertablePERSONdisabletriggerall - для адключэння ўсіх трыгераў, створаных для дадзенай табліцы, і, адпаведна, altertablePERSONenabletriggerall - для іх ўключэння.

Гэтыя асноўныя каманды SQL выкарыстоўваюцца часцей за ўсё, але іх камбінацыі могуць быць самымі разнастайнымі. SQL - вельмі гнуткі мова праграмавання і дае распрацоўніку максімум магчымасцяў.

выснову

З усяго вышэйсказанага можна зрабіць адзіную выснову: веданне мовы SQL проста неабходна тым, хто збіраецца сур'ёзна заняцца праграмаваннем. Ён ляжыць у аснове ўсіх выконваемых аперацый як у інтэрнэце, так і ў хатніх базах дадзеных. Менавіта таму будучы праграміст абавязкова павінен ведаць мноства каманд дадзенага мовы, так як толькі з іх дапамогай можна, так бы мовіць, мець зносіны з кампутарам.

Вядома, недахопы ёсць, як і ва ўсім у гэтым свеце, але яны настолькі нязначныя, што проста цьмянеюць перад добрымі якасцямі. Сярод усіх моў праграмавання SQL практычна адзіная ў сваім родзе, бо яна з'яўляецца універсальнай, і веды па напісанні скрыптоў і кодаў ляжаць у аснове практычна ўсіх сайтаў.

Галоўнай вартасцю SQL безоговорчно можна лічыць яго прастату, бо, як-ніяк, менавіта ён занесены ў школьную праграму. З ім можа справіцца нават пачатковец праграміст, толкам не разбіраецца ў мовах.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 be.birmiss.com. Theme powered by WordPress.