mySQL筆記(十二) DML語言

2021-10-03 00:25:27 字數 3242 閱讀 7643

dml(data manipulation language)資料操縱語言:

涉及到的關鍵字:insert update delete

對錶中的資料的增刪改

#dml語言

#一、資料的插入

/*語法:

插入單行:

insert into 表名(欄位名1,欄位名2 ,...) values (值1,值2,...);

插入多行:

insert into 表名(欄位名1,欄位名2 ,...) values

(值1,值2,...),(值1,值2,...),(值1,值2,...);

特點: 1、欄位和值列表一一對應

包含型別、約束等必須匹配

2、數值型的值,不用單引號

非數值型的值,必須使用單引號

3、字段順序無要求

*/#一)插入單行

#案例1:要求欄位和值列表一一對應,且遵循型別和約束的限制

insert into `stuinfo`(`stuid`,`stuname`,`stugender`,`email`,`age`,`majorid`)

values(1,'熊紅','男','[email protected]',12,1);

insert into `stuinfo`(`stuid`,`stuname`,`stugender`,`email`,`age`,`majorid`)

values(2,'吳京','男','[email protected]',45,1);

insert into `stuinfo`(`stuid`,`stuname`,`stugender`,`email`,`age`,`majorid`)

values(3,'李宗盛','男','[email protected]',45,2);

#案例2:可以為空欄位如何插入

#方案1:欄位名和值都不寫

insert into `stuinfo`(`stuid`,`stuname`,`email`,`majorid`)

values(4,'齊秦','[email protected]',1);

#方案2:欄位名寫上,值使用null

insert into `stuinfo`(`stuid`,`stuname`,`stugender`,`email`,`age`,`majorid`)

values(5,'齊與','女','[email protected]',null,2);

#案例3:預設字段如何插入

#方案1:欄位名寫上,值使用default

insert into `stuinfo`(`stuid`,`stuname`,`stugender`,`email`,`majorid`)

values(6,'齊小雨',default,'[email protected]',2);

#方案2:欄位名和值都不寫

insert into `stuinfo`(`stuid`,`stuname`,`email`,`majorid`)

values (7,'齊小','[email protected]',2);

#案例4:可以省略字段列表,預設所有字段

insert into `stuinfo` value(8,'郭頂','女','[email protected]',32,1);

#二)插入多行

insert into `stuinfo` value(9,'郭多','男','[email protected]',32,1),(10,'郭餓','女','[email protected]',32,2);

-- ################設定自增長列

/*1、自增長列要求必須設定在乙個鍵上,比如主鍵或唯一鍵

2、自增長列要求資料型別為數值型

3、乙個表至多有乙個自增長列

*/#1、用圖形介面勾選自增

insert into `stuinfo` value(null,'小黃','女','[email protected]',32,1);

#2、通過**

create table gradeinfo(

gradeid int primary key auto_increment,

gradename varchar(20)

);select *from `gradeinfo`;

insert into `gradeinfo` values(null,'1年級'),(null,'2年級'),(null,'3年級');

insert into `gradeinfo`(`gradename`) values('4年級'),('5年級'),('6年級');

#二、資料的修改

/*語法:

update 表名 set 欄位名 = 新值,欄位名=新值,...

where 篩選條件;

*/#案例1:修改年齡<20的專業編號為2號,且郵箱更改為 [email protected]

update `stuinfo` set `majorid` = 2,`email` = '[email protected]'

where `age`<20;

#三、資料的刪除

/*方式1:delete語句

語法:delete from 表名 where 篩選條件;

一刪刪一行

方式2:truncate語句

語法:truncate table 表名;

刪除資料,不刪除表結構

*/select * from stuinfo;

#案例1:刪除姓李所有資訊

delete from stuinfo where stuname like '李%';

#案例2:刪除表中所有資料

truncate table stuinfo;

select * from gradeinfo;

delete from gradeinfo where gradeid = 8;

insert into gradeinfo(gradename)values('七年級'),('八年級');

#delete和truncate的區別

1、delete可以新增where條件

truncate不能新增where條件,一次性清除所有資料

2、truncate的效率較高

3、如果刪除帶自增長列的表,使用delete刪除後重新插入資料,記錄從斷點開始;

使用truncate刪除後重新插入資料,記錄從1開始

4、delete刪除資料,會返回受到影響的行數

truncate刪除資料,不返回受影響的行數

5、delete刪除資料,可以支援事務回滾

truncate刪除資料,不支援事務回滾

Mysql筆記之(十一)DML語言

2.方式二 兩種方式pk 二 修改語句 三 刪除語句 資料操作語言 插入 insert 修改 update 刪除 delete 語法 1.方式一 insert into 表名 列名,values 值1,2.方式二 insert into 表名 set 列名 值,列名 值,列名 值,insert in...

MySQL學習筆記 三 DML語言

dml data manipulate language資料操作語言 1.方式一 insert into 表名 欄位名,values 值.特點 1.要求值的型別和字段的型別要一致或相容 2.欄位的個數和順序不一定與原始表中的字段個數和順序一致,但必須保證值和字段一 一對應 3.假如表中有可以為nul...

MySQL筆記 資料操縱語言DML

insert intotable name 列1,列2,values 值1,值2,第二條 第三條 注 1 如果表中的每一列均有資料插入,則可不用指定任何表名 insert into 表名稱 values 值1,值2,2 若要插入多行資料可以結合union all語句。update 表名 set 列名...