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 колонка1, колонка2, … колонкаN 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 names
rin 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, WHERE
maaari 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 BY
at HAVING
tatalakayin 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.
GO TO FULL VERSION