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 EXPLAIN输出列的详细解释
May 12 MySQL
MySql新手入门的基本操作汇总
May 13 MySQL
MySQL 逻辑备份与恢复测试的相关总结
May 14 MySQL
MySQL系列之十 MySQL事务隔离实现并发控制
Jul 02 MySQL
MySQL系列之十四 MySQL的高可用实现
Jul 02 MySQL
mysql聚集索引、辅助索引、覆盖索引、联合索引的使用
Feb 12 MySQL
MySql重置root密码 --skip-grant-tables
Apr 11 MySQL
聊聊mysql都有哪几种分区方式
Apr 13 MySQL
pt-archiver 主键自增
Apr 26 MySQL
深入理解MySQL中MVCC与BufferPool缓存机制
May 25 MySQL
MySQL提升大量数据查询效率的优化神器
Jul 07 MySQL
SQLServer常见数学函数梳理总结
Aug 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/09/25 PHP
了解Joomla 这款来自国外的php网站管理系统
2010/03/11 PHP
WordPress判断用户是否登录的代码
2011/03/17 PHP
php 备份数据库代码(生成word,excel,json,xml,sql)
2013/06/23 PHP
实现PHP框架系列文章(6)mysql数据库方法
2016/03/04 PHP
详解php 使用Callable Closure强制指定回调类型
2017/10/26 PHP
Prototype使用指南之form.js
2007/01/10 Javascript
jQuery select操作控制方法小结
2010/05/26 Javascript
理解JSON:3分钟课程
2011/10/28 Javascript
Google (Local) Search API的简单使用介绍
2013/11/28 Javascript
实例代码详解javascript实现窗口抖动及qq窗口抖动
2016/01/04 Javascript
原生javascript实现解析XML文档与字符串
2016/03/01 Javascript
jQuery事件对象总结
2016/10/17 Javascript
微信小程序 数据遍历的实现
2017/04/05 Javascript
laydate 显示结束时间不小于开始时间的实例
2017/08/11 Javascript
vue中改变选中当前项的显示隐藏或者状态的实现方法
2018/02/08 Javascript
JS 实现获取验证码 倒计时功能
2018/10/29 Javascript
原生JS实现留言板功能
2020/02/08 Javascript
python获取外网ip地址的方法总结
2015/07/02 Python
Python中使用Counter进行字典创建以及key数量统计的方法
2018/07/06 Python
对python的unittest架构公共参数token提取方法详解
2018/12/17 Python
Python txt文件加入字典并查询的方法
2019/01/15 Python
基于python分析你的上网行为 看看你平时上网都在干嘛
2019/08/13 Python
Django 拼接两个queryset 或是两个不可以相加的对象实例
2020/03/28 Python
使用opencv识别图像红色区域,并输出红色区域中心点坐标
2020/06/02 Python
基于Tensorflow读取MNIST数据集时网络超时的解决方式
2020/06/22 Python
如何基于Python实现word文档重新排版
2020/09/29 Python
使用HTML5 Canvas绘制直线或折线等线条的方法讲解
2016/03/14 HTML / CSS
PHP面试题-$message和$$message的区别
2015/12/08 面试题
《走一步再走一步》教学反思
2014/02/15 职场文书
一年级小学生评语
2014/04/22 职场文书
减负增效提质方案
2014/05/23 职场文书
公证书格式
2015/01/23 职场文书
2016年秋季运动会通讯稿
2015/11/25 职场文书
初任公务员培训心得体会
2016/01/08 职场文书
创业计划书之冷饮店
2019/09/27 职场文书