mysql 選擇列 MySQL 選擇所有列( )

2021-10-20 22:37:15 字數 836 閱讀 4678

示例

詢問select * from stack;

結果| id   | username | password |

|    1 | admin    | admin    |

|    2 | stack    | stack    |

2 rows in set (0.00 sec)

您可以通過執行以下操作從乙個連線的乙個表中選擇所有列:

select stack.* from stack join overflow onstack.id= overflow.id;

最佳實踐*除非正在除錯或獲取row(s)關聯陣列,否則不要使用,否則架構更改(add / drop /重新排列列)可能會導致討厭的應用程式錯誤。另外,如果提供結果集中所需的列列表,mysql的查詢計畫程式通常可以優化查詢。

優點:新增/刪除列時,無需在使用位置進行更改 select *

寫起來短些

您還會看到答案,因此-使用select *是否有理由?

缺點:您返回的資料超出了您的需要。假設您新增了乙個varbinary列,每行包含200k。您只需要在乙個地方儲存一次記錄select *就可以使用此資料-這樣您最終可以在不需要的10行中返回2mb

明確使用什麼資料

指定列意味著刪除列時出現錯誤

查詢處理器必須做更多的工作-弄清楚表中存在哪些列(感謝@vinodadhikary)

您可以找到更容易使用列的位置

如果使用select *,則會獲得聯接中的所有列

您不能安全地使用序數引用(儘管對列使用序數引用本身是一種不好的做法)

在帶有text欄位的複雜查詢中,臨時表的處理可能不太理想,從而降低了查詢速度

mysql 選擇列 選擇MySQL表的前N列

請先看看bill karwin的 answer.但是,如果您知道如何訂購列名,那麼可能會有乙個使用動態查詢的解決方案.要從表中選擇所有列名,可以使用如下查詢 select column name from information schema columns where table schema d...

mysql列型別選擇

整型 data,time char,varchar blob 整型,time運算快,節約空間 char,varchar要考慮字符集的轉化和排序校對集,速度慢 blob無法使用記憶體臨時表 大的字段浪費記憶體,影響速度 null不利於索引,要用特殊的位元組來標註 在磁碟中占用記憶體更大 1 enum列...

mysql 選擇索引 mysql選擇索引

1 盡量為用來搜尋 分類或分組的資料列編制索引,不要為作為輸出顯示的資料列編制索引。最適合有索引的資料列是那些在where子句中資料列,在聯結子句 現的資料列,或者是在group by order by子句 現的資料列。select 後的資料列最好不要用索引。2 綜合考慮各資料列的維度。資料列的維度...