2.1 Panimula sa SQL

Kung mayroon kang isang database (DB), at sa loob nito - isang talahanayan na may ilang data, kung gayon ang pinakakaraniwang gawain ay ang paghahanap ng ilang data sa talahanayang ito. Iyan ang naimbento ng SQL 40 taon na ang nakakaraan.

Ang SQL ay nangangahulugang Structured Query Language .

Ang pinakasimpleng query sa SQL ay ganito ang hitsura:

SELECT column1, column2, … columnN FROM table

Sabihin nating mayroon kang talahanayan ng empleyado na may listahan ng mga empleyado ng iyong startup:

id pangalan hanapbuhay suweldo edad Sumali sa date
1 Ivanov Ivan Programmer 100,000 25 2012-06-30
2 Petrov Petr Programmer 80,000 23 2013-08-12
3 Ivanov Sergey Tester 40,000 tatlumpu 2014-01-01
4 Rabinovich Moisha Direktor 200,000 35 2015-05-12
5 Kirienko Anastasia Tagapamahala ng Opisina 40,000 25 2015-10-10
6 Vaska pusa 1,000 3 2018-01-01

Gusto mong magsulat ng query na magpapakita employee namesrin sa kanila salaries, pagkatapos ay kailangan mong magsulat ng query:

SELECT name, salary FROM employee

Makukuha mo ang resulta ng query:

pangalan suweldo
Ivanov Ivan 100,000
Petrov Petr 80,000
Ivanov Sergey 40,000
Rabinovich Moisha 200,000
Kirienko Anastasia 40,000
Vaska 1,000

Kung gusto mong ipakita ang lahat ng column ng iyong table , sa halip na ilista ang mga pangalan ng lahat ng column, maaari kang sumulat lang ng asterisk. Halimbawa:

SELECT * FROM employee

Makukuha mo ang resulta ng query:

id pangalan hanapbuhay suweldo edad Sumali sa date
1 Ivanov Ivan Programmer 100,000 25 2012-06-30
2 Petrov Petr Programmer 80,000 23 2013-08-12
3 Ivanov Sergey Tester 40,000 tatlumpu 2014-01-01
4 Rabinovich Moisha Direktor 200,000 35 2015-05-12
5 Kirienko Anastasia Tagapamahala ng Opisina 40,000 25 2015-10-10
6 Vaska pusa 1,000 3 2018-01-01

2.2 Advanced na view ng SQL query

Ang wikang SQL ay idinisenyo bilang user-friendly hangga't maaari.

Una, hindi mahalaga ang kaso ng text ng kahilingan . Maaari mong isulat ang SELECT, Select, o select at lahat ay gagana. Pangalawa, ang mga line break ay hindi isinasaalang-alang sa anumang paraan . Gagawin pa rin ng DBMS ang query sa isang mahabang string, para maisulat mo ito kahit anong gusto mo.

Tulad ng malamang na nahulaan mo na, ang SELECT at FROM na mga keyword ay hindi limitado. Kung hindi, walang masyadong pag-uusapan sa SQL. Ang pinalawak na view ng SQL query ay ganito ang hitsura:

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

Sa tulong ng isang keyword, WHEREmaaari kang magtakda ng kundisyon / filter para sa mga napiling row.

Halimbawa 1 . Sumulat tayo ng isang query na pipili ng mga empleyado na may propesyon na "Programmer":

SELECT * FROM employee WHERE occupation = 'Programmer'

At makuha namin ang sumusunod na resulta ng query:

id pangalan hanapbuhay suweldo edad Sumali sa date
1 Ivanov Ivan Programmer 100,000 25 2012-06-30
2 Petrov Petr Programmer 80,000 23 2013-08-12

Tulad ng nakikita mo, bilang isang resulta ng pagpapatupad ng query, ang mga hilera lamang kung saan ang propesyon ng empleyado ay tinatawag na "Programmer" ang ipinapakita.

Ang mga keyword GROUP BY, ORDER BYat HAVINGtatalakayin natin sa susunod na mga lektura. At dito ay susuriin natin ang ilang higit pang mga halimbawa na may salitang SAAN.

Halimbawa 2 . Ngayon, magsulat tayo ng query na magpapakita sa ating lahat ng empleyado na may suweldong higit sa 100K. Narito ang magiging hitsura nito:

SELECT * FROM employee WHERE salary > 100000

Nakukuha namin ang sumusunod na resulta ng query:

id pangalan hanapbuhay suweldo edad Sumali sa date
4 Rabinovich Moisha Direktor 200,000 35 2015-05-12

Halimbawa 3 . Ngayon subukan natin ang isang bagay na mas mahirap. Paano ipapakita ang lahat ng empleyadong natanggap noong 2015? At tulad nito:

SELECT * FROM employee WHERE YEAR(join_date) = 2015

Nakukuha namin ang sumusunod na resulta ng query:

id pangalan hanapbuhay suweldo edad Sumali sa date
4 Rabinovich Moisha Direktor 200,000 35 2015-05-12
5 Kirienko Anastasia Tagapamahala ng Opisina 40,000 25 2015-10-10

Sa query na ito, gumagamit kami ng isang espesyal na function YEAR()na nagbibigay-daan sa amin upang makuha ang taon mula sa isang petsa at pagkatapos ay ihambing ang taon ng petsa sa numerong 2015.

2.3 Mga komento sa mga query sa SQL

At ang isa pang mahalagang punto ay ang mga komento sa mga query sa SQL. Ang mga komento ay isang napaka-kapaki-pakinabang na bagay. Una, maaari kang magsulat ng mga paliwanag at / o ang iyong mga ideya sa mga ito. Pangalawa, sa tulong ng mga komento, maaari mong i-disable ang sirang code. O magkomento sa lumang bersyon ng code.

Ang SQL, tulad ng Java, ay may single-line at multi-line na mga komento. Bukod dito, ang isang multi-line na komento ay mukhang katulad sa Java. Ang hitsura nito:


/*
 	comment text
 	comment text
 	comment text
*/
        

Siyempre, maaari rin itong gamitin sa isang linya. Halimbawa:


/*comment text*/
        

Mayroon ding isang uri ng komento "mula sa simula hanggang sa dulo ng linya", katulad ng Java "//". Sa SQL lamang kailangan mong magsulat ng dalawang minus na character at isang puwang . Pangkalahatang view ng naturang komento:

-- comment text

Halimbawa:


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

Sa halimbawa sa itaas, nagkomento kami sa kondisyon ng query, kaya ang MySQL ay isasagawa lamang ang query:

SELECT * FROM employee

2.4 SQL pagbigkas

Kung nakikipag-ugnayan ka sa mga dayuhang customer o pumasa sa isang online na panayam para sa isang Amerikanong kumpanya, maaaring tanungin ka tungkol sa iyong karanasan sa sumunod na wika . Sasabihin mo nang totoo na hindi ka nakatrabaho sa kanya at agad na nag-fluck sa interbyu.

At ang bagay ay ang wikang SQL ay orihinal na tinatawag na SEQUEL, na binibigkas tulad ng isang sumunod na pangyayari (ˈsēkwəl), kaya napakadalas sa USA at iba pang mga mapagkukunan sa wikang Ingles ang maririnig mo hindi "escuel", ngunit "sequel". Ang SQL ay nakasulat, at ang sumunod na pangyayari ay binasa. Narito ang isang makasaysayang kabalintunaan.