首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 學習筆記:數據增刪改核心語法與事務控制實戰

     編輯:MySQL 綜合教學

MySQL 學習筆記:數據增刪改核心語法與事務控制實戰

INSERT、UPDATE、DELETE 是業務邏輯的基石,事務是數據一致性的保障。本文通過實戰案例系統講解三大 DML 操作的語法細節、最佳實踐與陷阱,並演示 MySQL 命令行下的手動事務控制流程。

一、 INSERT 插入數據

標準語法

CREATE TABLE `test22` (`id` INT, `name` VARCHAR(32));

-- 顯式列名
INSERT INTO `test22` (`id`, `name`) VALUES (3, 'huangbiao');
INSERT INTO `test22` (`name`, `id`) VALUES ('huangbiao2', 5);  -- 順序可調整

-- 空字符串 vs NULL
INSERT INTO `test22` (`name`, `id`) VALUES ('', 51);    -- 空串 ''
INSERT INTO `test22` (`name`, `id`) VALUES (NULL, 555); -- NULL

-- 部分列插入(其餘走默認值/NULL)
INSERT INTO `test22` (`id`) VALUES (15);

二、 UPDATE 更新數據

標準語法

CREATE TABLE `employee` (
  `id` INT, `name` VARCHAR(20), `sex` BIT, `birthday` DATE,
  `salary` FLOAT, `entry_date` DATE, `resume` TEXT
);
INSERT INTO `employee` VALUES 
(1,'aaa',0,'1977-11-11',56.8,NOW(),'hello'),
(2,'bbb',0,'1977-11-11',57.8,NOW(),'hello'),
(3,'ccc',0,'1977-11-11',56.3,NOW(),'hello');

-- 1. 全表更新(極危險,生產禁用無 WHERE)
UPDATE `employee` SET `salary` = 2000;

-- 2. 條件更新
UPDATE `employee` SET `salary` = 3000 WHERE `name` = 'zs';

-- 3. 表達式更新(基於原值計算)
UPDATE `employee` SET `salary` = `salary` + 100 WHERE `name` = 'wu';

-- 4. 多表更新(JOIN 語法,MySQL 特有)
UPDATE `employee` e
JOIN `dept` d ON e.`dept_id` = d.`id`
SET e.`salary` = e.`salary` * 1.1
WHERE d.`name` = '研發部';

三、 DELETE 刪除數據

標準語法

  特性DELETETRUNCATE
  速度逐行刪除,慢重建表,極快
  事務支援回滾隱式提交,不可回滾
  觸發器觸發 AFTER DELETE不觸發
  自增值保留重置為 1
  外鍵受約束檢查若被引用則失敗
  適用場景條件刪除、需回滾、觸發器全表清空、重置自增、大表快速清理


四、 事務控制實戰(命令行手動模式)

MySQL 默認 `autocommit=ON`,每條 DML 隱式提交。手動事務流程:

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved