2.1 Въведение в SQL

Ако имате база данни (DB), а в нея - table с някои данни, тогава най-честата задача е да намерите определени данни в тази table. За това е изобретен SQL преди 40 години.

SQL означава език за структурирани заявки .

Най-простата SQL заявка изглежда така:

SELECT column1, column2, … columnN FROM table

Да приемем, че имате table на служителите със списък на служителите на вашия стартъп:

document за самоличност име професия заплата възраст дата на присъединяване
1 Ivanов Ivan Програмист 100 000 25 2012-06-30
2 Peterов Петър Програмист 80 000 23 2013-08-12
3 Ivanов Сергей Тестер 40 000 тридесет 2014-01-01
4 Рабинович Мойша Директор 200 000 35 2015-05-12
5 Кириенко Анастасия Офис мениджър 40 000 25 2015-10-10
6 Васка котка 1000 3 2018-01-01

Искате да напишете заявка, която employee namesсъщо ще ги покаже salaries, тогава трябва да напишете заявка:

SELECT name, salary FROM employee

Ще получите резултата от заявката:

име заплата
Ivanов Ivan 100 000
Peterов Петър 80 000
Ivanов Сергей 40 000
Рабинович Мойша 200 000
Кириенко Анастасия 40 000
Васка 1000

Ако искате да покажете всички колони на вашата table , тогава instead of да изброявате имената на всички колони, можете просто да напишете звездичка. Пример:

SELECT * FROM employee

Ще получите резултата от заявката:

document за самоличност име професия заплата възраст дата на присъединяване
1 Ivanов Ivan Програмист 100 000 25 2012-06-30
2 Peterов Петър Програмист 80 000 23 2013-08-12
3 Ivanов Сергей Тестер 40 000 тридесет 2014-01-01
4 Рабинович Мойша Директор 200 000 35 2015-05-12
5 Кириенко Анастасия Офис мениджър 40 000 25 2015-10-10
6 Васка котка 1000 3 2018-01-01

2.2 Разширен изглед на SQL заявка

Езикът SQL е проектиран възможно най-удобен за потребителя.

Първо, регистърът на буквите в текста на заявката няма meaning . Можете да напишете SELECT, Select or select и всичко ще работи. Второ, прекъсванията на редовете не се вземат предвид по ниHowъв начин . СУБД пак ще превърне заявката в един дълъг низ, така че можете да я напишете, Howто искате.

Както вероятно вече се досещате, ключовите думи SELECT и FROM не са ограничени. Иначе нямаше да се говори толкова много за SQL. Разширеният изглед на SQL заявката изглежда така:

SELECT columns
FROM table
WHERE condition
GROUP BY columns
HAVING columns
ORDER BY sorting

С помощта на ключова дума WHEREможете да зададете condition / филтър за избраните редове.

Пример 1 . Нека напишем заявка, която ще избере служители с професия "Програмист":

SELECT * FROM employee WHERE occupation = 'Programmer'

И получаваме следния резултат от заявката:

document за самоличност име професия заплата възраст дата на присъединяване
1 Ivanов Ivan Програмист 100 000 25 2012-06-30
2 Peterов Петър Програмист 80 000 23 2013-08-12

Както можете да видите, в резултат на изпълнението на заявката се показват само редове, където професията на служителя се нарича "Програмист".

Ключовите думи GROUP BYще ORDER BYразгледаме HAVINGв следващите лекции. И в това ще анализираме още няколко примера с думата WHERE.

Пример 2 . Сега нека напишем заявка, която ще ни покаже всички служители със заплата, по-голяма от 100K. Ето How ще изглежда:

SELECT * FROM employee WHERE salary > 100000

Получаваме следния резултат от заявката:

document за самоличност име професия заплата възраст дата на присъединяване
4 Рабинович Мойша Директор 200 000 35 2015-05-12

Пример 3 . Сега нека опитаме нещо по-трудно. Как да покажа всички служители, които са бor наети през 2015 г.? И така:

SELECT * FROM employee WHERE YEAR(join_date) = 2015

Получаваме следния резултат от заявката:

document за самоличност име професия заплата възраст дата на присъединяване
4 Рабинович Мойша Директор 200 000 35 2015-05-12
5 Кириенко Анастасия Офис мениджър 40 000 25 2015-10-10

В тази заявка използваме специална функция YEAR(), която ни позволява да получим годината от дата и след това да сравним годината на датата с числото 2015.

2.3 Коментари в SQL заявки

И още един важен момент са коментарите в SQL заявките. Коментарите са много полезно нещо. Първо, можете да напишете обяснения и / or вашите идеи в тях. Второ, с помощта на коментари можете да деактивирате неработещия code. Или коментирайте старата version на codeа.

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


/*
 	comment text
 	comment text
 	comment text
*/
        

Разбира се, може да се използва и в един ред. Пример:


/*comment text*/
        

Има и вид коментар "от началото до края на реда", подобен на Java "//". Само в SQL трябва да напишете два знака минус и интервал . Общ изглед на такъв коментар:

-- comment text

Пример:


        SELECT * FROM employee -- WHERE YEAR(join_date) = 2015 
        

В примера по-горе коментирахме conditionто на заявката, така че MySQL ще изпълни само заявката:

SELECT * FROM employee

2.4 SQL произношение

Ако общувате с чуждестранни клиенти or преминете онлайн интервю за американска компания, тогава може да бъдете попитани за вашия опит с езика на продължението . Честно ще кажете, че не сте работor с него и веднага ще провалите интервюто.

И работата е там, че езикът SQL първоначално се наричаше SEQUEL, което се произнася като продължение (ˈsēkwəl), така че много често в САЩ и други англоезични източници ще чуете не „escuel“, а „sequel“. Пише се SQL и се чете продължението. Ето такъв исторически парадокс.