我打掃了我的SQL知識並一直在審查各種教程。其中第一個教程演示瞭如何使用計數表中的行數:SQL語法理論
SELECT COUNT(*) FROM table
此前雖然,教程演示返回所有從一個表中的行和列的使用:
SELECT * FROM table
那麼,爲什麼不COUNT(*)返回表中的「單元格」的總數?例如,一個三列五行的表格有十五個「單元格」。 COUNT(*)似乎應該返回十五而不是五。
我打掃了我的SQL知識並一直在審查各種教程。其中第一個教程演示瞭如何使用計數表中的行數:SQL語法理論
SELECT COUNT(*) FROM table
此前雖然,教程演示返回所有從一個表中的行和列的使用:
SELECT * FROM table
那麼,爲什麼不COUNT(*)返回表中的「單元格」的總數?例如,一個三列五行的表格有十五個「單元格」。 COUNT(*)似乎應該返回十五而不是五。
單元格不是很有趣,行數是,要查找單元格,您只需按數字列多個單元格。
SELECT * FROM TABLE
將返回所有的行,如果您有1000萬,並且所有您想要的是計數,您不希望獲取所有1000萬行。
SELECT COUNT(*)
返回行數(它對行進行計數); *
意味着讓數據庫引擎決定這樣做的最佳方式。
SELECT *
表示選擇行中的所有列 - *
表示所有列都沒有單獨命名每個列。
換句話說,即使它們看起來相似,它們也會做兩件獨立的事情。 COUNT(*)
是一個函數(你使用它SELECT COUNT(*)
); SELECT *
不是。
蘋果是圓的,香蕉是長的。爲什麼不相反呢? Ans:因爲這是他們的方式 – Nabin
因爲'SELECT COUNT(*)'返回行數,(它對行進行計數); *表示*讓數據庫引擎決定這麼做的最佳方式*。 'SELECT *'表示*選擇行中的所有列* - *表示*所有列,而不是單獨給每個列命名*。 IOW,即使他們看起來相似,他們也會做兩件獨立的事情。 'COUNT(*)'是一個函數; 'SELECT *'不是。 –
爲什麼我們需要知道「細胞」的總數? – Prisoner