SQL Основи

Научете за DDL, DML и JOINs

Езикът на структурираните заявки е един от основните градивни елементи на съвременната архитектура на бази данни. 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, администраторите на бази данни и потребителите могат да използват езика за манипулиране на данни (DML), за да вмъкват, извличат и променят съдържащите се в него данни.

Команди за дефиниране на данни

Езикът за дефиниране на данни се използва за създаване и унищожаване на бази данни и обекти от базата данни. Тези команди се използват предимно от администраторите на бази данни по време на фазите на настройка и премахване на проект на база данни. Ето един поглед върху структурата и използването на четири основни DDL команди:

Създаване. Инсталирането на система за управление на базата данни на компютър ви позволява да създавате и управлявате много независими бази данни. Например може да поискате да поддържате база данни за клиентски контакти за Вашия отдел продажби и база данни за персонала за Вашия HR отдел. Командата CREATE се използва за установяване на всяка от тези бази данни на вашата платформа. Например командата:

Създайте служители на DATABASE

създава празна база данни с име "служители" на вашия СУБД. След създаването на базата данни следващата стъпка е да се създадат таблици, съдържащи данни. За тази цел може да се използва друг вариант на командата CREATE. Командата:

CREATE TABLE personal_info (first_name char (20) не null, last_name char (20) не null, employee_id int не е null)

създава таблица, озаглавена "personal_info" в текущата база данни. В примера таблицата съдържа три атрибута: first_name, last_name и employee_id заедно с допълнителна информация.

УПОТРЕБА. Командата USE ви позволява да определите базата данни, с която искате да работите, в рамките на вашия СУБД. Например, ако понастоящем работите в базата данни за продажби и искате да издадете някои команди, които ще се отразят на базата данни на служителите, ги предречете със следната SQL команда:

USE служители

Важно е винаги да сте наясно с базата данни, в която работите, преди да издавате SQL команди, които манипулират данни.

ALTER. След като създадете таблица в базата данни, може да искате да промените нейното определение. Командата ALTER ви позволява да правите промени в структурата на таблица, без да я изтривате и пресъздавате. Обърнете внимание на следната команда:

АЛТЕР ТАБЛИЦА personal_info ADD заплата money null

Този пример добавя нов атрибут към таблицата personal_info - заплата на служител. Аргументът "пари" уточнява, че заплатата на служителя се съхранява, като се използва формат за долари и цента. И накрая, ключовата дума "null" казва на базата данни, че е вярно, че това поле не съдържа стойност за даден служител.

ИЗПУСКАЙТЕ. Последната команда на езика за дефиниране на данни, DROP, ни позволява да премахнем цели обекти от база данни от нашия СУБД. Ако например искаме да премахнем окончателно таблицата, която създадохме, използваме следната команда:

СТАБИЛНА ТАБЛИЦА personal_info

По същия начин командата по-долу ще се използва за премахване на цялата база данни на служителите:

Служители на DROP DATABASE

Използвайте тази команда внимателно. Командата DROP премахва цялата структура от базата данни. Ако искате да премахнете отделни записи, използвайте командата DELETE на езика за обработка на данни.

Команди на езика за манипулиране на данни

Езиковият манипулационен език (DML) се използва за извличане, вмъкване и промяна на информация за базата данни. Тези команди се използват от всички потребители на база данни по време на рутинната работа на базата данни.

INSERT. Командата INSERT в SQL се използва за добавяне на записи към съществуваща таблица. Връщайки се към примера на лична информация от предходната секция, си представете, че отделът Човешки ресурси трябва да добави нов служител към своята база данни. Можете да използвате команда, подобна на тази:

ВЪВЕЖДАНЕ В лични_инфо стойности ("bart", "simpson", 12345, $ 45000)

Забележете, че за записа са зададени четири стойности. Те съответстват на табличните атрибути в реда, в който са дефинирани: first_name, last_name, employee_id и pay.

SELECT. Командата SELECT е най-често използваната команда в SQL. Той позволява на потребителите на база данни да извличат специфичната информация, която желаят, от оперативна база данни. Разгледайте няколко примера, като отново използвате таблицата personal_info от базата данни на служителите.

Показаната по-долу команда извлича цялата информация, съдържаща се в таблицата personal_info. Обърнете внимание, че звездичката се използва като заместващ знак в SQL. Това буквално означава "Избери всичко от таблицата с лична_инфо".

SELECT * от personal_info

Алтернативно, потребителите могат да искат да ограничат атрибутите, които се извличат от базата данни. Например, отдел "Човешки ресурси" може да изисква списък на фамилните имена на всички служители в компанията. Следната SQL команда ще извлече само тази информация:

SELECT последно име FROM personal_info

Клаузата WHERE може да се използва за ограничаване на записите, които са извлечени към тези, които отговарят на определени критерии. Главният изпълнителен директор може да се интересува от прегледа на документите за персонала на всички високоплатени служители. Следната команда извлича всички данни, съдържащи се в personal_info, за записи, чиято стойност на заплатата е по-голяма от $ 50,000:

SELECT * FROM personal_info WHERE заплата> $ 50000

UPDATE. Командата UPDATE може да се използва за модифициране на информацията, съдържаща се в дадена таблица, както в насипно състояние, така и поотделно. Да приемем, че компанията дава на всички служители годишно увеличение на заплатата им с 3%. Следната SQL команда може да се използва за бързо прилагане на това на всички служители, съхранявани в базата данни:

UPDATE personal_info SET заплата = заплата * 1.03

Когато новият служител Барт Симпсън демонстрира представяне над и извън задължението, ръководството желае да признае звездните си постижения с рейз от $ 5,000. Клаузата WHERE може да се използва, за да се изведе Bart за тази рейз:

UPDATE personal_info SET заплата = заплата + $ 5000 WHERE employee_id = 12345

ИЗТРИЙ. И накрая, нека разгледаме командата DELETE. Ще откриете, че синтаксиса на тази команда е подобен на този на другите команди на DML. За съжаление, последният ни доклад за корпоративните приходи не отговаряше напълно на очакванията, а бедният Барт беше уволнен. Командата DELETE с клауза WHERE може да се използва за премахване на неговия запис от таблицата personal_info:

DELETE FROM personal_info КЪДЕ employee_id = 12345

се присъединява към

След като научихте основите на SQL, е време да преминете към една от най-мощните концепции, които езикът може да предложи - изявлението JOIN. Текстовото съобщение JOIN ви позволява да комбинирате данни в множество таблици, за да обработвате ефективно големи количества данни. Тези твърдения са мястото, където се намира истинската мощ на базата данни.

За да проучите използването на основна операция JOIN за комбиниране на данни от две таблици, продължете с примера, като използвате таблицата PERSONAL_INFO и добавете допълнителна таблица към сместа. Да приемем, че имате таблица, наречена DISCIPLINARY_ACTION, създадена със следното изявление:

CREATE TABLE disciplinar_action (action_id int null null, employee_id int null null, коментари char (500))

Тази таблица съдържа резултатите от дисциплинарните действия на служителите на компанията. Ще забележите, че тя не съдържа информация за служителя, различна от номера на служителя. Лесно е да си представите много сценарии, където може да искате да комбинирате информация от таблиците DISCIPLINARY_ACTION и PERSONAL_INFO.

Да приемем, че сте натоварени с изготвянето на доклад, който изброява дисциплинарните действия, предприети срещу всички служители със заплата над $ 40,000. Използването на JOIN операция, в този случай е лесно. Можем да извлечем тази информация, като използваме следната команда:

SELECT personal_info.first_name, personal_info.last_name, disciplinary_action.comEMENT FROM personal_info, disciplinary_action WHERE personal_info.employee_id = disciplinary_action.employee_id И personal_info.salary> 40000

Кодът уточнява двете таблици, които искаме да се присъединят в клаузата FROM и след това включва изявление в клаузата WHERE за ограничаване на резултатите до записи, които са отговаряли на идентификационните номера на служителите и отговарят на критериите ни за заплата, по-голяма от $ 40,000.