Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk menunjukkan bahawa setiap penghitungan MySQL mempunyai nilai indeks?

Bagaimana untuk menunjukkan bahawa setiap penghitungan MySQL mempunyai nilai indeks?

王林
王林ke hadapan
2023-08-28 09:01:02671semak imbas

Bagaimana untuk menunjukkan bahawa setiap penghitungan MySQL mempunyai nilai indeks?

Malah, elemen yang disenaraikan dalam spesifikasi lajur ENUM diberikan nombor indeks bermula dari 1. Istilah "indeks" di sini merujuk kepada kedudukan dalam senarai nilai penghitungan, ia tidak ada kena mengena dengan indeks jadual. Dengan contoh berikut, kita boleh menunjukkan bahawa setiap penghitungan MySQL mempunyai nilai indeks -

Dengan memasukkan nombor indeks dan bukannya nilai penghitungan

Kita boleh memasukkan dalam lajur ENUM dengan memasukkan nombor indeks mereka dan bukannya menulis nilai nilai. Sebagai contoh, dalam jadual di bawah, kita mempunyai dua nilai ENUM 'lulus' dan 'gagal'. Memandangkan 'lulus' ditulis dahulu dalam senarai penghitungan, ia mendapat nombor indeks '1', dan nombor indeks 'gagal' ialah '2'. Kini, kita juga boleh memasukkan nilai dengan memasukkan nombor indeks seperti yang ditunjukkan di bawah -

mysql> Insert into marks(id,name,result)values(103,'Daksh','1');
Query OK, 1 row affected (0.06 sec)

mysql> Insert into marks(id,name,result)values(104,'Shayra','2');
Query OK, 1 row affected (0.07 sec)

mysql> Select * from marks;
+-----+---------+--------+
| id  | Name    | Result |
+-----+---------+--------+
| 101 | Aarav   | Pass   |
| 102 | Yashraj | Fail   |
| 103 | Daksh   | Pass   |
| 104 | Shayra  | Fail   |
+-----+---------+--------+
4 rows in set (0.00 sec)

Dalam pertanyaan di atas, kami telah menggunakan nombor indeks 1 dan 2 untuk mewakili nilai penghitungan lulus dan gagal masing-masing.

Dengan memasukkan rentetan kosong dan bukannya nilai penghitungan

Nilai indeks rentetan kosong ialah 0. Mod SQL tidak boleh TRADITIONAL, STRICT_TRANS_TABLES atau STRICT_ALL_TABLES sebelum memasukkan rentetan kosong. Kita boleh memahaminya dengan contoh berikut −

mysql> SET SESSION sql_mode = '';
Query OK, 0 rows affected (0.00 sec)

mysql> Insert into marks(id, name, result) values(105,'Yashraj','');
Query OK, 1 row affected, 1 warning (0.06 sec)

Pertanyaan di atas akan memasukkan rentetan kosong pada kedudukan nilai enum. MySQL memasukkan rentetan kosong dengan amaran berikut.

mysql> Show warnings;
+---------+------+---------------------------------------------+
| Level   | Code | Message                                     |
+---------+------+---------------------------------------------+
| Warning | 1265 | Data truncated for column 'Result' at row 1 |
+---------+------+---------------------------------------------+
1 row in set (0.00 sec)

Sekarang apabila kita memeriksa jadual, kita dapat melihat bahawa terdapat rentetan kosong dalam medan ENUM.

mysql> Select * from marks;
+-----+---------+--------+
| id  | Name    | Result |
+-----+---------+--------+
| 101 | Aarav   | Pass   |
| 102 | Yashraj | Fail   |
| 103 | Daksh   | Pass   |
| 104 | Shayra  | Fail   |
| 105 | Yash    |        |
+-----+---------+--------+
5 rows in set (0.00 sec)

mysql> Select result+0 As result_index from marks;
+--------------+
| result_index |
+--------------+
| 1            |
| 2            |
| 1            |
| 2            |
| 0            |
+--------------+
5 rows in set (0.01 sec)
From the output of above query, it is clear that the index value of the empty string is 0.

Dengan memasukkan NULL dan bukannya nilai enumerasi

Kami boleh memasukkan NULL di tempat nilai enumerasi kerana kami tidak menyatakan NOT NULL untuk lajur ENUM. Nilai indeks NULL ialah NULL. Sebagai contoh, dengan bantuan pertanyaan berikut, kami memasukkan NULL dalam lajur enum "hasil" jadual dan boleh menyemak nilai indeksnya.

mysql> Create table result(Id INT PRIMARY KEY NOT NULL, Name Varchar(10), GradeENUM('POOR','GOOD'));
Query OK, 0 rows affected (0.25 sec)

mysql> Insert into result(id, name, grade) values(100, 'Rahul', NULL);
Query OK, 1 row affected (0.06 sec)

Pertanyaan di atas memasukkan nilai NULL pada kedudukan nilai penghitungan, yang boleh disemak menggunakan pertanyaan bantuan berikut -

mysql> Select * from result;
+-----+-------+-------+
| Id  | Name  | Grade |
+-----+-------+-------+
| 100 | Rahul | NULL  |
+-----+-------+-------+
1 row in set (0.00 sec)

Kini, dengan bantuan pertanyaan seterusnya, kita dapat melihat bahawa nilai indeks NULL ialah NULL.

rreeee

Atas ialah kandungan terperinci Bagaimana untuk menunjukkan bahawa setiap penghitungan MySQL mempunyai nilai indeks?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Artikel sebelumnya:Gesaan pelanggan MySQLArtikel seterusnya:Gesaan pelanggan MySQL