栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

MySQL学习总结(六)——DML(数据操作语言总结)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MySQL学习总结(六)——DML(数据操作语言总结)

DML(数据操作语言总结)
  • 一、插入语句
    • 1、方式一
      • ①语法
      • ②使用注意
    • 2、方式二
      • ①语法
      • ②案例
    • 3、两种插入的比较
  • 二、修改语句
    • 1、修改单表数据
      • ①语法
      • ②案例
    • 2、修改多表数据【了解】
      • ①语法
      • ②案例
  • 三、删除语句
    • 1、方式一(DELETe)
      • ①单表数据的删除
      • ②多表数据的删除【了解】
    • 2、方式二(truncate)
      • ①语法:
    • 3、两种方式的比较

所有数据库学习总结文章均是根据B站尚硅谷视频总结而来,视频链接如下:
[https://www.bilibili.com/video/BV12b411K7Zu]

数据操作语言关键词:
插入:insert
修改:update
删除:delete

一、插入语句 1、方式一 ①语法
INSERT INTO 表名(列1,列2,列3,·····)
VALUES(值1,值2,值3,····)
②使用注意

beauty表内容:

(1)插入的值的类型要与列的类型一致或兼容;

INSERT INTO 
beauty(id,name,sex,borndate,phone,photo,boyfriend_id)
values(13,'唐艺昕','女','1990-4-23','1233344444',NULL,2);

(2)值不可为null的列必须插入,可以为null的有以下两种插入方式;
方式一:在可以为空的字段对应的值处输入null即可。

INSERT INTO 
beauty(id,name,sex,borndate,phone,photo,boyfriend_id)
VALUES(14,'小李','男','1999-08-15','1212121212',null,15);

方式二:同时去掉可以为空的字段和值(例如:photo字段)。

INSERT INTO 
beauty(id,name,sex,borndate,phone,boyfriend_id)
VALUES(15,'小王','女','2000-08-29','112121211',14)

(3)列的顺序可以掉换,但列数和值的个数必须一致;

INSERT INTO  beauty(name,sex,id,phone)
VALUES('蒋欣','男','16','12344253');

(4)可以省略列名,默认为全部列,且字段顺序与表中的顺序一致。

INSERT INTO  beauty
VALUES(17,'唐艺昕','女','1990-4-23','1233344444',NULL,2);
2、方式二 ①语法

需要注意set后边必须要有不能为null的字段的“列名=值“。

INSERT INTO  表名
SET 列名1=值1,列2=值2,···列n=值n;
②案例
INSERT INTO beauty 
SET NAME='刘涛',id=27,sex='女',phone='9999';
3、两种插入的比较

①方式一支持插入多行,方式二不支持。

INSERT INTO beauty 
VALUES(18,'杨幂','女','1999-4-23','12333499444',NULL,2),
      (19,'杨颖','女','1979-9-23','12499444',NULL,3),
      (20,'关晓彤','女','1999-4-20','123334333',NULL,5);

②方式一支持子查询,方式二不支持。

INSERT INTO beauty(id,NAME,phone)
SELECT 26,'宋茜','1123222';
二、修改语句 1、修改单表数据 ①语法
UPDATE 表名        #(1)
SET 列=新值,列=新值,...   #(3)
WHERe 筛选条件(查询中的所有筛选类型都支持)     #(2)
②案例

案例1:修改beauty表中姓周的女生的电话为:112212211111,男朋友为3.

UPDATE beauty
SET phone='112212211111',boyfriend_id =3
WHERe name like '周%';
2、修改多表数据【了解】 ①语法
sql92语法:
UPDATE 表1 别名,表2 别名
SET 列=值,···
WHERe 连接条件 AND 筛选条件;

sql99语法:
UPDATE 表1 别名
INNER/LEFT/RIGHT JOIN 表2 别名
ON 连接条件
SET 列=值,···
WHERe 筛选条件
*/
②案例

案例1:修改张无忌的女朋友的手机号为114。

UPDATE boys b
INNER JOIN beauty be
ON b.id=be.boyfriend_id
set phone ='111'
WHERe boyname ='张无忌';

案例2:修改没有男朋友的女生的男朋友编号都为2号。

UPDATE beauty be
LEFT JOIN boys b
ON be.`boyfriend_id`=b.`id`
SET boyfriend_id=2
WHERe b.id IS NULL ;
三、删除语句 1、方式一(DELETE) ①单表数据的删除

(1)语法:

#删除表中特定的数据
DELETE FROM 表名 WHREE 筛选条件;
#删除表中所有的数据
DELETe FROM 表名;

(2)案例1:删除手机号以9结尾的女生信息.

DELETe FROM beauty WHERe phone LIKE '%9';
②多表数据的删除【了解】

(1)语法:

sql92语法:
DELETe 表1别名,表2别名(删除哪个表中的数据写那个,删两个就都写)
FROM 表1 别名,表2 别名
WHERe 连接条件 AND 筛选条件;

sql99语法:
DELETe 表1别名,表2别名(删除哪个表中的数据写那个,删两个就都写)
FROM 表1 别名
INNER | LEFT | RIGHT JOIN 表2 别名
ON 连接条件
WHERe 筛选条件;

(3)案例:
案例1:删除张无忌的女朋友的信息。

DELETe b
FROM  beauty b
INNER JOIN boys bo
ON b.`boyfriend_id`=bo.`id`
WHERe bo.`boyName`='张无忌';

案例2:删除黄晓明夫妇的信息。

DELETe bo,b
FROM boys bo
INNER JOIN beauty b
ON b.`boyfriend_id`=bo.`id`
WHERe bo.`boyName`='黄晓明';
2、方式二(truncate) ①语法:
 TRUNCATE TABLE 表名;
3、两种方式的比较

①delete可以添加where条件,truncate不可以;
②truncate删除效率略高于delete;
③truncate删除没有返回值,delete删除有返回值。
④truncate删除不可以回滚,delete删除可以回滚。
⑤删除的表中有自增长列:如果delete删除后,再插入数据,自增长列值从断点开始,而truncate删除后,再插入数据,自增长列的值从1开始。举例如下图:

boys表数据:


DELETE删除后插入数据(注意看ID列)
truncate删除后插入数据(注意看ID列)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/292446.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号