數據插入時,需要特別注意的:
- 在插入數據的時候,一般會明確出每個列,這樣的話數據的順序對應清晰,當表結構發生改變的時候,你的SQL語句還可以使用。
- 數據庫經常被多個用戶訪問,對處理什么請求以及用什么次序處理進行管理是Mysql任務。INSERT操作可能很耗時(當需要更新的索引更別多的時候)而卻它可能降低等待處理的SELECT語句的性能。可以使用INSERT LOW_PRIORITY INTO 來降低INSERT 語句的優先級。
- INSERT語句支持插入檢索出來的數據。
數據更新時,需要特別注意的。
- UPDATE語句總是以要更新的表作的名字開始,以WHERE作為語句的結束。(如果不加過濾條件的話,就會更新整個表。這顯然不是我們想要的結果)
- 如果使用UPDATE更新多行數據,并且在更新這些行中,出現了錯誤。則整個UPDATE操作被取消。假設希望設置UPDATE語句中,即使發生了錯誤也繼續執行的話。可以使用IGNORE關鍵字。
數據刪除時,需要特別注意的。
- 如果想要刪除表中所有的數據的話,不要使用DELETE。可以使用TRUNCATE TABLE語句,他完成相同的工作。但是速度更快(TRUNCATE其實是刪除原來的表,然后重新建立一個表。而不是一行一行的刪除數據)
視圖相關介紹
- 視圖是虛擬的表,與包含數據的表不同。視圖只包含動態檢索出來的數據。在一些復雜的查詢語句,都是需要對表結構非常清楚。這個時候,我們就可以使用視圖,創建虛擬表從而簡化查詢語句。也可以使用視圖來重新格式化數據和過濾數據。再次組合一張簡易操作的虛擬表。但是視圖僅僅是用來查看存儲在別處的數據的一種措施。視圖本身不包含數據。它返回的數據都是從其他表中檢索出來的。所以性能相對來說比較差。
- 視圖的創建 (CREATE VIEW viewname AS sql)
CREATE VIEW tradition4view AS SELECT prod_id, prod_name, prod_price FROM products WHERE vend_id in (1001,1002) UNION ALL SELECT prod_id, prod_name, prod_price FROM products WHERE prod_price<=5