2.1 Pengenalan kepada SQL

Jika anda mempunyai pangkalan data (DB), dan di dalamnya - jadual dengan beberapa data, maka tugas yang paling biasa ialah mencari data tertentu dalam jadual ini. Itulah yang dicipta SQL selama 40 tahun yang lalu.

SQL adalah singkatan dari Structured Query Language .

Pertanyaan SQL yang paling mudah kelihatan seperti ini:

SELECT column1, column2, … columnN FROM table

Katakan anda mempunyai jadual pekerja dengan senarai pekerja permulaan anda:

ID nama pekerjaan gaji umur tarikh menyertai
1 Ivanov Ivan Pengaturcara 100,000 25 30-06-2012
2 Petrov Petr Pengaturcara 80,000 23 2013-08-12
3 Ivanov Sergey Penguji 40,000 tiga puluh 2014-01-01
4 Rabinovich Moisha Pengarah 200,000 35 12-05-2015
5 Kirienko Anastasia Pengurus pejabat 40,000 25 2015-10-10
6 Vaska kucing 1,000 3 2018-01-01

Anda ingin menulis pertanyaan yang akan memaparkannya employee namesjuga salaries, maka anda perlu menulis pertanyaan:

SELECT name, salary FROM employee

Anda akan mendapat hasil pertanyaan:

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

Jika anda ingin memaparkan semua lajur jadual anda , maka bukannya menyenaraikan nama semua lajur, anda hanya boleh menulis asterisk. Contoh:

SELECT * FROM employee

Anda akan mendapat hasil pertanyaan:

ID nama pekerjaan gaji umur tarikh menyertai
1 Ivanov Ivan Pengaturcara 100,000 25 30-06-2012
2 Petrov Petr Pengaturcara 80,000 23 2013-08-12
3 Ivanov Sergey Penguji 40,000 tiga puluh 2014-01-01
4 Rabinovich Moisha Pengarah 200,000 35 12-05-2015
5 Kirienko Anastasia Pengurus pejabat 40,000 25 2015-10-10
6 Vaska kucing 1,000 3 2018-01-01

2.2 Pandangan lanjutan bagi pertanyaan SQL

Bahasa SQL telah direka sebagai mesra pengguna yang mungkin.

Pertama, kes teks permintaan tidak penting . Anda boleh menulis PILIH, Pilih, atau pilih dan semuanya akan berfungsi. Kedua, pemisah baris tidak diambil kira dalam apa jua cara . DBMS masih akan mengubah pertanyaan menjadi satu rentetan panjang, jadi anda boleh menulisnya mengikut cara yang anda suka.

Seperti yang anda mungkin sudah meneka, kata kunci SELECT dan FROM tidak terhad. Jika tidak, tidak akan ada banyak perbincangan mengenai SQL. Pandangan lanjutan bagi pertanyaan SQL kelihatan seperti ini:

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

Dengan bantuan kata kunci, WHEREanda boleh menetapkan syarat / penapis untuk baris yang dipilih.

Contoh 1 . Mari tulis pertanyaan yang akan memilih pekerja dengan profesion "Programmer":

SELECT * FROM employee WHERE occupation = 'Programmer'

Dan kami mendapat hasil pertanyaan berikut:

ID nama pekerjaan gaji umur tarikh menyertai
1 Ivanov Ivan Pengaturcara 100,000 25 30-06-2012
2 Petrov Petr Pengaturcara 80,000 23 2013-08-12

Seperti yang anda lihat, hasil daripada pelaksanaan pertanyaan, hanya baris di mana profesion pekerja dipanggil "Programmer" dipaparkan.

Kata kunci GROUP BY, ORDER BYdan HAVINGkami akan kupas dalam kuliah seterusnya. Dan dalam hal ini kita akan menganalisis beberapa lagi contoh dengan perkataan WHERE.

Contoh 2 . Sekarang mari kita tulis pertanyaan yang akan menunjukkan kepada kita semua pekerja dengan gaji lebih daripada 100K. Begini rupanya:

SELECT * FROM employee WHERE salary > 100000

Kami mendapat hasil pertanyaan berikut:

ID nama pekerjaan gaji umur tarikh menyertai
4 Rabinovich Moisha Pengarah 200,000 35 12-05-2015

Contoh 3 . Sekarang mari kita cuba sesuatu yang lebih sukar. Bagaimana untuk memaparkan semua pekerja yang diambil bekerja pada tahun 2015? Dan seperti ini:

SELECT * FROM employee WHERE YEAR(join_date) = 2015

Kami mendapat hasil pertanyaan berikut:

ID nama pekerjaan gaji umur tarikh menyertai
4 Rabinovich Moisha Pengarah 200,000 35 12-05-2015
5 Kirienko Anastasia Pengurus pejabat 40,000 25 2015-10-10

Dalam pertanyaan ini, kami menggunakan fungsi khas YEAR()yang membolehkan kami mendapatkan tahun daripada tarikh dan kemudian membandingkan tahun tarikh dengan nombor 2015.

2.3 Ulasan dalam pertanyaan SQL

Dan satu lagi perkara penting ialah ulasan dalam pertanyaan SQL. Komen adalah perkara yang sangat berguna. Pertama, anda boleh menulis penjelasan dan / atau idea anda di dalamnya. Kedua, dengan bantuan komen, anda boleh melumpuhkan kod yang rosak. Atau ulas versi lama kod tersebut.

SQL, seperti Java, mempunyai komen satu baris dan berbilang baris. Lebih-lebih lagi, komen berbilang baris kelihatan seperti di Jawa. Penampilannya:


/*
 	comment text
 	comment text
 	comment text
*/
        

Sudah tentu, ia boleh digunakan dalam satu baris juga. Contoh:


/*comment text*/
        

Terdapat juga jenis komen "dari awal hingga akhir baris", serupa dengan Java "//". Hanya dalam SQL anda perlu menulis dua aksara tolak dan ruang . Pandangan umum mengenai ulasan sedemikian:

-- comment text

Contoh:


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

Dalam contoh di atas, kami mengulas keadaan pertanyaan, jadi MySQL hanya akan melaksanakan pertanyaan:

SELECT * FROM employee

2.4 Sebutan SQL

Jika anda berkomunikasi dengan pelanggan asing atau lulus temu duga dalam talian untuk syarikat Amerika, maka anda mungkin ditanya tentang pengalaman anda dengan bahasa sekuel . Anda akan dengan jujur ​​mengatakan bahawa anda tidak bekerja dengannya dan segera gagal temu duga.

Dan masalahnya ialah bahasa SQL pada asalnya dipanggil SEQUEL, yang disebut seperti sekuel (ˈsēkwəl), jadi selalunya di AS dan sumber bahasa Inggeris lain anda tidak akan mendengar "escuel", tetapi "sequel". SQL ditulis, dan sekuelnya dibaca. Inilah paradoks sejarah sedemikian.