在建立 MySQL 檢視時,如何使用邏輯運算子?


MySQL 檢視可以使用 AND、OR 和 NOT 等邏輯運算子建立。以下示例可以說明這一點:

使用 AND 運算子的檢視

眾所周知,邏輯 AND 運算子比較兩個表示式,如果兩個表示式都為真,則返回真。在以下示例中,我們建立了一個基於“AND”運算子的條件檢視。

示例

基礎表為 Student_info,包含以下資料:

mysql> Select * from Student_info;
+------+---------+------------+------------+
| id   | Name    | Address    | Subject    |
+------+---------+------------+------------+
| 101  | YashPal | Amritsar   | History    |
| 105  | Gaurav  | Chandigarh | Literature |
| 125  | Raman   | Shimla     | Computers  |
| 130  | Ram     | Jhansi     | Computers  |
| 132  | Shyam   | Chandigarh | Economics  |
| 133  | Mohan   | Delhi      | Computers  |
+------+---------+------------+------------+
6 rows in set (0.00 sec)

mysql> Create or Replace View Info AS select ID, Name, Address , Subject FROM Student_info WHERE (Subject = 'Computers' AND ADDRESS = 'DELHI');
Query OK, 0 rows affected (0.13 sec)

mysql> Select * from Info;
+------+-------+---------+-----------+
| ID   | Name  | Address | Subject   |
+------+-------+---------+-----------+
| 133  | Mohan | Delhi   | Computers |
+------+-------+---------+-----------+
1 row in set (0.00 sec)

使用 OR 運算子的檢視

眾所周知,邏輯 OR 運算子比較兩個表示式,如果至少一個表示式為真,則返回真。在以下示例中,我們建立了一個基於“OR”運算子的條件檢視。

示例

mysql> Create or Replace View Info AS select ID, Name, Address , Subject FROM Student_info WHERE (Subject = 'Computers' OR ADDRESS = 'Amritsar');
Query OK, 0 rows affected (0.06 sec)

mysql> Select * from Info;
+------+---------+----------+-----------+
| ID   | Name    | Address  | Subject   |
+------+---------+----------+-----------+
| 101  | YashPal | Amritsar | History   |
| 125  | Raman   | Shimla   | Computers |
| 130  | Ram     | Jhansi   | Computers |
| 133  | Mohan   | Delhi    | Computers |
+------+---------+----------+-----------+
4 rows in set (0.00 sec)

使用 NOT 運算子的檢視

NOT 是唯一一個只接受一個運算元的運算子。如果運算元為 TRUE,則返回 0;如果運算元為 FALSE,則返回 1。在以下示例中,我們建立了一個基於“NOT”運算子的條件檢視。

示例

mysql> Create or Replace View Info AS select ID, Name, Address , Subject FROM Student_info WHERE Subject != 'Computers';
Query OK, 0 rows affected (0.06 sec)

mysql> Select * from info;
+------+---------+------------+------------+
| ID   | Name    | Address    | Subject    |
+------+---------+------------+------------+
| 101  | YashPal | Amritsar   | History    |
| 105  | Gaurav  | Chandigarh | Literature |
| 132  | Shyam   | Chandigarh | Economics  |
+------+---------+------------+------------+
3 rows in set (0.00 sec)

更新於:2020年6月22日

173 次瀏覽

啟動你的職業生涯

透過完成課程獲得認證

開始學習
廣告