MySQL的CURD 增刪改查

2020-09-24 12:01:10

新增 insert

語法:

  • 單條:insert into 表名('欄位1', '欄位2', ...) values('值1', '值2', ...)
  • 多條:insert into 表名('欄位1', '欄位2') values('值1', '值2'), ('值1', '值2');
-- 插入語句 (新增)
-- insert into 表名('欄位1', '欄位2', ...) values('值1', '值2', ...)
INSERT INTO `grade`(`gradename`) VALUES('大一');
-- 插入語句資料和欄位要一一對應
INSERT INTO `grade` VALUES('大一');

-- 插入多個欄位
-- insert into 表名('欄位1') values('值'), ('值');
INSERT INTO `grade`(`gradename`) VALUES ('大二'), ('大三');

INSERT INTO `student`(`name`) VALUES('張三');

INSERT INTO `student`(`name`, `pwd`, `sex`) VALUES('張三', 'aaaa', '男');

INSERT INTO `student`(`name`, `pwd`, `sex`)
VALUES('李四', 'aaaa', '女'), ('王五', 'aaaa', '男'), ('張大媽', 'aaaa', '女');


修改 update

語法:

  • 單個:UPDATE 表名 SET 欄位名='值' WHERE [條件]
  • 多個:UPDATE 表名 SET 欄位名1='值', 欄位名2='值' WHERE [條件]
-- 修改名字, 帶條件
-- UPDATE `表名` SET `欄位名`='值' WHERE [條件]
UPDATE `student` SET `name`='大哥' WHERE id=1;
-- 不帶條件, 會改動所有
UPDATE `student` SET `name`='長江七號';

-- 修改多個屬性
-- UPDATE `表名` SET `欄位名1`='值', `欄位名2`='值' WHERE [條件]
UPDATE `student` SET `name`='長江1號', `email`='7854@qq.com' WHERE id!=1;
UPDATE `student` SET `name`='長江18號', `email`='7854@qq.com' WHERE id BETWEEN 3 AND 6;

條件:where字句 運運算元 id等於某個值, 大於某個值, 在某個值區間

操作符含義範圍結果
=等於5=6false
<>或者!=不等於5<>6true
>大於
<小於
>=大於等於
<=小於等於
BETWEEN 值 AND 值在某個範圍內
AND邏輯與 &&5 > 1 and 1 > 2false
OR邏輯或 ||5 > 1 or 1 > 2true
-- 多個條件
UPDATE `student` SET `name`='大哥' WHERE `name`='長江18號' AND sex='女';
-- 變數
UPDATE `student` SET birthday=CURRENT_TIME WHERE `id`=1;


刪除 delete

delete

語法:-- delete from表名where [條件]

-- 刪除資料
DELETE FROM `student` WHERE id=1;

TRUNCATE 命令

  • 作用:完全清空一個資料庫表, 表的結構和索引不會變
-- 清空 student 表
TRUNCATE `student`;

delete 和 TRUNCATE 區別

  • 相同點:都能刪除資料
  • 不同點:
    • TRUNCATE 重新設定 自增列 計數器歸零
    • TRUNCATE 不會影響事務
-- 測試 delete 和 TRUNCATE 區別
CREATE TABLE `test`(
  `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `name` VARCHAR(255) COMMENT '姓名',
  
  PRIMARY KEY(`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8

INSERT INTO `test`(`name`) VALUES('1'),('2'),('13'),('14');

DELETE FROM `test` -- 不會影響自增

TRUNCATE TABLE `test` -- 清空自增, 計數器歸零

delete 刪除的問題, 重新啟動資料庫

  • InnoDB:自增列會從1開始(存在記憶體中, 斷電即失)
  • MyISAM:繼續從上一個開始(存在檔案中的, 不會丟失)



查詢 select

連結:https://blog.csdn.net/weixin_44953227/article/details/108737510