• 数据库MySQL--数据操作语言DML(插入、修改、删除)


    例子文件:https://files-cdn.cnblogs.com/files/Vera-y/girls.zip

    一、插入

    方式一:

    语法:

      insert into 表名(列名,.....)

      values( 值1,.....);              # 注:字符型和日期型要加单引号,数值型不用加

    插入语句要注意的项:

    1.插入的值的类型要与列的类型一致或兼容

    例:

      INSERT INTO beauty(id,name,sex,borndate,phone,photo,boyfriend_id)
      VALUES(13,'糖糖','女','1990-9-9','18791166667',NULL,4);

    2.不可以为null的列必须插入值,可以为null的列如何插入值?

    方式一:写着列名,值写为null

    例1.

      INSERT INTO beauty(id,name,sex,borndate,phone,photo,boyfriend_id)
      VALUES(14,'糖心','女','1990-4-9','18791888847',NULL,4);

    方式二:列名和值都不写

    例2.

      INSERT INTO beauty(id,name,sex,phone)
      VALUES(15,'糖宝','女','18793230847');

    3.列的顺序可以调换

    例:

      INSERT INTO beauty(name,id,sex,phone)
      VALUES('娜扎',16,'女','18788230847');

    4.列数和值的个数必须一致

    5.可以省略列名,默认为所有列,且列的顺序和表中列的顺序一致

    例:

      INSERT INTO beauty
      VALUES(18,'谢娜','女',null,'19929485048',null,null);

    方式二:

    语法:

      insert into 表名

      set 列名=值,列名=值,.....

    例:  

      INSERT INTO beauty
      SET id = 19,name = '容嬷嬷', phone='17764775087';

    方式一和方式二的比较:

    1.方式一支持插入多行,方式二不支持

    例. 

      INSERT INTO beauty
      VALUES(20,'贵妃','女','1990-2-2','19889479305',null,3),
          (21,'皇后','女','1990-2-2','19889479305',null,4),
          (22,'才人','女','1990-2-2','19889479305',null,5);

    此处还可用union联合查询连接

      INSERT INTO beauty
      SELETE 20,'贵妃','女','1990-2-2','19889479305',null,3 UNION
      SELETE 21,'皇后','女','1990-2-2','19889479305',null,4 UNION
      SELETE 22,'才人','女','1990-2-2','19889479305',null,5;

    2.方式一支持子查询,方式二不支持

    例.

      INSERT INTO beauty(id,name,phone)    # 把查询到的值插入到beauty表里(列名和值一一对应)

      SELECT 26,'宋某','19923493773';             # 这里可以用查询语句查询一个表里的值(查询到的是一个结果)(此处为一个常量)

    二、修改

    修改单表的记录

    语法:

      update 表名

      set 列=新值,列=新值,....     # 注:字符型和日期型要加单引号,数值型不用加

      where 筛选条件;    # 和查询的筛选条件类似

    例1.修改beauty表中姓糖的女神的电话为110

      UPDATE beauty SET phone='110'
      WHERE NAME LIKE '糖%';

    例2.修改boys表中id为2的名称为张飞,魅力值为20 

      UPDATE boys SET boyName='张飞',userCP=20
      WHERE id=2;

    修改多表的记录

    sql92语法:

      update 表1 别名,表2 别名

      set 列=值,...

      where 连接条件

      and 筛选条件;

    sql99语法:

      update 表1 别名

      [连接类型]  join 表2 别名

      on 连接条件

      where 筛选条件; 

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

      UPDATE boys
      INNER JOIN beauty
      ON boys.id=beauty.boyfriend_id
      SET beauty.phone='114'
      WHERE boys.boyName='张无忌';

    例2.修改没有男朋友的女神的男朋友编号为2号

      UPDATE boys
      RIGHT JOIN beauty
      ON boys.id=beauty.boyfriend_id
      SET beauty.boyfriend_id=2
      WHERE beauty.boyfriend_id IS NULL;

    三、删除

    方式一:delete    # 删除整列

    1.单表的删除

    语法:

      delete from 表名 where 筛选条件;

    例.删除手机号以9结尾的女神信息

      DELETE FROM beauty WHERE phone LIKE '%9';

    2.多表的删除

    语法:

    sql92语法:

      delete 要删除表的别名

      from 表1 别名,表2 别名

      where 连接条件

      and 筛选条件;

    sql99语法:

      delete 要删除表的别名

      from 表1 别名

      [连接类型]   join 表2 别名 on 连接条件

      where 筛选条件;

    例1.删除张无忌女朋友的信息

      DELETE beauty
      FROM beauty
      INNER JOIN boys
      ON beauty.boyfriend_id=boys.id
      WHERE boys.boyName = '张无忌';

    例2.删除男神id=2的信息以及他女朋友的信息

      DELETE beauty,boys
      FROM beauty
      INNER JOIN boys
      ON beauty.boyfriend_id=boys.id
      WHERE boys.id = 2;

    方式二:truncate (清空)(一删全删)

    语法:truncate table 表名;   # 删除整个表

    注:delete 删除列后,再插入数据,自增长列的值从断点开始,truncate 删除后,再插入数据,自增长列的值从1开始

      delete 删除后有返回值,truncate 删除后没有返回值

      delete 删除可以回滚,truncate 删除不能回滚

  • 相关阅读:
    《超越自己》--刘墉
    《菊与刀》--[美]鲁思·本尼迪克特(Ruth Benedict)
    《暧昧的日本人》--李兆忠
    《女性的选择》--[日]今野由梨
    《懂得低头,才能出头》--李艳
    原来还有这样的记词方法_Java版记不规则动词_博主推荐
    《永不止步》--[奥]力克胡哲
    C#面向服务WebService从入门到精通
    C# Windows服务开发从入门到精通
    sql server递归查询
  • 原文地址:https://www.cnblogs.com/Vera-y/p/10978460.html
Copyright © 2020-2023  润新知