我是 mySQL 的新手。我正在按照Mosh 的教程來熟悉 SQL。
這是我對以下代碼的問題。
SELECT *
FROM order_items
WHERE order_id = 6 AND unit_price*quantity > 30
當我查找 a??bout 時SELECT *,它說:*意味著回傳查詢表的所有列。然后我認為這SELECT *意味著它從所有模式中獲取所有表。
我的問題是:如果我的理解是正確的,回傳所有列是不是有點低效和混亂?如果資料庫越來越大,查找關鍵字會消耗不必要的精力,所以我認為SELECT應該指定它所指的表。謝謝閱讀!??
uj5u.com熱心網友回復:
SELECT *不會從所有模式中獲取所有表。它只從您在FROM子句中參考的表中獲取列。它只獲取與您的WHERE子句匹配的行。
鑒于 MySQL 檔案中的以下宣告,該錯誤是可以理解的:
僅包含一個非限定 * 的選擇串列可用作從所有表中選擇所有列的簡寫:
SELECT * FROM t1 INNER JOIN t2 ...
它們所說的“所有表”僅指此查詢中參考的所有表。并且只有在FROMorJOIN子句中的那些。并非所有的桌子都無處不在。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/318717.html
上一篇:如何在codeigniter中為同一列創建MULTIPLELIKE查詢?
下一篇:準備好的陳述句不使用預期的索引
