MySQL学习笔记03-DML语句学习

06、DML语句学习

数据操作语言:

  • 插入:insert
  • 修改:update
  • 删除:delete

6.0、提前预知

前面在笔记01里面提供了学习使用的建表语句,演示DML语句不需要太复杂的表结构,所以我们在这里提供一个简单的demo,来演示DML语句

demo建表语句:

/*创建demo数据库*/
CREATE DATABASE `demo`;
/*使用数据库 */
USE `demo`;

DROP TABLE IF EXISTS `beauty`;
/*创建女孩表 */
CREATE TABLE `beauty` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL,
  `sex` char(1) DEFAULT '女',
  `borndate` datetime DEFAULT '1987-01-01 00:00:00',
  `phone` varchar(11) NOT NULL,
  `photo` blob,
  `boyfriend_id` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;
/* 插入数据 */
insert  into `beauty`(`id`,`name`,`sex`,`borndate`,`phone`,`photo`,`boyfriend_id`) values (1,'beauty_01','女','1998-02-03 00:00:00','18209876577',NULL,8);

DROP TABLE IF EXISTS `boys`;

CREATE TABLE `boys` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `boyName` varchar(20) DEFAULT NULL,
  `userCP` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;


insert  into `boys`(`id`,`boyName`,`userCP`) values (1,'boy_01',100);

6.1、插入:INSERT

方式一:

语法:

INSERT INTO 表名(字段名,...) VALUES(1...);

特点:

  • 1、字段类型和值类型要一致或兼容,而且一一对应
  • 2、可以为空的字段,可以不用插入值,或用null填充
  • 3、不可以为空的字段,必须插入值
  • 4、字段个数和值的个数必须一致
  • 5、字段可以省略,但默认所有字段,并且顺序和表中的存储顺序一致

案例:

  • 案例1:字段类型和值类型一致或兼容,而且一一对应
insert  into `boys`(`id`,`boyName`,`userCP`) values (2,'boy_02',100);
  • 案例2:可以为空的字段,可以不用插入值,或用null填充
insert  into `boys`(`id`,`boyName`,`userCP`) values (3,'boy_03',NULL);
  • 案例3:不可以为空的字段,必须插入值
insert  into `boys`(`id`,`boyName`,`userCP`) values (4,NULL,NULL);
  • 案例4:字段个数和值的个数必须一致
//错误写法
insert  into `boys`(`id`,`boyName`,`userCP`) values (5,'boy_05');

//正确写法:因为userCP字段可以省略,默认为null
insert  into `boys`(`id`,`boyName`) values (5,'boy_05');
//正确写法:因为boyName字段可以省略,默认为null
insert  into `boys`(`id`,`userCP`) values (5,100);
  • 案例5:字段可以省略,但默认所有字段,并且顺序和表中的存储顺序一致
insert  into `boys` values (6,'boy_06',100);
方式二:

方式一是比较常用的表插入方式,但是还有另外一种表插入方式如下:

语法:

insert into 表名
set 列名=,列名=,....
  • 案例:向boys表插入一条数据
//可以为空的字段可以不插入值,大致意思可方式一差不多
insert into  boys 
set id=6,boyName='boy_06';
两种方式对比
  • 方式一支持一次性插入多行,方式二不支持
  • 方式一支持子查询,方式二不支持

6.2、修改:UPDATE

更新表的时候我们可以只更新表中的部分列,也可以更新全部列。

修改单表中的记录

语法:

update 表名
set=新值,=新值,...
where 筛选条件;

案例

  • 案例1:修改id为1的boyName字段的值
UPDATE `boys` SET boyName='boy_new' WHERE id=1;
修改多表中的记录(了解)

sql92语法(了解):

update1  别名,2 别名
set=,...
where 连接条件
and 筛选条件

sql99语法:

update1 别名
inner|left|right|full2 别名
on 连接条件
set=,...
where 筛选条件

6.3、删除:DELETE&TRUNCATE

DELETE语句

单表的删除:

语法:

DELETE FROM 表名 WHERE 筛选条件
  • 案例1:删除id为1的行
DELETE FROM `boys` WHERE id=1;

多表的删除:

语法:

DELETE 别名1,别名2
FROM1 别名1,表2 别名2
WHERE 连接条件
AND 筛选条件;
TRUNCATE语句
TRUNCATE TABLE  表名
两种方式的区别【面试题】
  • 1、TRUNCATE不能加WHERE条件,而DELETE可以加WHERE条件

  • 2、TRUNCATE的效率高一丢丢

  • 3、TRUNCATE删除带自增长的列的表后,如果再插入数据,数据从1开始,DELETE删除带自增长列的表后,如果再插入数据,数据从上一次的断点处开始

  • 4、TRUNCATE删除不能回滚,DELETE删除可以回滚

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

彤彤的小跟班

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值