Mendapatkan Data Dengan Pertanyaan SQL: Memperkenalkan Kenyataan PILIH

Language Query Structured menawarkan pengguna database mekanisme pengambilan data yang kuat dan fleksibel - pernyataan SELECT. Dalam artikel ini, kami akan melihat bentuk umum pernyataan SELECT dan menyusun beberapa pertanyaan pangkalan data sampel bersama-sama. Sekiranya ini merupakan perjumpaan pertama anda ke dalam dunia Bahasa Permintaan Terstruktur, anda mungkin ingin mengkaji semula artikel SQL Fundamentals sebelum meneruskan.

Sekiranya anda ingin merangka pangkalan data baru dari awal, artikel Membuat Pangkalan Data dan Jadual dalam SQL harus membuktikan titik melompat yang baik.

Sekarang bahawa anda telah menyandarkan asas-asas, mari kita mulakan penerokaan pernyataan SELECT. Seperti pelajaran SQL sebelumnya, kami akan terus menggunakan kenyataan yang mematuhi standard ANSI SQL. Anda mungkin ingin merujuk dokumentasi untuk DBMS anda untuk menentukan sama ada ia menyokong pilihan lanjutan yang boleh meningkatkan kecekapan dan / atau keberkesanan kod SQL anda.

Borang Umum Penyata SELECT

Bentuk umum dari pernyataan SELECT muncul di bawah:

Pilih select_list
DARIPADA sumber
Keadaan WHERE
GROUP BY expression
HAVING condition
ORDER BY expression

Baris pertama pernyataan memberitahu pemproses SQL bahawa arahan ini adalah pernyataan SELECT dan kami ingin mendapatkan maklumat dari pangkalan data. The select_list membolehkan kami menentukan jenis maklumat yang kami ingin dapatkan.

Fasal FROM dalam baris kedua menentukan jadual pangkalan data khusus yang terlibat dan klausa WHERE memberikan kita keupayaan untuk menghadkan hasil kepada rekod yang memenuhi syarat yang ditetapkan. Tiga klausa terakhir mewakili ciri canggih di luar skop artikel ini - kami akan meneroka mereka dalam artikel SQL yang akan datang.

Cara paling mudah untuk mempelajari SQL adalah dengan contoh. Dengan itu, mari kita lihat beberapa pertanyaan pangkalan data. Sepanjang artikel ini, kami akan menggunakan jadual pekerja dari pangkalan data sumber manusia XYZ Corporation fiksyen untuk menggambarkan semua pertanyaan kami. Inilah jadual keseluruhan:

ID pekerja

Nama terakhir

Nama pertama

Gaji

ReportsTo

1

Smith

John

32000

2

2

Scampi

Sue

45000

NULL

3

Kendall

Tom

29500

2

4 Jones Abraham 35000 2
5 Allen Rang Undang-Undang 17250 4
6 Reynolds Allison 19500 4
7 Johnson Katie 21000 3

Mengambil Jadual Keseluruhan

Pengarah Sumber Manusia XYZ Corporation menerima laporan bulanan yang menyediakan maklumat gaji dan pelaporan bagi setiap pekerja syarikat. Penjanaan laporan ini adalah contoh bentuk mudah pernyataan SELECT. Ia hanya mengambil semua maklumat yang terdapat dalam jadual pangkalan data - setiap lajur dan setiap baris. Inilah pertanyaan yang akan mencapai keputusan ini:

PILIH *
DARI pekerja

Cukup mudah, kan? Asterisk (*) yang terdapat dalam select_list adalah kad liar yang digunakan untuk memaklumkan pangkalan data yang kami ingin mendapatkan maklumat dari semua lajur dalam jadual pekerja yang dikenal pasti dalam klausa FROM. Kami ingin mendapatkan semua maklumat dalam pangkalan data, jadi tidak perlu menggunakan klausa WHERE untuk menyekat baris-baris yang dipilih dari jadual.

Inilah hasil carian pertanyaan kami:

ID pekerja Nama terakhir Nama pertama Gaji ReportsTo
---------- -------- --------- ------ ---------
1 Smith John 32000 2
2 Scampi Sue 45000 NULL
3 Kendall Tom 29500 2
4 Jones Abraham 35000 2
5 Allen Rang Undang-Undang 17250 4
6 Reynolds Allison 19500 4
7 Johnson Katie 21000 3