基於mysql中一些易混淆知識點總結



      在基於mysql數據庫開發過程中,也許一些容易混淆的知識點沒有引起你的注意,但是往往這些細節被忽略的知識點會阻礙進行。總結一些mysql中容易混淆的知識點:


     (1)mysql中char和varchar區別,特點

        VARCHAR是一個可變長度字符串。
        CHAR是一個定長的字符串。   
	首先我們在使用char或varchar時,必須指定長度.例如 Char(20)  varchar(20)
	如果存儲字符串長度爲5,那麼char就會在底層開闢20個長度來存儲長度爲5的字符串,而varchar會自動縮減,使用5個長度來存儲信息,可以節省空間.
	注意:varchar它自動縮減,那麼性能會受影響,相對而言,char性能會更高一些。
    ==========================================================================================================================     
     (2)TIMESTAMP與DATETIME類型區別  
TIMESTAMP在進行insert操作時,如果沒有賦值,會取系統當前時間值。
如果對記錄進行update操作時,沒有處理TIMESTAMP字段,那麼它的值也會修改爲當前系統時間,從而記錄這條記錄修改時間。
DATETIME字段,如果沒有賦值,默認是就null.

    ==========================================================================================================================      
      (3)drop table 與delete from 及truncate table區別
        
若是在處理內容方面的不同:Drop table是用於刪除表結構。
                          Delete from刪除表中數據
	                  Truncate table 也是用於刪除表中數據。
	
 那麼同樣是刪除表內數據記錄的Delete與truncate table區別在哪裏?
      ①Delete from是一條一條記錄刪除.
          Truncate table它的作用是先將表結構刪除,在重新創建表結構。
      ②兩者處理數據的方式不同,從而導致兩者在處理性能上的差異: 在刪除表中所有數據操作上,truncate的性能更高。
      ③事務上:
       Delete是dml語句,受事務控制:以下之意就是在一個事務範圍控制內,若是delete from指定表中所有數據,通過回滾rollback可以恢復刪除的數據。
       Truncate是dcl語句,不受事務控制.刪除表的記錄之後,通常就是不能通過事務回滾方式恢復表記錄。
  ===================================================================================================================================
   (4)having與where的區別
      ①where是在group by之前使用  而having是在group by之後使用
      ②where後面不可以使用分組函數,而having後面可以使用分組函數.
    ==========================================================================================================================     
   
    (5)常見query關鍵字執行順序:select [..] from [table]  where [conditions] group by [..] having [conditions]  order by [...];  
 select 語句的解析順序:
 ①From 表:先執行from語句查詢指定表。 代表從哪張表中查詢數據【確定數據源】
 ②where條件:通過where關鍵字後的條件過濾一部分數據,將表中所有不符合條件記錄過濾。
 ③Group by:在得到的表記錄中,根據指定的字段進行分組。
 ④Having 條件:用於在分組後使用指定的條件對分組後的結果進行再過濾。
 ⑤Select :指定要查詢哪些數據【列屬性】,將那些列字段數據提取到結果集。
 ⑥Order by: 最後在根據指定的列字段對最後顯示地結果集進行排序。
  ====================================================================================================================================
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章