SQL негиздери

DDL, DML уланаары тууралуу көбүрөөк билүү

Структураланган талптар тили азыркы базасы архитектура негизги курулуш материалдарынын бири болуп саналат. SQL бардык негизги аянтчасындагы мамиледеги маалымат базаларын түзүү жана башкаруу үчүн колдонулган ыкмаларды аныктайт. Биринчи караганда, тил коркунучтуу жана татаал көрүнүшү мүмкүн, бирок ал ошол кыйын эмес.

SQL артында негиздери Бул киргизүү маалымат базаларын түзүү жана өзгөртүү үчүн колдонулган бир нече негизги буйруктарына кыскача карап көрөт.

SQL жөнүндө

SQL туура айтылышы базасы үммөтүмдүн ичинен бир талаш маселе болуп саналат. анын SQL стандартында, америкалык Улуттук стандарттары институту расмий айтылышы деп жарыялаган: "Эс Кезекке ел". Бирок, көптөгөн базасы адистер терминдер произношение алып жатышат ", улантуу." тандоо сеники болот.

SQL көп даамдуу болот. Oracle маалымат базалары , анын мүлктүк PL / SQL колдонушат. Microsoft SQL Server Transact-SQL колдонот. ёзгёръъ бардык тармактык стандартын ANSI SQL таянган. Бул киргизүү ар кандай заманбап мамиледеги маалымат базасы иштей ANSI-ылайык SQL буйруктарын колдонот.

DDL жана DML

SQL буйруктары эки негизги суб-тилге бөлүүгө болот. Берилиштерди аныктоо тили (DDL) түзүү жана маалымат базаларын жана маалыматтар базасы объектилерин жок кылуу үчүн колдонулат буйруктарды камтыйт. берилиштер базасына түзүлүшү DDL менен аныкталат кийин, базасына администраторлору жана колдонуучулар, киргизүүгө маалыматтар кызыкчылыгына тили (DML) пайдаланууга кабыл алуу жана анын ичинде камтылган маалыматтарды өзгөртө аласыз.

Берилиштерди аныктоо Тили буйруктары

Берилиштерди аныктоо Тили түзүү жана маалымат базаларын жана маалыматтар базасы объектилерин жок кылуу үчүн колдонулат. Бул осуяттар биринчи кезекте маалымат базасы долбоорун орнотуу жана ташып стадиясында базасы администраторлору тарабынан пайдаланылат. Мына, түзүлүшү жана негизги төрт DDL буйрук колдонуу карап көрөлү:

ТҮЗҮҮ. Бир орнотуу базасын башкаруу системасын компүтерде түзүү жана көптөгөн көз карандысыз маалымат базаларын башкаруу мүмкүнчүлүгүн берет. Мисалы, сиз сатуу бөлүмүнүн жана кадрлар үчүн кадрдык маалымат базасын түзүү үчүн кардар байланыштарын маалымат базасын түзүү керек болушу мүмкүн. ТҮЗҮҮ буйрук сиздин сахнада бул маалыматтар базасын ар белгилөө үчүн колдонулат. Мисалы, команда:

БАЗАСЫ кызматкерлерди ТҮЗҮҮ

Сиздин СУБД жөнүндө "кызматкерлерин" деген бош базасы жаратат. маалымат базасын түзүү кийин, кийинки кадам маалыматтарды камтыган столдорду түзүү болуп саналат. ТҮЗҮҮ буйругу үчүн башка ушул максатта колдонулушу мүмкүн. команда:

personal_info жадыбалын түзүү (first_name Char (20) эмес, анык эмес, last_name Исахар (20) эмес, анык, анык эмес, employee_id INT)

Учурдагы базасына "personal_info" аттуу стол белгилейт. Айрым кошумча маалыматтар менен катар first_name, last_name жана employee_id: Мисалы, стол үч өзгөчөлүктөрүн камтыйт.

КОЛДОНУУ. КОЛДОНУУ команда сиз СУБД ичинде менен иштөөнү каалайбы базасын көрсөтүүгө мүмкүнчүлүк берет. Мисалы, азыркы учурда сатуу боюнча маалыматтар базасын иштеп жана кызматкер базасын таасир кээ бир буйруктарды чыгарат төмөндөгү SQL буйругу менен баштаган келет жатабыз, эгерде:

КОЛДОН кызматкерлери

Ал ар дайым сиз берилиштер SQL буйрук бере электе эле иштеп жатат базасын болуу маанилүү.

Өзгөртпөйт. Эгер сиз маалымат базасын ичинде үстөл жасадык кийин, анын аныктамасын өзгөртүүгө туура келет. Өзгөртпөйт буйругу, аны жок кылуу жана Эс жок столдун курамына өзгөртүүлөрдү киргизе берет. төмөнкү буйругу менен карап:

эмгек акы акчалай же к³ч³н КОШУУ personal_info МАЗМУНУ өзгөртпөйт

Бул мисал personal_info стол-бир кызматкердин эмгек үчүн жаңы касиетти алып келбейт. "Акча" аргумент бир кызматкердин айлык акысы бир доллары жана конулум түзүлүшү менен сакталып турат деп аныктайт. Акыр-аягы, "нөл" деген ачкыч бул жаатта кандайдыр бир кызматкер үчүн эч кандай баалуулугу бар үчүн OK базасы айтылат.

DROP. Берилиштерди аныктоо тил, бир тамчы акыркы буйругу, биздин СУБД толугу базасы объекттерди алып салууга мүмкүндүк берет. Мисалы, биз дайыма биз жараткан personal_info үстөл алып келсе, биз төмөнкү команданы колдонобуз:

DROP МАЗМУНУ personal_info

Ошо сыяктуу эле, төмөндө бүткүл кызматкер базасын алып салуу колдонулушу мүмкүн:

DROP БАЗАСЫ кызматкерлери

сактоо менен бул буйругун колдонуп. DROP буйрук корун бүт маалымат түзүмдөр жок. айрым жазууларды алып келсе, маалыматтар кызыкчылыгына тил ЖОК буйругун колдоносуз.

Берилиштер Manipulation Тили буйруктары

Маалыматтар Manipulation тили (DML), түшүрүп коюу менен базасына маалыматтарды өзгөртүү үчүн колдонулат. Бул буйруктар маалыматтар базасын кадыресе учурунда бардык базасы пайдалануучулар тарабынан пайдаланылат.

ЖАЗУУ. SQL кошумча буйрук учурдагы столго жазууларды кошуу үчүн колдонулат. Өткөн бөлүктөн алган personal_info Мисалы кайтып, биздин HR бөлүмү базасына бир жаңы кызматкер кошуу керек деп ойлошот. Бул бир эле буйрук тийиши мүмкүн:

Салып personal_info баалуулуктар ( "Барт ',' Симпсон ', 12345, 45000 $)

жазуу үчүн көрсөтүлгөн төрт маанилери бар экенин белгилешет. first_name, last_name, employee_id жана эмгек акы: Бул стол өзгөчөлүктөрү, алар аныкталган тартипте туура келет.

SELECT. SELECT буйрук SQL абдан көп колдонулган команда болуп саналат. Бул маалымат базасы пайдалануучулардын алар ыкчам базасында каалаган конкреттүү маалымат алууга мүмкүнчүлүк берет. дагы кызматкер базасында personal_info стол аркылуу бир нече мисал карап алалы.

Төмөндө көрсөтүлгөн буйрук personal_info столдун ичиндеги бардык маалыматты табат. жылдызча SQL бир Шаблон катары колдонулат. Бул сөз түзмө-түз "personal_info үстөлүнөн түшкөн нерсени танда" дегенди билдирет.

SELECT * FROM personal_info

Же болбосо, маалымат базасын чыгарылган жаткан сыпаттарын чектөө болушу мүмкүн. Мисалы, адам ресурстары бөлүмү компаниянын бардык кызматкерлери акыркы аттарынын тизмесин талап кылышы мүмкүн. төмөндөгү SQL буйругун гана маалымат алуу керек:

SELECT last_name FROM personal_info

КАЙДА берене белгиленген критерийлерге ылайык ошол үчүн чыгарылган жазуулар чектөө үчүн колдонсо болот. CEO бардык жогорку төлөнгөн кызматкерлердин кадрдык жазууларды карап кызыкдар болушу мүмкүн. төмөнкү буйрук көбүрөөк 50,000 $ караганда эмгек акы мааниге ээ эсепке үчүн personal_info камтылган бардык маалыматтарды табат:

personal_info тандап * КАЙДА маяна> $ 50000

Улантат. UPDATE буйрук тобу менен же жекече же столдун алкагында камтылган маалыматтарды өзгөртүү үчүн колдонулган болушу мүмкүн. Компания бардык кызматкерлерге жыл сайын, алардын эмгек акысы 3 пайыз наркы-жылдын жашоо жогорулатууга жардам берет деп ойлойбуз. төмөндөгү SQL буйругун тез базасынын сакталган бардык кызматкерлерди бул колдонсо болот:

SET эмгек personal_info UPDATE = акы * 1.03

Барт Симпсон жаңы кызматкер жогору жана өзүнө мүнөздүү аткарууну көрсөтүп жатканда, башкаруу $ 5,000 жогорулатуу менен жылдыз жетишкендик- терин таануу болуп келет. КАЙДА-берене Бул жогорулатуу үчүн Барт бөлүп көрсөтүү үчүн колдонулушу мүмкүн:

SET эмгек personal_info UPDATE = акы + $ 5000 КАЙДА employee_id = 12345

DELETE. Акыр-аягы, анын ЖОК буйругу менен карап көрөлү. Сиз бул буйруктун синтаксисин башка DML буйрук окшош экенин таба аласыз. Тилекке каршы, биздин акыркы Юридикалык маяналар баяндамасы кыйла күтүүлөрүн жана жакыр Барт кубаланбаганда элек жооп берген эмес. берене personal_info дасторконунан жазып алып салуу колдонулушу мүмкүн менен Буйрукту өчүр:

personal_info кылуу КАЙДА employee_id = 12345

кошулду

Эми сиз SQL негиздерин үйрөнүп алгандан кийин, ал тилде сөздөрдү кошулсун-сунуш кылган күчтүү түшүнүктөрдүн бири жөнүндө сөз кылууга убакыт жетти. А сизге бир нече столдор маалыматтар натыйжалуу маалыматтар көп санда иштеп биригип берет кошулсун. Бул сөздөр базасын чыныгы күч жашаган жерде бар.

эки дайындарды айкалыштыруу үчүн негизги кошулсун ишин иликтөө үчүн PERSONAL_INFO стол аркылуу бир мисал менен улантууга жана аралашманы кошумча үстөл кошуу. Сиз төмөнкү сөздөр менен түзүлгөн DISCIPLINARY_ACTION деп үстөл бизде бар деп элестетип көрөлү:

ТҮЗҮҮ МАЗМУНУ disciplinary_action (action_id Инт эмес, анык, анык эмес, employee_id Int, Char Комментарийлерге (500))

Бул стол компаниянын жумушчуларына тартип иш-аракеттердин жыйынтыктарын камтыйт. Сиз бул кызматкерлердин санынан башка кызматкер жөнүндө маалымат камтылган эмес экенин көрө аласыз. Сиз DISCIPLINARY_ACTION жана PERSONAL_INFO үстөлдөргө маалымат айкалыштыруу каалаган көптөгөн жагдайларды элестетип мүмкүн.

Ойлобо сен көбүрөөк $ 40,000 бир айлык менен кызматкерлерге карата тартиптик чараларды тизмелеген отчетту түзүү тапшырмасы берилди. бир иш JOIN колдонуу, бул учурда, жөнөкөй болуп саналат. Биз төмөнкү буйругун пайдалануу менен бул маалыматты алуу үчүн:

SELECT personal_info.first_name, personal_info.last_name, personal_info ЧЕЙИН disciplinary_action.comments, disciplinary_action personal_info.employee_id = disciplinary_action.employee_id ЖАНА personal_info.salary> 40000

коду биз пунктунда FROM кошулууну каалаган эки таш лооктон башка эрежелер белгиленсе, анан дал кызматкер-лерин, жана көп $ 40,000 бир айлык биздин критерийлерге жазуу натыйжаларын чектөөгө КАЙДА пунктунда арызды камтыйт.