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; #再次查詢,已經無記錄了