• <MySQL>入门二 增删改 DML


    -- DML语言
    
    /*
        数据操作的语言
        插入:insert
        修改:update
        删除:delete
    */

    1.插入

    -- 插入语句
    /*
        语法:insert into 表名(列名...) values(值...);
    */
    
    -- 方式一
    
    -- 1.插入值的类型要与列的类型一致或兼容
    INSERT INTO beauty(`id`,`name`,`sex`,`borndate`,`phone`,`photo`,`boyfriend_id`) 
    VALUES(13,'麦克雷','','1984.7.1','13535356464',NULL,2);
    
    -- 2.可以为Null的列如何插入值?
    -- 方式一 写null值
    -- 方式二 插入的字段不写 自动填充默认值或Null
    INSERT INTO beauty(`id`,`name`,`sex`,`borndate`,`phone`,`boyfriend_id`) 
    VALUES(13,'麦克雷','','1984.7.1','13535356464',2);
    
    -- 3.列的顺序是否可以调换,可以
    -- 4.列数和值数必须一致
    -- 5.可以省略列名,默认所有列,并且列的顺序和表中的顺序一致。
    
    -- 方式二
    /*
        insert into 表名 set 列名=值,列名=值...;
    */
    INSERT INTO beauty SET id=19,NAME='张飞',phone='110';
    
    -- 两种方式比较
    -- 1.方式一支持多行插入,方式二不支持
    INSERT INTO beauty
    VALUES(13,'麦克雷','','1984.7.1','13535356464',NULL,2),
    VALUES(14,'天使','','1999.6.1','120',NULL,3),
    ...;
    
    -- 2.方式一支持子查询,方式二不支持
    INSERT INTO beauty(id,NAME,phone) SELECT 55,'骚猪','13929292929';

    2.修改

    -- 修改
    /*
        1.修改单表的记录☆
        语法:update 表名 set 列=新值,列=新值... where 筛选条件
        
        2.修改多表的记录
        sql92:
        update 表1 别名,表2 别名 set 列=新值.. where连接条件 and 筛选条件
        sql99:
        update 表1 别名 inner(left)right join 表2 别名 on 连接条件 set列=新值 where 筛选条件;
    
    */
    
    -- 修改单表记录
    -- 1.修改beauty表中,姓苍的电话为110
    UPDATE beauty SET phone = '110' WHERE NAME LIKE '苍%';
    
    -- 2.修改boys表中id=2的名称为张飞,魅力值为10
    UPDATE boys SET boyName = '张飞',userCP = 10 WHERE id = 2;
    
    -- 修改多表记录
    -- 1.修改张无忌的女朋友的手机号为114
    UPDATE boys bo
    JOIN beauty be
    ON bo.`id`=be.`boyfriend_id`
    SET be.`phone`='110'
    WHERE bo.`boyName`='张无忌';
    
    -- 2.修改没有男朋友的 女神的男朋友编号都为2号
    UPDATE beauty SET boyfriend_id =2 WHERE boyfriend_id IS NULL;

    3.删除

    -- 删除语句
    /*
      delete
        1.单表删除
        语法一:delete from 表名 where 筛选条件
        2.多表删除
           sql92:    delete 别名 from 表1 别名,表2 别名 where 连接条件 and 筛选条件;
           sql99:   delete 别名 from 表1 别名 inner left right join 表2 别名 on 连接条件 where 筛选条件
    
      truncate
        trancate table 表名;
    */
    
    -- delete
    -- 单表删除
    -- 删除手机号以9结尾的女神信息
    DELETE FROM beauty WHERE phone LIKE '%9';
    
    -- 多表删除
    -- 删除张无忌的女朋友的信息
    DELETE be
    FROM beauty be
    INNER JOIN boys bo
    ON be.`boyfriend_id`=bo.`id`
    WHERE bo.`boyName`='张无忌';
    
    -- 删除黄晓明的信息和它女朋友的信息
    DELETE be,bo
    FROM beauty be
    INNER JOIN boys bo
    ON be.`boyfriend_id`=bo.`id`
    WHERE bo.`boyName`='黄晓明';
    
    -- truncate语句
    -- 只能删除整个表,后面不能加筛选条件
    
    -- delete 和 truncate比较
    /*
       1.delete可以加where条件,truncate不能加
       2.truncate删除,效率高一些
       3.加入要删除的表中有自增长列
           如果用delete删除后,再插入值,自增长列的值从断点开始
           而truncate删除后,再插入值,自增长列的值从1开始
       4.truncate删除没有返回值,delete删除有返回值
       5.truncate删除不能回滚,delete删除可以回滚
    */
  • 相关阅读:
    ref与out的区别(C#)
    用MS SQL Server 2008修改数据库表时提示“不允许保存更改”的解决方法
    测试的职责
    性能测试新手误区(三):用户数与压力
    JAVA + LR实现apache流媒体的性能测试(LR部分)
    性能测试新手误区(二):为什么我模拟的百万测试数据是无效的
    JAVA + LR实现apache流媒体的性能测试(JAVA部分)
    性能测试新手误区(六):性能监控
    性能测试新手误区(五):这是性能问题么
    性能测试新手误区(四):一切来自录制
  • 原文地址:https://www.cnblogs.com/mapleins/p/10100187.html
Copyright © 2020-2023  润新知