select 1 from table 語句中的1代表什么意思
在這里我主要討論的有以下幾個select 語句:
doo_archive表是一個數據表,表的行數為4行,如下:
分別用三條select語句select 1 from doo_archive、select count(1) from doo_archive、select sum(1) from doo_archive進行測試,發現結果如下:
1:測試結果,得出一個行數和doo_archive表行數一樣的臨時列,每行的列值是1,如下:
2:得出一個數,該數是doo_archive表的行數4,如下:
3:得出一個數,該數是doo_archive表的行數4,如下:
然后我又用select 2 from doo_archive、select count(2) from doo_archive、select sum(2) from doo_archive測試,結果如下:
1:得出一個行數和doo_archive表行數一樣的臨時列,每行的列值是2;
2:得出一個數,該數是doo_archive表的行數;
3:得出一個數,該數是doo_archive表的行數×2的數。
然后我又用select 10 from doo_archive、select count(10) from doo_archive、select sum(10) from doo_archive測試:
1:得出一個行數和doo_archive表行數一樣的臨時列(10),每行的列值(10)是我寫在select后的數;
2:還是得出一個數,該數是doo_archive表的行數(4);
3:得出一個數,該數是doo_archive表的行數(4)×寫在select后的數(10),即40.
綜上所述:我發現第一種的寫法是增加臨時列,每行的列值是寫在select后的數;第二種是不管count(a)的a值如何變化,得出的值總是table表的行數;第三種是計算臨時列的值乘以表的行數。