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主从复制及读写分离
May 07 MySQL
MySql学习笔记之事务隔离级别详解
May 12 MySQL
MySQL 常见的数据表设计误区汇总
Jun 07 MySQL
mysql如何配置白名单访问
Jun 30 MySQL
MySQL 服务和数据库管理
Nov 11 MySQL
MySQL派生表联表查询实战过程
Mar 20 MySQL
navicat 连接Ubuntu虚拟机的mysql的操作方法
Apr 02 MySQL
MySQL数据库如何查看表占用空间大小
Jun 10 MySQL
MySQL聚簇索引和非聚簇索引的区别详情
Jun 14 MySQL
mysql拆分字符串作为查询条件的示例代码
Jul 07 MySQL
MySQL 原理优化之Group By的优化技巧
Aug 14 MySQL
MySQL中dd::columns表结构转table过程及应用详解
Sep 23 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
Classes and Objects in PHP5-面向对象编程 [1]
2006/10/09 PHP
PHP 源代码压缩小工具
2009/12/22 PHP
解析php通过cookies获取远程网页的指定代码
2013/06/25 PHP
php 表单提交大量数据发生丢失的解决方法
2014/03/03 PHP
php实现事件监听与触发的方法
2014/11/21 PHP
js+CSS 图片等比缩小并垂直居中实现代码
2008/12/01 Javascript
Extjs入门之动态加载树代码
2010/04/09 Javascript
jQuery让控件左右移动的三种实现方法
2013/09/08 Javascript
纯js实现遮罩层效果原理分析
2014/05/27 Javascript
JS实现动态移动层及拖动浮层关闭的方法
2015/04/30 Javascript
jQuery实现弹出窗口中切换登录与注册表单
2015/06/05 Javascript
Javascript简单实现面向对象编程继承实例代码
2015/11/27 Javascript
超实用的JavaScript表单代码段
2016/02/26 Javascript
jQuery基于扩展简单实现倒计时功能的方法
2016/05/14 Javascript
IONIC自定义subheader的最佳解决方案
2016/09/22 Javascript
Jquery AJAX POST与GET之间的区别详细介绍
2016/10/17 Javascript
微信小程序 增、删、改、查操作实例详解
2017/01/13 Javascript
jQuery元素选择器实例代码
2017/02/06 Javascript
Bootstrap下拉菜单更改为悬停(hover)触发的方法
2017/05/24 Javascript
vue中appear的用法
2017/08/17 Javascript
Angular实现图片裁剪工具ngImgCrop实践
2017/08/17 Javascript
Vue 监听列表item渲染事件方法
2018/09/06 Javascript
详解js常用分割取字符串的方法
2019/05/15 Javascript
Vue+Element UI 树形控件整合下拉功能菜单(tree + dropdown +input)
2020/08/28 Javascript
[39:11]DOTA2上海特级锦标赛C组资格赛#2 LGD VS Newbee第二局
2016/02/28 DOTA
如何在VSCode上轻松舒适的配置Python的方法步骤
2019/10/28 Python
VS2019+python3.7+opencv4.1+tensorflow1.13配置详解
2020/04/16 Python
路政管理专业推荐信
2013/11/11 职场文书
学术会议欢迎词
2014/01/09 职场文书
地质工程专业毕业生求职信
2014/08/08 职场文书
亲子运动会的活动方案
2014/08/17 职场文书
五五普法心得体会
2014/09/04 职场文书
个人查摆剖析材料
2014/10/16 职场文书
ORACLE数据库应用开发的三十个注意事项
2021/06/07 Oracle
Axios代理配置及封装响应拦截处理方式
2022/04/07 Vue.js
Python OpenCV实现图形检测示例详解
2022/04/08 Python