SQL негіздері

DDL, DML және JOINs туралы біліңіз

Structured Query Language - заманауи деректер базасының архитектурасының іргелі құрылыс блоктарының бірі. SQL барлық негізгі платформаларда салыстырмалы дерекқорларды жасау және өңдеу үшін пайдаланылатын әдістерді анықтайды. Бір қарағанда, тіл өте қорқынышты және күрделі көрінуі мүмкін, бірақ бәрі қиын емес.

SQL-ның негізіне кіріспе дерекқорларды жасау және өзгерту үшін пайдаланылатын кейбір негізгі командаларға қысқаша шолу жасайды.

SQL туралы

SQL-тың дұрыс айтылуы дерекқордың қауымдастығындағы шиеленіскен мәселе. SQL стандартында Америка ұлттық стандарттар институты ресми айтылу «es queue el» деп жариялады. Дегенмен, көптеген деректер базасының мамандары сленгті «сиквел» деп атады. Таңдау сенің.

SQL көптеген дәмде болады. Oracle дерекқорлары өзінің меншікті PL / SQL-ін пайдаланады. Microsoft SQL Server Transact-SQL-ні қолданады. Барлық өзгерістер ANSI SQL салалық стандартына негізделген. Бұл кіріспе кез-келген заманауи реляциялық деректер базасында жұмыс істейтін ANSI-үйлесімді SQL пәрмендерін қолданады.

DDL және DML

SQL пәрмендерін екі басты суб-тілге бөлуге болады. Деректерді анықтау тілі (DDL) дерекқорларды және дерекқор нысандарын жасау және жою үшін пайдаланылатын пәрмендерді қамтиды. Дерекқор құрылымы DDL көмегімен анықталғаннан кейін, дерекқор әкімшілері мен пайдаланушылары деректерді кірістіру, алу және өзгерту үшін Data Manipulation Language (DML) пайдалана алады.

Деректерді анықтау тілінің командалары

Деректерді анықтау тілі дерекқорлар мен дерекқор нысандарын жасау және жою үшін пайдаланылады. Бұл команда деректер қорының жобасын орнату және жою кезеңдерінде ең алдымен дерекқор әкімшілері пайдаланылады. Мұнда төрт негізгі DDL пәрмендерінің құрылымы мен пайдаланылуын көруге болады:

CREATE. Компьютерде дерекқорды басқару жүйесін орнату көптеген тәуелсіз дерекқорларды жасауға және басқаруға мүмкіндік береді. Мысалы, сату бөліміне арналған тұтынушы контактілерінің дерекқорын және HR бөлімі үшін кадрлар деректерін сақтауды қалауыңыз мүмкін. CREATE пәрмені осы дерекқорлардың әрқайсысын платформаңызда орнату үшін пайдаланылады. Мысалы, команда:

CREATE DATABASE қызметкерлері

сіздің ДҚБЖ-дағы «қызметкерлер» деп аталатын бос дерекқорды жасайды. Дерекқорды жасағаннан кейін, келесі қадам деректерді қамтитын кестелерді жасау болып табылады. Осы мақсат үшін CREATE командасының тағы бір нұсқасы пайдаланылуы мүмкін. Команда:

CREATE TABLE personal_info (first_name char (20) not null, last_name char (20) null емес, employee_id int null)

ағымдағы дерекқорда «personal_info» деп аталатын кестені орнатады. Мысалда кестеде үш атрибут бар: бірінші_атауы, соңғы_атауы және employee_id және кейбір қосымша ақпарат.

ПАЙДАЛАНУ. USE пәрмені сіздің ДҚБЖ ішінде жұмыс істегіңіз келетін дерекқорды көрсетуге мүмкіндік береді. Мысалы, сіз қазіргі уақытта сату дерекқорында жұмыс істеп жатсаңыз және қызметкер дерекқорына әсер ететін кейбір пәрмендер шығарғыңыз келсе, оларды келесі SQL пәрмені арқылы кірістіріңіз:

USE қызметкерлері

Деректерді басқаратын SQL пәрмендерін беруден бұрын сіз жұмыс істеп жатқан дерекқорды үнемі білу маңызды.

ALTER. Дерекқорда кесте жасағаннан кейін, оның анықтамасын өзгерту қажет болуы мүмкін. ALTER пәрмені кестенің құрылымын өзгертуге және оны қайта жасамай өзгерістер енгізуге мүмкіндік береді. Төмендегі пәрменді қараңыз:

ALTER TABLE personal_info Жалақы ақшасын қосу нөл

Бұл мысал жеке төлсипатты жеке_info кестесіне қосады - қызметкердің жалақысы. «Ақша» дәлелінде қызметкердің жалақысы доллар мен цент пішімі арқылы сақталатындығын көрсетеді. Соңында, «бос» кілт сөз дерекқорға осы өрістің кез-келген қызметкер үшін ешқандай мән бермейтінін дұрыс деп көрсетеді.

DROP. Деректерді анықтайтын тілдің DROP соңғы пәрмені біздің барлық деректер базасын объектілерін жоюға мүмкіндік береді. Мысалы, біз жасаған жеке_info кестесін біржола жоюды қаласаңыз, біз келесі пәрменді пайдаланамыз:

DROP TABLE жеке_info

Сол сияқты, төменде келтірілген командалар барлық қызметкерлердің дерекқорын жою үшін пайдаланылады:

DROP DATABASE қызметкерлері

Бұл пәрменді мұқият пайдаланыңыз. DROP пәрмені дерекқордан барлық деректер құрылымдарын жояды. Жеке жазбаларды жойғыңыз келсе, Деректерді өңдеу тілінің DELETE пәрменін пайдаланыңыз.

Деректерді манипуляциялау тілдік командалары

Data Manipulation Language (DML) деректер қорын алу, енгізу және өзгерту үшін пайдаланылады. Бұл пәрмендер дерекқордың әдеттегі жұмысында барлық дерекқор пайдаланушылары пайдаланылады.

INSERT. SQL-дегі INSERT пәрмені жазбаларды бар кестеге қосу үшін пайдаланылады. Алдыңғы бөлімнен алынған дербес_info мысалына оралсақ, біздің HR бөліміне жаңа дерекқорды өз дерекқорына қосу қажет деп ойлап көріңіз. Осыған ұқсас командаларды қолдануға болады:

Personal_info мәндерін енгізіңіз ('bart', 'simpson', 12345, $ 45000)

Жазбада көрсетілген төрт мән бар екенін ескеріңіз. Олар кесте төлсипаттарына анықталған ретіне сәйкес келеді: first_name, last_name, employee_id және жалақы.

SELECT. SELECT пәрмені SQL-де ең жиі қолданылатын пәрмен болып табылады. Ол дерекқор пайдаланушылары жедел дерекқордан қалайтын нақты ақпаратты алуға мүмкіндік береді. Қызметкерлер дерекқорынан тағы да жеке_info кестесін қолданып бірнеше мысалға назар салыңыз.

Төменде көрсетілген пәрмендер дербес_info кестесінде қамтылған барлық ақпаратты алады. Жұлдызша SQL-та қойылмалы таңба ретінде пайдаланылатынын ескеріңіз. Бұл сөзбе-сөз «Барлық дербес кестеден таңдау» дегенді білдіреді.

SELECT * FROM personal_info

Я болмаса, пайдаланушылар дерекқордан шығарылатын атрибуттарды шектеуі мүмкін. Мысалға, Адам ресурстарын басқару бөлімі компаниядағы барлық қызметкерлердің тізімін талап етуі мүмкін. Келесі SQL пәрмені тек осы ақпаратты ғана алады:

Last_name FROM personal_info таңдаңыз

WHERE тармағы белгілі бір критерийлерге сәйкес келетін жазбаларға арналған жазбаларды шектеу үшін пайдаланылуы мүмкін. Бас директор барлық жоғары ақы төленетін қызметкерлердің кадрлық есебін қарауға мүдделі болуы мүмкін. Келесі команда $ 50,000-нан асатын жалақы мағынасы бар жазбалар үшін personal_info ішіндегі барлық деректерді шығарады:

SELECT * FROM personal_info Қайдан жалақы> $ 50000

UPDATE. UPDATE пәрмені кестедегі ақпараттың көлемді немесе жеке түрде өзгеруі үшін пайдаланылуы мүмкін. Компания барлық қызметкерлерге жылдық жалақының 3 пайызға көтерілуін көздейді. Келесі SQL пәрменін дерекқорда сақталған барлық қызметкерлерге жылдам қолдану үшін қолдануға болады:

UPDATE personal_info SET жалақы = жалақы * 1.03

Барт Симпсон жаңа қызметкер кезекшілікті жоғарылатудан тыс және жоғары деңгейде көрсеткен кезде, басшылық өзінің жетістіктерін $ 5000 көтерумен тануға тілек білдірді. WHERE тармағы осы өсім үшін Бартты бөлектеу үшін пайдаланылуы мүмкін:

UPDATE personal_info SET жалақы = жалақы + $ 5000 WHERE employee_id = 12345

ЖОЮ. Соңында, DELETE пәрменін қарастырайық. Бұл пәрменнің синтаксисі басқа DML пәрмендеріне ұқсас екенін табасыз. Өкінішке орай, біздің соңғы корпоративтік табыс туралы есепіміз күткендей емес, ал Барт жоғалтқан жоқ. WHERE тармағы бар DELETE командасы оның жазбасын жеке_файл кестесінен жою үшін пайдаланылуы мүмкін:

Жеке кабинеттен WHERE employee_id = 12345 жойыңыз

ЖОЛ

Енді сіз SQL негіздерін үйрендім, енді сізге ұсынатын ең күшті тұжырымдардың бірі - JOIN мәлімдемесіне ауысу уақыты келді. JOIN мәлімдемесі деректердің көп мөлшерін тиімді өңдеу үшін бірнеше кестелердегі деректерді біріктіруге мүмкіндік береді. Бұл мәлімдемелер деректер базасының нақты күші болған жерде.

Деректерді екі кестеден біріктіру үшін негізгі JOIN әрекетін пайдалануды зерттеу үшін PERSONAL_INFO кестесін пайдаланып мысалды жалғастырыңыз және араластыруға қосымша кесте қосыңыз. Келесі нұсқада жасалған DISCIPLINARY_ACTION деп аталатын кесте бар деп ойлаңыз:

CREATE TABLE disciplinary_action (action_id int бос емес, employee_id int null, comments char (500))

Бұл кестеде компанияның қызметкерлеріне қатысты тәртіптік іс-әрекеттердің нәтижелері келтірілген. Қызметкер туралы қызметкердің нөмірінен басқа ешқандай ақпараты жоқ екенін байқайсыз. DISCIPLINARY_ACTION және PERSONAL_INFO кестелерінен ақпаратты біріктіруді қалайтын көптеген сценарийлерді елестету оңай.

Сізге жалақы 40,000 доллардан асатын барлық қызметкерлерге қарсы қабылданған тәртіптік іс-әрекеттердің тізімін жасау туралы тапсырма берілді деп есептейік. JOIN операциясын пайдалану, бұл жағдайда, жай. Бұл ақпаратты келесі пәрменді пайдалана отырып аламыз:

Жеке кабинеттің жеке_info.first_name, жеке_info.last_name, disciplinary_action.com жеке_info, disciplinary_action ішінен SELECT WHERE personal_info.employee_id = disciplinary_action.employee_id AND personal_info.salary> 40000

Кодекс FROM тармағына қосылғымыз келетін екі кестені анықтайды, содан кейін нәтижелерді 40-тан асатын жалақы мөлшеріне сай келетін қызметкерлердің идентификаторларына сәйкес келетін нәтижелерге шектеу үшін WHERE тармағындағы мәлімдемені қамтиды.