MySQL之DML语言


Posted in MySQL onApril 05, 2021

基于MySQL Server 5.5 版本进行演示

本章学习数据操作语言DML

插入

经典插入:使用频率高
语法:
		insert into 表名(列名,...)
		values(值,...)

set插入
语法:
		insert into 表名
		set 列名 = 值,列名 = 值,...

			多行查询       子查询
经典插入       支持         支持
set插入       不支持
#经典插入

#1.插入的值类型要与列的类型一致或者兼容
INSERT INTO beauty(`id`,`name`,`sex`,`borndate`,`phone`,`photo`,`boyfriend_id`)
VALUES(13,'唐艺昕','女','1990-4-23','18988888888',NULL,2);

SELECT * FROM beauty;

#2.不可以为null的必须插入值

#3.可以为null的列如何插入值?
#方式一:
INSERT INTO beauty(`id`,`name`,`sex`,`borndate`,`phone`,`photo`,`boyfriend_id`)
VALUES(13,'唐艺昕','女','1990-4-23','18988888888',NULL,2);
#方式二:
INSERT INTO beauty(`id`,`name`,`sex`,`borndate`,`phone`,`boyfriend_id`)
VALUES(14,'冰冰','女','1992-7-18','18988888888',9);

#4.列的顺序是否可以调换? 可以
INSERT INTO beauty(NAME,sex,id,phone)
VALUES('蒋欣','女',15,'15846151256');

#5.列数和值的个数必须一致
INSERT INTO beauty(NAME,sex,id,phone,`boyfriend_id`)
VALUES('九十八','女',16,'16246151256');

#6.可以省略列名,默认是所有列,而且列的顺序与表中列的顺序是一致的
INSERT INTO beauty
VALUES(17,'莹莹','女',NULL,'18977778888',NULL,8);

#
INSERT INTO beauty
SET id = 18,NAME = '扬扬',sex ='女',phone = '18974561356';

修改

修改单表的纪录:执行顺序  update  where  set
语法
		update  表名
		set 列 = 新值,列 = 新值,...
		where 筛选条件;
		
修改多表的纪录[补充]
sql92语法:
		update 表1  别名,表2 别名
		set 列 = 值,...
		where 连接条件
		on 筛选条件

sql99语法:
		update 表1  别名
		inner|left|right join 表2 别名
		on 连接条件
		set 列 = 值,...
		where 筛选条件
#修改单表的记录
#案例1:修改beauty表中姓唐的女神的电话为13899888899
UPDATE beauty
SET `phone` = "13899888899"
WHERE NAME LIKE "%唐%";

#案例2:修改boys表中id为2的名称为张飞,魅力值为10
UPDATE boys
SET `boyName` = "张飞",`userCP` = 10
WHERE id = 2

#修改多表的记录

#案例1:修改张无忌的女朋友的手机号为11432650189
UPDATE boys bo
INNER JOIN beauty b
ON bo.`id` = b.`boyfriend_id`
SET b.`photo` = '11432650189'
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 筛选条件;

		多表的删除:
		sql92语法:
			delete  别名
			from 表1 别名,表2 别名
			where 连接条件
			on 筛选条件;

		sql99语法:
			delete  别名
			from 表1 别名
			inner|left|right join 表2 别名
			on 连接条件
			where 筛选条件
		
		方式二:truncate
			truncate table 表名;

特点:
	1.delete 可以加 where 条件,truncate 不能加
	2.truncate 删除,效率高一些
	3.假如删除的表中有自增长列
		如果用delete删除后,在插入数据,自增长列的值从断点开始
		如果用truncate删除后,在插入数据,自增长列的值从1开始
	4.truncate 删除没有返回值,delete 删除有返回值
	5.truncate 删除不能回滚,delete 删除可以回滚
#方式一
#单表的删除

#案例1:删除手机号以9结尾的女神信息
DELETE FROM beauty 
WHERE phone LIKE "%9";

#多表删除
#案例1:删除张无忌的女朋友的信息
DELETE b
FROM boys bo
INNER JOIN beauty b
ON bo.`id` = b.`boyfriend_id`
WHERE bo.`boyName` = "张无忌";

#案例2:删除黄晓明的信息以及她的女朋友的信息
DELETE bo,b
FROM boys bo
INNER JOIN beauty b
ON bo.`id` = b.`boyfriend_id`
WHERE bo.`boyName` = "黄晓明";

#方式二:truncate 语句

#案例1:删除boys表
truncate table boys;

 

MySQL 相关文章推荐
mysql字符串截取函数小结
Apr 05 MySQL
MySQL主从复制断开的常用修复方法
Apr 07 MySQL
MySQL触发器的使用
May 24 MySQL
MySQL 数据恢复的多种方法汇总
Jun 21 MySQL
MySQL去除重叠时间求时间差和的实现
Aug 23 MySQL
MySQL Innodb索引机制详细介绍
Nov 23 MySQL
MySQL七大JOIN的具体使用
Feb 28 MySQL
一次SQL如何查重及去重的实战记录
Mar 13 MySQL
Nebula Graph解决风控业务实践
Mar 31 MySQL
Mysql 文件配置解析介绍
May 06 MySQL
MySQL导致索引失效的几种情况
Jun 25 MySQL
mysql sock 文件解析及作用讲解
Jul 15 MySQL
多属性、多分类MySQL模式设计
Apr 05 #MySQL
多表查询、事务、DCL
Mysql Show Profile
Apr 05 #MySQL
Mysql - 常用函数 每天积极向上
Apr 05 #MySQL
mysql多表查询-笔记七
Apr 05 #MySQL
mysql部分操作
Apr 05 #MySQL
left join、inner join、right join的区别
You might like
给海燕B411配件机起死回生配上件
2021/03/02 无线电
php自动获取字符串编码函数mb_detect_encoding
2011/05/31 PHP
php 调试利器debug_print_backtrace()
2012/07/23 PHP
PHP 文件上传后端处理实用技巧方法
2017/01/06 PHP
PHP实现在windows下配置sendmail并通过mail()函数发送邮件的方法
2017/06/20 PHP
PHP实现动态创建XML文档的方法
2018/03/30 PHP
详解laravel passport OAuth2.0的4种模式
2019/11/04 PHP
laravel入门知识点整理
2020/09/15 PHP
用正则xmlHttp实现的偷(转)
2007/01/22 Javascript
JS中字符问题(二进制/十进制/十六进制及ASCII码之间的转换)
2008/11/03 Javascript
用JavaScript页面不刷新时全选择,全删除(GridView)
2009/04/14 Javascript
原生Js与jquery的多组处理, 仅展开一个区块的折叠效果
2011/01/09 Javascript
JS注册/移除事件处理程序(ExtJS应用程序设计实战)
2013/05/07 Javascript
谷歌地图打不开的解决办法
2014/08/07 Javascript
JavaScript中九种常用排序算法
2014/09/02 Javascript
vue中如何引入jQuery和Bootstrap
2017/04/10 jQuery
AngularJs+Bootstrap实现漂亮的计算器
2017/08/10 Javascript
vue.js select下拉框绑定和取值方法
2018/03/03 Javascript
使用vue2实现购物车和地址选配功能
2018/03/29 Javascript
Vue SSR 组件加载问题
2018/05/02 Javascript
微信小程序之批量上传并压缩图片的实例代码
2018/07/05 Javascript
js实现拖动缓动效果
2020/01/13 Javascript
[48:39]Ti4主赛事胜者组第一天 EG vs NEWBEE 2
2014/07/19 DOTA
wxPython窗口的继承机制实例分析
2014/09/28 Python
Python学习小技巧之列表项的推导式与过滤操作
2017/05/20 Python
Python unittest 简单实现参数化的方法
2018/11/30 Python
python实战串口助手_解决8串口多个发送的问题
2019/06/12 Python
使用keras实现densenet和Xception的模型融合
2020/05/23 Python
Python pathlib模块使用方法及实例解析
2020/10/05 Python
canvas简单连线动画的实现代码
2020/02/04 HTML / CSS
Keds官方网站:购买帆布运动鞋和经典皮鞋
2016/11/12 全球购物
PHP面试题及答案一
2012/06/18 面试题
光声世纪笔试题目
2012/08/25 面试题
你对IPv6了解程度
2016/02/09 面试题
金鑫耀Java笔试题
2014/09/06 面试题
2015中学教学工作总结
2015/07/22 职场文书