1. 程式人生 > >mysql_資料記錄的增刪改

mysql_資料記錄的增刪改

1.insert語句

方式一:全寫
語法:insert into 表名 (列名,列名,列名…) values (值,值,值…);
–如果主鍵是自動增長,可以直接書寫null。

注意事項

1、值與列一一對應。有多少個列,就需要寫多少個值。如果某一個列沒有值。可以使用null。表示插入空。
2、值的資料型別,與列被定義的資料型別要相匹配。並且值的長度。不能夠超多定義的列的長度。
3、字串:插入字元型別的資料,必須寫單引號。在mysql中,使用單引號表示字串。
4、date 時間型別的資料也可以直接使用單引號表示:
‘yyyyMMdd’ ,’yyyy-MM-dd’,’yyyy/MM/dd’ 。
5、在插入資料的時候, 如果某些列可以為null,
或者是自動增長的列, 或者有預設值的, 在插入的時候可以省略.
6、如果給表中的所有列插入資料, 這時可以省略表後面的列名,
直接寫values.

方式二:省略部分列
可以省略部分列名。某一列 有預設值,或者允許為空,才可以省略。 主鍵是自增長的認為是有預設值的。也可以省略

方式三:省略所有的列
語法 : insert into 表名 values(值,值,值,值);
1、表中有多少列,就有多個值。
2、按照表的結構,列和值去對應。

整理:如果主鍵:是自增長。不需要人工賦值(可以給值null)。資料庫會按照自己的演算法,為主鍵填充值。通常遇到主鍵自增長,人工賦值的時候,賦值null。mysql會自己把null替換成新的值

2.update 語句

語法: update 表名 set 列名=值,列名=值… [ where條件語句 ];

注意事項:
1、如果不加條件,將會修改某一列的所有值。
2、一般修改資料時,都需要增加條件。 多個列使用逗號隔開。

【示例】
將姓名為李四的人的年齡改為30,地址改為航都路18號
在這裡插入圖片描述

【示例2】
將王五的年齡在原基礎上增加2歲。
在這裡插入圖片描述

3.delete語句

語法:delete from 表名 [where條件語句]
刪除滿足條件的行的資料。
delete是刪除行的資料。
注意:如果沒有where,刪除表中的所有的記錄。

【示例】
刪除表中所有記錄。
在這裡插入圖片描述

4.Truncate 語句

語法 : truncate table 表名:
先刪除表,再建立表,就等於將資料全部刪除了。
在這裡插入圖片描述

問題:

1.delete刪除表中的資料時沒有加where 條件,會刪除表中的所有資料,它與truncate 有什麼區別?

  • 刪除過程不同
    • truncate 刪除資料,過程先將整個表刪除,再重新建立
    • delete 刪除資料,逐行刪除記錄
  • truncate 效率要好於 delete
  • 語言定義不同truncate 屬於DDL ,delete 屬於DML

DELETE
 ・DML語言
 ・可以回退(可以將資料找回來)
 ・可以有條件的刪除

TRUNCATE TABLE
 ・DDL語言
 ・無法回退(不可以將資料找回來)
 ・預設所有的表內容都刪除
 ・刪除速度比delete快。

事務管理只能對DML 有效 ,被事務管理的SQL語句可以回滾到SQL執行前狀態。 事務:邏輯上的一組(一條或者多條sql語句)操作。稱之為事務。這組sql語句,要麼都成功,要麼都失敗

5.事務入門

mysql命令

start TRANSACTION;                                       #開啟事務
insert into primarykey_demo values(NULL,'tom',17,1);     #插入資料
select * from primarykey_demo;                           #查詢,有記錄
rollback                                                 #回滾,回到開啟事務前
select * from primarykey_demo;                           #再次查詢,已經無記錄了