13 MySQL學習筆記 十三 DML語言

2021-09-29 20:56:40 字數 3729 閱讀 7223

資料操作語言

插入:insert

修改:update

刪除:delete

方式一:

語法:

insert into 表名(列名,...)

values(值1,...);

1.插入的值的型別要與列的型別一致或相容

insert into beauty(id,name,***,borndate,phone,photo,boyfriend_id)

values(13,'唐藝昕','女','1990-4-23', '1898888888',null,2);

2.不可以為null的列必須插入值,可以為null的列如何插入值?

方式一:(photo可以為null)

insert into beauty(id,name,***,borndate,phone,photo,boyfriend_id)

values(13,'唐藝昕','女','1990-4-23', '1898888888',null,2);

方式二:(photo可以為null)(直接省略photo)

insert into beauty(id,name,***,borndate,phone,boyfriend_id)

values(13,'唐藝昕','女','1990-4-23', '1898888888',2);

3.列的順序可以調換

insert into beauty(name,id,***,borndate,phone,boyfriend_id)

values('唐藝昕',13,'女','1990-4-23', '1898888888',2);

方式二:

語法:

insert into 表名

set 列名=值,列名=值,...

例:

insert into beauty

set id=19,name='劉濤',phone='999';

兩種插入方式比較:

方式一 支援插入多行但方式二不支援(批量插入)

insert into beauty

values ('唐藝昕',13,'女','1990-4-23', '1898888888',2),

('唐藝昕',14,'女','1990-4-23', '1898888888',2),

('唐藝昕',15,'女','1990-4-23', '1898888888',2);

方式一支援子查詢,方式二不支援

insert into beauty(id,name,phone)

select 26,'宋茜','11809866';

insert into beauty(id,name,phone)

select id,boyname

from boys where id<3

修改單錶的記錄

語法:

update 表名

set 列=新值,列=新值,...

where 篩選條件;(不加篩選條件則對錶中所有的行進行修改)

案例1:修改beauty表中姓唐的女生的**為13899888899

update beauty

set phone = 13899888899

where name like '唐%'

案例2:修改男生表中id=2的男生的姓名為張飛,usercp為10

update boys

set boyname='張飛',usercp=10

where id = 2;

修改多表的記錄

sq192語法:

update 表1,別名,表2,別名

set 列=值,...

where 連線條件

and 篩選條件;

sq199語法

update 表1 別名

inner|left|right join 表2 別名

on 連線條件

set 列=值,...

where 篩選條件;

案例1:修改張無忌的女朋友的手機號為114

update boys bo

inner join beauty b

on bo.id = b.boyfriend_id

set b.phone = '114'

where bo.boyname = '張無忌';

案例2:修改沒有男朋友的女生的男朋友編號都為2號

update boys bo

right join beauty b

on bo.id = b.boyfriend_id

set b.boyfriend_id = 2

where bo.id is null;

單錶的刪除

方式一:delete(刪整行)

delete from 表名 where 篩選條件
方式二:truncate(刪除整個表,不能加篩選條件)

truncate table 表名

多表的刪除(補充)

sq192語法:

delete 表1的別名,表2的別名

from 表1 別名,表2 別名

where 連線條件

and 篩選條件

sq199語法

delete 表1的別名,表2的別名

from 表1 別名

inner|left|right join 表2 別名 on 連線條件

where 篩選條件;

案例1:刪除手機號以9結尾的女神資訊

delete from beauty where phone like '%9';
案例2:刪除張無忌的女朋友的資訊

delete b

from beauty b

inner join boys bo

on b.boyfriend_id = bo.id

where bo.boyname = '張無忌';

案例3:刪除黃曉明的資訊以及他女朋友的資訊

delete b, bo

from beauty b

inner join boys bo

on b.boyfriend_id = bo.id

where bo.boyname = '黃曉明';

【面試題*】

delete與truncate比較:

delete可以加where條件,truncate不能加

truncate刪除,效率高一點點

假如要刪除的表中有自增長列,如果用delete刪除後,再插入資料,自增長列的值從斷點處開始

而truncate刪除後,再插入資料,自增長列的值從1開始

truncate刪除沒有返回值,delete刪除有返回值

truncate刪除不能回滾,delete刪除可以回滾

MySQL學習13 MySQL日誌

日誌 描述重做日誌 redo log 一種物理格式的日誌,記錄的是物理資料頁面的修改的資訊,其redo log是順序寫入redo log file的物理檔案中去的。回滾日誌 undo log 一種邏輯格式的日誌,在執行undo的時候,僅僅是將資料從邏輯上恢復至事務之前的狀態,而不是從物理頁面上操作實...

(1 3)MySQL 基本操作

整理自 慕課網 mysql概述 目錄 1 啟動 關閉mysql服務 2 mysql登入與退出 3 mysql常用命令及語法規範 3.1修改提示符 3.2 常用命令 3.3mysql語句的規範 開啟cmd命令視窗,由於已配置mysql系統環境變數,所以可以在任何目錄下啟動和停止mysql服務。1 啟動...

牛客MySQL教程 1 3MySQL管理

筆記 1.show columns from 資料表 顯示資料表的屬性,屬性型別,是否為null,主鍵,預設值 2.建立新使用者 create user guest localhost identified by guest123 grant select,insert,update,delete,...