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 query_cache_type 参数与使用详解
Jul 01 MySQL
MySQL系列之十四 MySQL的高可用实现
Jul 02 MySQL
Centos7中MySQL数据库使用mysqldump进行每日自动备份的编写
Aug 02 MySQL
MySQL中varchar和char类型的区别
Nov 17 MySQL
MySQL图形化管理工具Navicat安装步骤
Dec 04 MySQL
mysql聚集索引、辅助索引、覆盖索引、联合索引的使用
Feb 12 MySQL
MySQL事务操作的四大特性以及并发事务问题
Apr 12 MySQL
MySQ InnoDB和MyISAM存储引擎介绍
Apr 26 MySQL
详细介绍MySQL中limit和offset的用法
May 06 MySQL
MySQL数据库中的锁、解锁以及删除事务
May 06 MySQL
MySQL数据库 任意ip连接方法
May 20 MySQL
MySQL主从切换的超详细步骤
Jun 28 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
咖啡与水的关系
2021/03/03 冲泡冲煮
PHP字符串的编码问题的详细介绍
2013/04/27 PHP
php 使用array函数实现分页
2015/02/13 PHP
Symfony2开发之控制器用法实例分析
2016/02/05 PHP
php登录超时检测功能实例详解
2017/03/21 PHP
JS 时间显示效果代码
2009/08/23 Javascript
Javascript load Page,load css,load js实现代码
2010/03/31 Javascript
ASP.NET jQuery 实例8 (动态添加内容到DropDownList)
2012/02/03 Javascript
Array 重排序方法和操作方法的简单实例
2014/01/24 Javascript
jquery判断当前浏览器的实现代码
2015/11/07 Javascript
Vue.js 2.0 和 React、Augular等其他前端框架大比拼
2016/10/08 Javascript
js实现悬浮窗效果(支持拖动)
2017/03/09 Javascript
微信小程序中form 表单提交和取值实例详解
2017/04/20 Javascript
Node.js pipe实现源码解析
2017/08/12 Javascript
node.js中fs文件系统目录操作与文件信息操作
2018/02/24 Javascript
解决Vue 项目打包后favicon无法正常显示的问题
2018/09/01 Javascript
JS实现页面跳转与刷新的方法汇总
2019/08/30 Javascript
JS实现随机抽选获奖者
2019/11/07 Javascript
微信小程序点击item使之滚动到屏幕中间位置
2020/03/25 Javascript
vue中watch的用法汇总
2020/12/28 Vue.js
python中获得当前目录和上级目录的实现方法
2017/10/12 Python
django在接受post请求时显示403forbidden实例解析
2018/01/25 Python
简单谈谈Python的pycurl模块
2018/04/07 Python
Python generator生成器和yield表达式详解
2019/08/08 Python
详解Python3中的 input() 函数
2020/03/18 Python
Python paramiko使用方法代码汇总
2020/11/20 Python
美国精品地毯网站:Boutique Rugs
2020/03/04 全球购物
请写出 BOOL flag 与"零值"比较的 if 语句
2016/02/29 面试题
vue 中 get / delete 传递数组参数方法
2021/03/23 Vue.js
2014年纪检监察工作总结
2014/11/11 职场文书
拾金不昧表扬信怎么写
2015/05/04 职场文书
学校趣味运动会开幕词
2016/03/04 职场文书
创业计划书之蛋糕店
2019/08/29 职场文书
sql通过日期判断年龄函数的示例代码
2021/07/16 SQL Server
在 HTML 页面中使用 React的场景分析
2022/01/18 Javascript
python playwright之元素定位示例详解
2022/07/23 Python