Apakah pertanyaan SELECT di MySQL?
SELECT QUERY digunakan untuk mengambil data dari pangkalan data MySQL. Pangkalan data menyimpan data untuk pengambilan kemudian. Tujuan MySQL Select adalah untuk kembali dari jadual pangkalan data, satu atau lebih baris yang sesuai dengan kriteria tertentu. Pilih pertanyaan dapat digunakan dalam bahasa skrip seperti PHP, Ruby, atau Anda dapat melaksanakannya melalui command prompt.
Sintaks pernyataan SQL SELECT
Ini adalah perintah SQL yang paling kerap digunakan dan mempunyai sintaks umum berikut
SELECT [DISTINCT|ALL ] { * | [fieldExpression [AS newName]} FROM tableName [alias] [WHERE condition][GROUP BY fieldName(s)] [HAVING condition] ORDER BY fieldName(s)SINI
- SELECT adalah kata kunci SQL yang membolehkan pangkalan data mengetahui bahawa anda ingin mengambil data.
- [JARAK | SEMUA] adalah kata kunci pilihan yang boleh digunakan untuk menyesuaikan hasil yang dikembalikan dari penyataan SQL SELECT. Sekiranya tidak ada yang ditentukan maka SEMUA dianggap sebagai lalai.
- {* | [fieldExpression [AS newName]} sekurang-kurangnya satu bahagian mesti ditentukan, "*" memilih semua medan dari nama jadual yang ditentukan, fieldExpression melakukan beberapa pengiraan pada bidang yang ditentukan seperti menambahkan nombor atau menyatukan dua medan rentetan menjadi satu.
- DARI tableName adalah wajib dan mesti mengandungi sekurang-kurangnya satu jadual, beberapa jadual mesti dipisahkan menggunakan koma atau bergabung menggunakan kata kunci JOIN.
- DI MANA keadaan adalah pilihan, ia dapat digunakan untuk menentukan kriteria dalam set hasil yang dikembalikan dari pertanyaan.
- GROUP BY digunakan untuk mengumpulkan rekod yang mempunyai nilai medan yang sama.
- Keadaan HAVING digunakan untuk menentukan kriteria ketika bekerja menggunakan kata kunci GROUP BY.
- ORDER BY digunakan untuk menentukan susunan urutan set hasil.
*
Simbol Bintang digunakan untuk memilih semua lajur dalam jadual. Contoh pernyataan PILIHAN yang sederhana kelihatan seperti yang ditunjukkan di bawah.
SELECT * FROM `members`;
Pernyataan di atas memilih semua bidang dari jadual ahli. Tanda titik koma adalah penghentian pernyataan. Tidak wajib tetapi dianggap sebagai amalan yang baik untuk mengakhiri penyataan anda seperti itu.
Contoh praktikal
Klik untuk memuat turun DB myflix yang digunakan untuk contoh praktikal.
Anda boleh belajar mengimport fail .sql ke dalam MySQL WorkBench
Contohnya dilakukan pada dua jadual berikut
Jadual 1: jadual ahli
nombor keahlian | nama penuh | jantina | tarikh lahir | alamat_ fizikal | alamat pos | nombor samb | e-mel |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Perempuan | 21-07-1980 | Petak Jalan Pertama No 4 | Beg Persendirian | 0759 253 542 | Alamat e-mel ini dilindungi dari robot spam. Anda perlu mengaktifkan JavaScript untuk melihatnya. |
2 | Janet Smith Jones | Perempuan | 23-06-1980 | Melrose 123 | BULAN | BULAN | Alamat e-mel ini dilindungi dari robot spam. Anda perlu mengaktifkan JavaScript untuk melihatnya. |
3 | Robert Phil | Lelaki | 12-07-1989 | Jalan ke-3 34 | BULAN | 12345 | Alamat e-mel ini dilindungi dari robot spam. Anda perlu mengaktifkan JavaScript untuk melihatnya. |
4 | Gloria Williams | Perempuan | 14-02-1984 | Jalan ke-2 23 | BULAN | BULAN | BULAN |
Jadual 2: jadual filem
filem_id | tajuk | pengarah | tahun_dikeluarkan | kategori_id |
---|---|---|---|---|
1 | Lanun dari Caribean 4 | Rob Marshall | 2011 | 1 |
2 | Melupakan Sarah Marshal | Nicholas Stoller | 2008 | 2 |
3 | X-Lelaki | BULAN | 2008 | BULAN |
4 | Nama Kod Hitam | Edgar Jimz | 2010 | BULAN |
5 | Gadis Kecil Ayah | BULAN | 2007 | 8 |
6 | Malaikat dan Syaitan | BULAN | 2007 | 6 |
7 | Kod Davinci | BULAN | 2007 | 6 |
9 | Bulan madu | John Schultz | 2005 | 8 |
16 | 67% Bersalah | BULAN | 2012 | BULAN |
Mendapatkan senarai ahli
Anggaplah bahawa kita ingin mendapatkan senarai semua ahli perpustakaan yang berdaftar dari pangkalan data kita, kita akan menggunakan skrip yang ditunjukkan di bawah untuk melakukannya.
SELECT * FROM `members`;
Melaksanakan skrip di atas di meja kerja MySQL menghasilkan hasil berikut.
nombor keahlian | nama penuh | jantina | tarikh lahir | alamat_ fizikal | alamat pos | nombor samb | e-mel |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Perempuan | 21-07-1980 | Petak Jalan Pertama No 4 | Beg Persendirian | 0759 253 542 | Alamat e-mel ini dilindungi dari robot spam. Anda perlu mengaktifkan JavaScript untuk melihatnya. |
2 | Janet Smith Jones | Perempuan | 23-06-1980 | Melrose 123 | BULAN | BULAN | Alamat e-mel ini dilindungi dari robot spam. Anda perlu mengaktifkan JavaScript untuk melihatnya. |
3 | Robert Phil | Lelaki | 12-07-1989 | Jalan ke-3 34 | BULAN | 12345 | Alamat e-mel ini dilindungi dari robot spam. Anda perlu mengaktifkan JavaScript untuk melihatnya. |
4 | Gloria Williams | Perempuan | 14-02-1984 | Jalan ke-2 23 | BULAN | BULAN | BULAN |
Pertanyaan kami di atas telah mengembalikan semua baris dan lajur dari jadual ahli.
Katakan kita hanya berminat mendapatkan hanya nama penuh, jantina, alamat_ fizikal dan e-mel sahaja. Skrip berikut akan membantu kita mencapainya.
SELECT `full_names`,`gender`,`physical_address`, `email` FROM `members`;
Melaksanakan skrip di atas di meja kerja MySQL menghasilkan hasil berikut.
nama penuh | jantina | alamat_ fizikal | e-mel |
---|---|---|---|
Janet Jones | Perempuan | Petak Jalan Pertama No 4 | Alamat e-mel ini dilindungi dari robot spam. Anda perlu mengaktifkan JavaScript untuk melihatnya. |
Janet Smith Jones | Perempuan | Melrose 123 | Alamat e-mel ini dilindungi dari robot spam. Anda perlu mengaktifkan JavaScript untuk melihatnya. |
Robert Phil | Lelaki | Jalan ke-3 34 | Alamat e-mel ini dilindungi dari robot spam. Anda perlu mengaktifkan JavaScript untuk melihatnya. |
Gloria Williams | Perempuan | Jalan ke-2 23 | BULAN |
Mendapatkan senarai filem
Ingatlah dalam perbincangan di atas bahawa kita menyebut ungkapan telah digunakan dalam pernyataan SELECT. Katakan kita mahu mendapatkan senarai filem dari pangkalan data kita. Kami mahu tajuk filem dan nama pengarah filem dalam satu bidang. Nama pengarah filem harus dalam tanda kurung. Kami juga ingin mendapatkan tahun filem ini dilancarkan. Skrip berikut membantu kita melakukannya.
SELECT Concat(`title`, ' (', `director`, ')') , `year_released` FROM `movies`;
SINI
- Fungsi Concat () MySQL digunakan menggabungkan nilai lajur bersama-sama.
- Baris "Concat (` title`, '(', `director ',') ') mendapat tajuk, menambah tanda kurung pembuka diikuti dengan nama pengarah kemudian menambahkan tanda kurung penutup.
Bahagian rentetan dipisahkan menggunakan koma dalam fungsi Concat ().
Menjalankan skrip di atas di MySQL workbench menghasilkan set hasil berikut.
Concat ("tajuk", "('," pengarah ",") ") | tahun_dikeluarkan |
---|---|
Pirates of the Caribean 4 (Rob Marshall) | 2011 |
Melupakan Sarah Marshal (Nicholas Stoller) | 2008 |
BULAN | 2008 |
Nama Kod Hitam (Edgar Jimz) | 2010 |
BULAN | 2007 |
BULAN | 2007 |
BULAN | 2007 |
Bulan madu (John Schultz) | 2005 |
BULAN | 2012 |
Nama bidang Alias
Contoh di atas mengembalikan kod Gabungan sebagai nama bidang untuk hasil kami. Andaikan kita mahu menggunakan nama bidang yang lebih deskriptif dalam set hasil kita. Kami akan menggunakan nama alias lajur untuk mencapainya. Berikut adalah sintaks asas untuk nama alias lajur
SELECT `column_name|value|expression` [AS] `alias_name`;
SINI
- "SELECT` column_name | value | expression "" adalah pernyataan SELECT biasa yang dapat berupa nama, nilai atau ekspresi lajur.
- "[AS]" adalah kata kunci pilihan sebelum nama alias yang menunjukkan ungkapan, nilai atau nama bidang akan dikembalikan sebagai.
- "` alias_name` " adalah nama alias yang ingin kami kembalikan dalam hasil kami yang ditetapkan sebagai nama medan.
Pertanyaan di atas dengan nama lajur yang lebih bermakna
SELECT Concat(`title`, ' (', `director`, ')') AS 'Concat', `year_released` FROM `movies`;
Kami mendapat hasil berikut
Concat | tahun_dikeluarkan |
---|---|
Pirates of the Caribean 4 (Rob Marshall) | 2011 |
Melupakan Sarah Marshal (Nicholas Stoller) | 2008 |
BULAN | 2008 |
Nama Kod Hitam (Edgar Jimz) | 2010 |
BULAN | 2007 |
BULAN | 2007 |
BULAN | 2007 |
Bulan madu (John Schultz) | 2005 |
BULAN | 2012 |
Mendapatkan senarai ahli yang menunjukkan tahun kelahiran
Andaikan kita ingin mendapatkan senarai semua ahli yang menunjukkan nombor keahlian, nama penuh dan tahun lahir, kita boleh menggunakan fungsi rentetan KIRI untuk mengekstrak tahun kelahiran dari tarikh lahir. Skrip yang ditunjukkan di bawah ini membantu kita untuk melakukannya.
SELECT `membership_number`,`full_names`,LEFT(`date_of_birth`,4) AS `year_of_birth` FROM members;
SINI
- "LEFT (` date_of_birth`, 4) " yang fungsi tali KIRI menerima tarikh lahir sebagai parameter dan hanya mengembalikan 4 aksara dari kiri.
- "AS` year_of_birth` " adalah nama alias lajur yang akan dikembalikan dalam hasil kami. Perhatikan kata kunci AS adalah pilihan , anda boleh membiarkannya dan pertanyaan masih akan berfungsi.
Menjalankan pertanyaan di atas di MySQL workbench terhadap myflixdb memberikan hasil yang ditunjukkan di bawah.
nombor keahlian | nama penuh | tahun kelahiran |
---|---|---|
1 | Janet Jones | 1980 |
2 | Janet Smith Jones | 1980 |
3 | Robert Phil | 1989 |
4 | Gloria Williams | 1984 |
SQL menggunakan MySQL Workbench
Kami sekarang akan menggunakan meja kerja MySQL untuk menghasilkan skrip yang akan memaparkan semua nama bidang dari jadual kategori kami.
1. Klik kanan pada Jadual Kategori. Klik pada "Pilih Baris - Had 1000"
2. MySQL workbench secara automatik akan membuat pertanyaan SQL dan tampal di editor.
3. Hasil Pertanyaan akan ditunjukkan
Perhatikan bahawa kita sendiri tidak menulis pernyataan SELECT. Meja kerja MySQL menghasilkannya untuk kita.
Mengapa menggunakan perintah SELECT SQL ketika kita mempunyai MySQL Workbench?
Sekarang, anda mungkin berfikir mengapa mempelajari perintah SQL SELECT untuk meminta data dari pangkalan data apabila anda hanya dapat menggunakan alat seperti meja kerja MySQL untuk mendapatkan hasil yang sama tanpa pengetahuan bahasa SQL. Sudah tentu itu mungkin, tetapi belajar bagaimana menggunakan perintah SELECT memberi anda lebih banyak fleksibiliti dan kawalan terhadap pernyataan SQL SELECT anda .
Meja kerja MySQL termasuk dalam kategori alat " Query by Contoh " QBE. Ini bertujuan untuk membantu menghasilkan pernyataan SQL dengan lebih cepat untuk meningkatkan produktiviti pengguna.
Mempelajari perintah SQL SELECT dapat membolehkan anda membuat pertanyaan kompleks yang tidak dapat dihasilkan dengan mudah menggunakan utiliti Query by Contoh seperti MySQL workbench.
Untuk meningkatkan produktiviti anda boleh menghasilkan kod menggunakan meja kerja MySQL kemudian sesuaikannya untuk memenuhi keperluan anda . Ini hanya boleh berlaku sekiranya anda memahami bagaimana penyataan SQL berfungsi!
Ringkasan
- Kata kunci SQL SELECT digunakan untuk meminta data dari pangkalan data dan ini adalah perintah yang paling biasa digunakan.
- Bentuk paling mudah mempunyai sintaks "SELECT * FROM tableName;"
- Ungkapan juga boleh digunakan dalam pernyataan pilih. Contoh "PILIH kuantiti + harga DARI Jualan"
- Perintah SQL SELECT juga boleh mempunyai parameter pilihan lain seperti WHERE, GROUP BY, HAVING, ORDER BY. Mereka akan dibincangkan kemudian.
- Meja kerja MySQL dapat membantu mengembangkan pernyataan SQL, melaksanakannya dan menghasilkan hasil output pada tetingkap yang sama.