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 update set 和 and的区别
May 08 MySQL
为什么mysql字段要使用NOT NULL
May 13 MySQL
MySQL主从搭建(多主一从)的实现思路与步骤
May 13 MySQL
MySQL 全文索引使用指南
May 25 MySQL
mysql中between的边界,范围说明
Jun 08 MySQL
MySQL七种JOIN类型小结
Oct 24 MySQL
一文弄懂MySQL索引创建原则
Feb 28 MySQL
MySQL 主从复制数据不一致的解决方法
Mar 18 MySQL
mysql中DCL常用的用户和权限控制
Mar 31 MySQL
Mysql多层子查询示例代码(收藏夹案例)
Mar 31 MySQL
详细聊一聊mysql的树形结构存储以及查询
Apr 05 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
PHP读取目录下所有文件的代码
2008/01/07 PHP
php延迟静态绑定实例分析
2015/02/08 PHP
thinkphp中的多表关联查询的实例详解
2017/10/12 PHP
Sample script that deletes a SQL Server database
2007/06/16 Javascript
JS中 用户登录系统的解决办法
2013/04/15 Javascript
js 动态加载事件的几种方法总结
2013/12/25 Javascript
浅析javascript中的DOM
2015/03/01 Javascript
Bootstrap学习系列之使用 Bootstrap Typeahead 组件实现百度下拉效果
2016/07/07 Javascript
js+css3实现旋转效果
2017/01/20 Javascript
JS函数节流和函数防抖问题分析
2017/12/18 Javascript
vue中echarts3.0自适应的方法
2018/02/26 Javascript
jQuery简单判断值是否存在于数组中的方法示例
2018/04/17 jQuery
nodejs中实现用户注册路由功能
2019/05/20 NodeJs
微信小程序button标签open-type属性原理解析
2020/01/21 Javascript
javascript实现雪花飘落效果
2020/08/19 Javascript
详解Node.JS模块 process
2020/08/31 Javascript
JavaScript中常用的3种弹出提示框(alert、confirm、prompt)
2020/11/10 Javascript
Python使用函数默认值实现函数静态变量的方法
2014/08/18 Python
简单讲解Python中的数字类型及基本的数学计算
2016/03/11 Python
Python的时间模块datetime详解
2017/04/17 Python
python的dataframe转换为多维矩阵的方法
2018/04/11 Python
python使用webdriver爬取微信公众号
2018/08/31 Python
python实现简单http服务器功能
2018/09/17 Python
将pip源更换到国内镜像的详细步骤
2019/04/07 Python
Django web框架使用url path name详解
2019/04/29 Python
Python dict和defaultdict使用实例解析
2020/03/12 Python
scrapy头部修改的方法详解
2020/12/06 Python
selenium+超级鹰实现模拟登录12306
2021/01/24 Python
新媒传信软件测试面试题
2013/02/24 面试题
电子商务专业毕业生工作推荐信
2013/11/17 职场文书
党员评议表自我评价范文
2014/10/20 职场文书
先进党支部事迹材料
2014/12/24 职场文书
python opencv旋转图片的使用方法
2021/06/04 Python
清空 Oracle 安装记录并重新安装
2022/04/26 Oracle
MySQL范围查询优化的场景实例详解
2022/06/10 MySQL
Windows Server 2022 超融合部署(图文教程)
2022/06/25 Servers