Асосҳои СМС

Дар бораи DDL, DML ва JOIN омӯзед

Забони сохтмонии дархостӣ яке аз қисмҳои бунёдии бунёди меъмории пойгоҳи додаҳо мебошад. СММ механизмҳое, ки барои эҷод ва таҳлили пойгоҳи додаҳо дар ҳамаи платформаҳои асосӣ истифода мешаванд, муайян мекунад. Дар назари аввал, забон метавонад беҷуръатӣ ва мураккабро пайдо кунад, аммо он ҳама чизи душвор нест.

Ин вуруд ба базаи аз ҷониби Скотт якчанд сарчашмаҳои асосӣ барои эҷод ва тағир додани пойгоҳи додаҳо дида мешавад.

Дар бораи Система

Системаи дурусти Системаи SQL дар масъалаи ҷамъияти базаи маълумот мушкил аст. Дар стандарти Системаи худ, Донишкадаи стандартии Миллии Амрико эълон кард, ки корманди расмӣ «асбоби сафед» аст. Бо вуҷуди ин, бисёре аз мутахассисони пойгоҳи дода ба slang "sequel." Гирифта шуданд. Интихоби шумо ин аст.

СБМ дар бисёре аз қаҳвахонаҳо меояд. Захираҳое, ки Oracle истифода мебаранд PL / SQL. Microsoft SQL Server аз Transact-SQL истифода мебарад. Ҳама гуна тағйирот ба стандарти ANSI Система асос ёфтаанд. Ин вохӯри фармонҳои ANSI-мувофиқати SQL-ро, ки дар ҳамаи системаи муосири муназзами муосир кор мекунад, истифода мебарад.

DDL ва DML

Фармони SQL метавонад ба ду зерсохтори асосӣ тақсим карда шавад. Language Definition Language (DDL) фармонҳоеро, ки барои бунёд ва нобуд кардани пойгоҳи додаҳо ва объектҳои пойгоҳи додаҳо истифода мебаранд, иборат аст. Баъд аз сохтани пойгоҳи додаҳо бо DDL муайян карда мешавад, роҳбарони пойгоҳи додаҳо ва истифодабарандагон метавонанд барои ҷойгиркунӣ, ҷустуҷӯ ва тағйир додани маълумот дар дохили он истифода шаванд.

Фармонҳои забони фаронсавӣ

Language Definition Language барои эҷоди ва нобуд кардани пойгоҳи додаҳо ва объектҳои махзани истифода бурда мешавад. Ин фармонҳо асосан аз ҷониби маъмурияти пойгоҳи додашуда дар давоми марҳилаҳо ва бартарафсозии лоиҳаи додаҳо истифода мешаванд. Дар ин ҷо бинишуда ва истифодаи чор фармонҳои асосии DDL:

CREATE. Насб кардани системаи идоракунии пойгоҳи додаҳо дар компютер ба шумо имкон медиҳад, ки бисёр махзани мустақилро бунёд ва идора кунед. Масалан, шумо мехоҳед, ки пойгоҳи додаҳои алоқаи мизоҷонро барои шӯъбаи фурӯш ва пойгоҳи кадрӣ барои шӯъбаи кадрии худ нигоҳ доред. Фармони CREATE барои ҳар як ин пойгоҳи додаҳо дар платформаи худ истифода мешавад. Масалан, фармон:

Кормандони CREATE DATABASE

"DBMS" -и шумо "database" номида мешавад. Пас аз таъсиси пойгоҳи дода, қадами навбатӣ сохтани ҷадвалҳое, ки дорои маълумот мебошанд. Варианти дигари фармонҳои CREATE метавонад бо ин мақсад истифода шавад. Фармон:

ТАФСИРИ ТАФСИРИ ШАҲРИ ҚӮРҒОНТЕППА (first_name char (20) не не не, last_name char (20) не не не, employee_id int не не)

як мизро бо номи "personal_info" дар пойгоҳи додаи ҷорӣ месозад. Дар мисол, ҷадвал дорои се хусусият мебошад: first_name, last_name and employee_id дар якҷоягӣ бо маълумоти иловагӣ.

ИСЛОҲОТ. Фармони USE ба шумо имкон медиҳад, ки пойгоҳи додаи шумо дар дохили DBMS кор кунед. Масалан, агар шумо ҳоло дар базаи маълумотҳо кор карда истодаед ва мехоҳед, ки баъзе фармонҳоро бардоред, ки ба пойгоҳи додаи кормандон таъсир мерасонанд, онҳоро бо фармонҳои зерини SQL:

Кормандони USE

Муҳим аст, ки ҳамеша дарк кунед, ки базаи маълумоте, ки шумо пеш аз додани фармоишҳои SQL, ки маълумотро идора мекунед, медонед.

Алҷазоир. Пас аз он, ки шумо дар як базаи маълумотҳои ҷадди ҷадид сохтаед, шумо метавонед таърифи онро тағир диҳед. Фармони ALTER ба шумо имкон медиҳад, ки сохтори ҷадвалро бе таҳрир ва бозсозӣ тағир диҳед. Ба амри зерин нигаред:

ALTER TABLE personal_info ADD аз ҳисоби музди меҳнат

Ин намунаи нав ба ҷадвали personal_info - маоши кормандон илова мекунад. Далели «пул» маънои онро дорад, ки музди меҳнати корманд бо формати долл. Ниҳоят, калимаи калимаи калимаи "ло илоҳа" ба пойгоҳи додаи он ишора мекунад, ки он барои ин соҳа дуруст аст, барои ҳеҷ як арзиш барои ҳар як корманди он.

ДУШАНБЕ. Фармони ниҳоии забони Далелии Тарҷумон, DROP, ба мо имкон медиҳад, ки ҳамаи объектҳои базаи маълумотро аз DBMS-и мо тоза кунанд. Масалан, агар мо мехоҳем, ки доимо ҷадвали инфиродӣро, ки мо офаридаем, тоза мекунем, мо фармон медиҳем:

Personal_info

Ба ҳамин монанд, фармоне, ки барои поён додан ба ҳамаи махзани маълумотҳои зерин истифода мешавад:

Кормандони DATABASE кормандон

Ин амрро бо ғамхорӣ истифода баред. Command DROP тамоми сохтори маълумотро аз пойгоҳи худ дур мекунад. Агар шумо хоҳед, ки сабтҳои шахсиро хориҷ кунед, фармони DELETE-ро аз рӯи интиқоли маълумот истифода баред.

Фармоишҳои иттилоотии забонӣ

Language Manipulation Data (DML) барои дарёфт кардан, ворид кардан ва тағир додани иттилооти махзани маълумот истифода мешавад. Ин фармонҳо аз ҷониби ҳамаи истифодабарандагони базаи маълумотҳо дар вақти истифодаи мунтазами пойгоҳи додаҳо истифода мешаванд.

INSERT. Фармони INSERT дар С SQL барои илова кардани сабтҳо ба ҷадвалҳои мавҷуда истифода мешавад. Бозгашт ба мисоли personal_info аз қисмати қаблӣ, тасаввур кунед, ки шӯъбаи кадрии мо бояд ба маълумоти махфии худ коргари нав илова намояд. Шумо метавонед фармонро ба ин монанд истифода баред:

INSERT INTO personal_info values ​​('bart', 'simpson', 12345, $ 45000)

Дар хотир доред, ки чоре, ки барои сабт нишон дода шудаанд, вуҷуд доранд. Ин ба хосиятҳои ҷадвал мувофиқи тартиби муайян карда шудаанд: first_name, last_name, employee_id ва музди меҳнат.

SEELECT. Фармони SELECT маъмултаринтарин дар SQL мебошад. Он ба истифодабарандагони базаи маълумотҳо имкон медиҳад, ки иттилооти мушаххасеро, ки онҳо аз пойгоҳи амалиётӣ мехоҳанд, гиранд. Якчанд мисолҳоро дида бароед, бори дигар бо истифода аз пойгоҳи инфиродии personal_info.

Фармони мазкур дар поён оварда шудааст, ки ҳамаи маълумоте, ки дар дохили инфиродии personal_info оварда шудааст, гирифта мешавад. Дар хотир доред, ки интерпретатсия ҳамчун қоғази сканӣ дар SQL истифода мешавад. Ин маънои онро дорад, ки "Ҳама чизро аз ҷадвали Personal_info интихоб кунед."

SELECT * аз ҷониби personal_info

Эҳтимол, корбарон мехоҳанд, ки хусусиятҳои аз пойгоҳи додашударо маҳдуд кунанд. Масалан, шӯъбаи кадрҳо метавонад рӯйхати номҳои ҳамаи кормандонро дар ширкат талаб кунад. Фармони зерин аз фармонҳои зерин гирифта мешавад:

Last_name SELECT personal_info

МАЪЛУМОТИ ИЛОВАГӢ метавонанд барои маҳдуд кардани сабтҳое, ки ба онҳое, ки ба меъёрҳои муайяншуда ҷавобгӯ мебошанд, истифода шаванд. Роҳбари маъқул метавонад ба баррасии ҳайатҳои кадрии ҳамаи кормандони баландихтисос таваҷҷӯҳ кунад. Фармони зерин ҳамаи маълумотеро, ки дар дохили шахсӣ_info навишта шудааст, гирифтааст, барои сабтҳое, ки аз музди меҳнати беш аз $ 50,000 доранд:

SEELECT * аз: personal_info ҲАМААШ МАҲСУЛОТ> 50000

UPDATE. Фармони UPDATE метавонад барои тағйир додани маълумоте, ки дар дохили ҷадвал истифода мешавад, дар маҷмӯъ ё дар алоҳидагӣ истифода бурда шавад. Ба назар мерасад, ки ширкат ҳар сол ба ҳисоби миёна ба ҳисоби миёна музди меҳнатиашон 3 фоизро ташкил медиҳад. Фармони зерин SQL метавонад истифода шавад, то ин ки ба ҳамаи кормандон, ки дар базаи маълумотҳо сабт шудаанд, истифода шаванд:

UPDATE personal_info MONTHS Salary = Музди * 1.03

Вақте ки коргари нави Bart Simpson иҷрои вазифаҳои дар боло ва берун аз занги зоҳириро нишон медиҳад, менеҷмент мехоҳад, ки комёбиҳояшро бо 5,000 доллар баланд кунад. МАЪЛУМОТИ НОҲИЯИ ШАҲРИ ҚӮРҒОНТЕППА

UPDATE personal_info MONTHS = Salary + $ 5000 WHERE employee_id = 12345

БЕҲТАРИН Ниҳоят, биёед ба фармон дар бораи DELETE нигоҳ кунед. Шумо мефаҳмед, ки синтати ин фармон фармоишгари дигари DML аст. Мутаассифона, гузориши охирини корпоративии корпоративӣ мо ба интизори қонеъ нашудани камбизоатон ва камбизоатии Барзамон набуд. Фармони DELETE бо матни WHERE мумкин аст, ки барои ҷустуҷӯи сабти худро аз ҷадвали personal_info истифода барад:

ХУБ БОШАД ХОҶАГӢ НЕСТАНД_ employee_id = 12345

ШУМОРО

Акнун, ки шумо асосҳои SQL-ро фаҳмидед, он вақт барои гузаштан ба яке аз консепсияҳои аз ҳама пурқуввате, ки забонро пешниҳод мекунад - шарҳи JOIN. Тавсифи YCPS ба шумо имкон медиҳад, ки маълумотро дар ҷадвалҳои яктарафа ба таври самаранок иҷро кардани миқдори зиёди иттилоот анҷом диҳед. Ин изҳоротҳо дар он ҷо қудрати аслии пойгоҳи додаҳо мавҷуданд.

Барои фаҳмидани истифодаи усули асосии JOIN барои якҷоя кардани маълумот аз ду ҷадвал, бо мисол бо истифода аз ҷадвали PERSONAL_INFO давом диҳед ва ба миқдори иловагии ҷадвал илова кунед. Тасаввур кунед, ки шумо мизбони "DISCIPLINARY_ACTION" -ро, ки бо изҳороти зерин офарида шуда буд, доред:

Такмили таркиби функсияҳои функсионалӣ (action_id int не нотон, employee_id int не нутқ, шарҳҳои харбуза (500))

Ин ҷадвал натиҷаҳои амали моддии кормандонро дар бар мегирад. Шумо мефаҳмед, ки он ҳеҷ гуна маълумотро дар бораи коргари ғайр аз шумораи кормандон дар бар намегирад. Ин тасаввуроте, ки бисёре аз сенарияҳоро тасаввур кардан мумкин аст, ки шумо метавонед маълумотро аз Диски Фишурдаро ва PERSONAL_INFO ҷамъ кунед.

Тасаввур кунед, ки шумо бо таҳия кардани гузориш, ки амалҳои интизомиро бар зидди ҳамаи кормандон бо музди меҳнати зиёда аз 40,000 доллари амрикоӣ қайд мекунанд, тасаввур кунед. Истифодаи амалиёти JOIN дар ин ҳолат росткор аст. Мо метавонем ин маълумотро бо фармонҳои зерин пайдо кунем:

SELECT personal_info.first_name, personal_info.last_name, disciplinary_action.com фаронсаро, personal_info, disciplinary_action WHERE personal_info.employee_id = disciplinary_action.employee_id AND personal_info.salary> 40000

Кодекс ду ҷадвалеро, ки мо мехоҳем, ки дар матн аз ҷониби FROM ҳамроҳ шавем ва баъдтар дар бораи он ки дар натиҷа ба рӯйхат ишора карда мешавад, маҳдудиятҳое мавҷуданд, ки ба кортҳои корпоративӣ мутобиқат мекунанд ва меъёрҳои касбии музди меҳнати зиёда аз 40,000-ро ташкил медиҳанд.