MySQL插入,更新,刪除數據


插入

單行插入

  1.insert into 表名 values(col1_value,col2_value,...);

  •   每個列必須提供一個值,如果沒有值,要提供NULL值
  •   每個列必須與它在表中定義的次序相同

  2.insert into 表名(col1,col2...) values(col1_value,col2_value...);

  •   values必須與指定的列名次序匹配,不一定按照列在表中的實際出現的次序,即使表結構改變也能正常的工作

注意

  如果表的定義允許,在插入時可以省略某些列,表的定義應該如下

  1. 該列允許為NULL值
  2. 在表定義時給出默認值,如果插入時不給出值,則使用默認值

多行插入

  insert into 表名(col1,col2...) values(col1_value1,col2_value1...),values(col1_value2,col2_value2...)values(col1_value3,col2_value3...);

插入檢索出的數據

  insert into 表名1(col1,col2...) select col1,col2... from 表名2

  •   這條語句插入多少行依賴於表名1中有多少行,如果表名1為空,則沒有數據插入,此操作為合法操作
  •   它不關心select返回的列名,使用的是列的位置,select中的第一列用於填充表中的第一列等
  •   select可以使用where過濾數據

拓展

  由於數據庫是被客戶訪問,對處理什么請求及什么次序處理是MySQL任務,insert很耗時並且可能降低select語句的性能

  insert low_priority into 可以降低insert優先級也使用update和delete

更新

  更新的是列,由三部分組成

  1. 要更新的表
  2. 列名和他們的值
  3. 確定要更新的過濾條件
update 表名
    -> set 列名=要更新的值
    -> where 過濾條件;

注意

  1. 一定要使用where!!!where!!!where!!!
  2. 可以在update中使用子查詢,能夠使select語句檢索出的數據更新列數據
  3. 如果使用update更新多行,在更新時出現一個或多個錯誤,則整個update操作被取消,恢復到被更新的原來的值,若使用update ignore 表,可以繼續更新
  4. 保證每個表都有主鍵,像where字句那樣使用它
  5. 使用where之前,先使用select進行測試,保證過濾出正確的記錄

 刪除

  刪除的是整行

delete from 表名
    -> where 過濾條件;

  要刪除全部的行用

truncate table 表名;

  此操作是將原來的表刪除並創建一個新表,並不是逐行刪除數據

注意

  1. 一定要使用where!!!where!!!where!!!
  2. delete刪除的是表中的行或所有的行,不刪除表本身
  3. 保證每個表都有主鍵,像where字句那樣使用它
  4. 使用where之前,先使用select進行測試,保證過濾出正確的記錄
  5. 刪除列用update
  6. 強制實施引用完整性的數據庫,這樣mysql不允許刪除具有與其他表相關聯的數據的行


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM