当前位置 博文首页 > 文章内容

    lyt经典版MySQL基础——DML语言-数据的插入、修改、删除操作

    作者: 栏目:未分类 时间:2020-07-24 18:01:01

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



      1 #DML语言
      2 /*
      3 数据操作语言
      4 插入:insert
      5 修改:update
      6 删除:delete
      7 */
      8 
      9 #一、插入语句
     10 #方式一:
     11 /*
     12 语法:
     13 insert into 表名(列名,...) values(值1,...);
     14 
     15 */
     16 SELECT * FROM beauty;
     17 #1.插入的值的类型要与列的类型一致或兼容
     18 INSERT INTO beauty (id,NAME,sex,borndate,phone,photo,boyfriend_id)
     19 VALUES(13,'唐艺昕','','1990-04-23','18988888888',NULL,2);
     20 
     21 #2.不可以为null的列必须插入值,可以为null的列如何插入值?
     22 #方式一:
     23 INSERT INTO beauty (id,NAME,sex,borndate,phone,photo,boyfriend_id)
     24 VALUES(13,'唐艺昕','','1990-04-23','18988888888',NULL,2);
     25 #方式二:
     26 INSERT INTO beauty (id,NAME,sex,phone)
     27 VALUES(15,'娜扎','','18988888888');
     28 
     29 #3.列的顺序可以调换
     30 INSERT INTO beauty(NAME,sex,id,phone)
     31 VALUES('蒋欣','',16,'110');
     32 
     33 #4.列数和值的个数必须一致
     34 #5.可以省略列名,默认所有列,而且列的顺序和表中列的顺序一致
     35 INSERT INTO beauty VALUES(18,'张飞','',NULL,'119',NULL,NULL);
     36 
     37 #方式二:
     38 /*
     39 语法:
     40 insert into 表名
     41 set 列名=值,列名=值,...
     42 */
     43 
     44 INSERT INTO beauty SET id=19,NAME='刘涛',phone='999';
     45 
     46 #两种方式大PK
     47 #1.方式一支持插入多行
     48 INSERT INTO beauty
     49 VALUES (23,'唐艺昕1','','1990-04-23','18988888888',NULL,2),
     50 (24,'唐艺昕2','','1990-04-23','18988888888',NULL,2),
     51 (25,'唐艺昕3','','1990-04-23','18988888888',NULL,2);
     52 #2.方式一支持子查询,方式二不支持
     53 INSERT INTO beauty(id,NAME,phone)
     54 SELECT 26,'宋茜','11809866';
     55 
     56 INSERT INTO beauty(id,NAME,phone)
     57 SELECT id,boyName,'1234567'
     58 FROM boys WHERE id<3;
     59 
     60 #二、修改语句
     61 /*
     62 1.修改单表的记录(√)
     63 语法:
     64 update 表名 set 列=新值,列=新值,... where 筛选条件;
     65 
     66 2.修改多表的记录【补充】
     67 语法:
     68 sql92语法:
     69 update 表1 别名,表2 别名
     70 set 列=值,...
     71 where 连接条件
     72 and 筛选条件;
     73 
     74 sql99语法:
     75 update 表1 别名
     76 inner|left|right join 表2 别名
     77 on 连接条件
     78 set 列=值,...
     79 where 筛选条件;
     80 */
     81 
     82 #1.修改单表的记录
     83 #案例1:修改beauty表中姓唐的女神的电话为13899889988
     84 SELECT * FROM beauty;
     85 UPDATE beauty SET phone='13899889988'
     86 WHERE NAME LIKE '唐%';
     87 #案例2:修改boys表中id号为2的名称为张飞,魅力值10
     88 UPDATE boys SET boyName='张飞',userCp='10'
     89 WHERE id='2';
     90 SELECT * FROM boys;
     91 
     92 #2.修改多表的记录
     93 #案例1:修改张无忌的女朋友的手机号为114
     94 UPDATE boys bo
     95 INNER JOIN beauty b ON bo.id=b.boyfriend_id
     96 SET b.phone='114'
     97 WHERE bo.boyName='张无忌';
     98 #案例2:修改没有男朋友的女神的男朋友编号都为2号
     99 UPDATE boys bo
    100 RIGHT JOIN beauty b ON bo.id=b.boyfriend_id
    101 SET b.boyfriend_id='2'
    102 WHERE bo.id IS NULL;
    103 
    104 #三、删除语句
    105 /*
    106 方式一:delete
    107 语法:
    108 
    109 1.单表的删除(√)
    110 delete from 表名 where 筛选条件
    111 2.多表的删除【补充】
    112 sql92语法:
    113 delete 表1的别名,表2的别名
    114 from 表1 别名,表2 别名
    115 where 连接条件
    116 and 筛选条件;
    117 
    118 sql99语法:
    119 delete 表1的别名,表2的别名
    120 from 表1 别名
    121 inner|left|right join 表2 别名 on 连接条件
    122 where 筛选条件;
    123 
    124 方式二:truncate
    125 语法:truncate table 表名;
    126 */
    127 
    128 #方式一:delete
    129 #1.单表的删除
    130 #案例1:删除手机号以9结尾的女神信息
    131 DELETE FROM beauty 
    132 WHERE phone LIKE '%9';
    133 SELECT * FROM beauty;
    134 
    135 #2.多表的删除
    136 #案例:删除张无忌的女朋友的信息
    137 DELETE b
    138 FROM beauty b INNER JOIN boys bo ON b.boyfriend_id=bo.id
    139 WHERE bo.boyName='张无忌';
    140 SELECT * FROM beauty;
    141 #案例:删除黄晓明的信息以及他女朋友的信息
    142 DELETE b,bo
    143 FROM beauty b INNER JOIN boys bo ON b.boyfriend_id=bo.id
    144 WHERE bo.boyName='黄晓明';
    145 SELECT * FROM beauty;
    146 SELECT * FROM boys;
    147 
    148 #方式二:truncate语句
    149 #案例:将魅力值>100的男神信息删除
    150 TRUNCATE TABLE boys;
    151 
    152 #delete PK truncate【面试题√】
    153 /*
    154 1.delete可以加where条件,truncate不能加
    155 2.truncate删除,效率高一丢丢
    156 3.假如要删除的表中有自增长列,如果用delete删除后,再插入数据,自增长列的值
    157 从断点开始,而truncate删除后,再插入数据,自增长列的值从1开始。
    158 4.truncate删除没有返回值,delete删除有返回值
    159 5.truncate删除不能回滚,delete删除可以回滚。
    160 */
    161 
    162 SELECT * FROM boys;
    163 DELETE FROM boys;
    164 TRUNCATE boys;
    165 INSERT INTO boys(boyName,userCP)
    166 VALUES('张飞',100),('刘备',100),('关云长',100);