美文网首页数据库
mysql入门:表的操作(一):增删改(DML)

mysql入门:表的操作(一):增删改(DML)

作者: 琰雪儿 | 来源:发表于2018-03-20 20:44 被阅读31次

    在上一篇已经讲述了DML的基本概念再次就不在累述了。
    在了解了对数据库的基本操作后,我们开始学习对数据库中表的操作(增删改查)。
    首先我们新建一张名为“emp"的表。

    创建emp表.png
    现在正式开始我们今天的环节,对表的操作,第一步增加数据(插入数据)。
    增加数据即为插入数据,在表中插入新的数据即为增加。
    1.增加数据(插入数据)
    INSERT INTO 表名 (字段名1,字段名2,……字段名n) VALUES(value1,value2,……valuesn);    //再次说明字段名等同于列名即图中的Field,之后不再解释
    

    根据我们新建的emp表可以看出,我们现在存在两个字段,"ename"和"age",现在对这连个字段进行增加数据。

    我们添加了"yanxueer,21","zhangsan,21","lisi,21","wangwu,22"四条数据。
    
    插入数据.png

    在这里我们通过了select查询命令查看了表的信息,有人会问select是什么干什么用的,别急,再一下篇就会讲到的。
    注insert有一个非常好的特性:可以一次插入多条数据。这样可以提高插入效率。

    INSERT INTO 表名 (字段名, 字段名2,……字段名n)
    VALUES
    (value1, value2,……valuesn),
    (value1, value2,……valuesn),
    ……
    (value1, value2,……valuesn)
    ;
    
    一次插入多条数据.png

    2.更新数据(修改数据)
    --2.1单表更新

    UPDATE 表名 SET 字段1=value1,字段2.=value2,……字段n=valuen  [WHERE 条件]      //[ ]表示可以不加条件,不加条件则默认某字段全部替换。where前为修改的数据,where后是修改数据的条件即改变谁的数据。修改数据,可以只修改其中一条或者多条。
    
    更新数据.png

    此时我们已经把百家姓中的'li'改成了’zhou'.那么我们来解读一下命令:update更新;在许多语言中set这个属性都是修改值的,get是用来获取值的,学过java同学应该很清楚这一点。既然set是设置值的,那么set ename='zhou';age=20就是设置了值,既然设置了值,那么是不是要有个判断,该改变谁的值呢?根据什么来判断呢?判断条件是什么呢?此时就是where的作用了,where后面跟判断的条件,判断改变谁!where ename='li'。连起来就是,把ename字段中值为'li'的改变它的enameage分别为'zhou';20,当然从前往后读也是可以的,更新了enameage的值为zhou20,条件是ename值为'li'的。

    其实到了这里我不知道是不是应该讲更新数据的更深层次的,如果如果讲了,纯小白是无法看懂的,当然悟性好的除外,但是不讲的话,后面很难单另出模块来单独讲。算了还是先讲吧。听不懂的,我可以在后面的某个模块中再次解释。
    

    ---2.2*多表更新
    此时我们需要在添加一个新表dept表,而且要在原先的emp表中添加外键。这里就牵扯到了主键外键的概念。
    关于主外键可以参考我的这篇文章:https://www.jianshu.com/p/e977068a4345
    我们新建一个dept表设置deptno字段为主键,并且在原先的emp表中添加deptno字段设置为外键。(不演示代码了,在番外篇中我都已经演示了。我们直接使用)

    更新前.png 更新后.png

    在这里习惯使用了别名别名就是给表起了一个新名字,就相当于李白,字太白,李白和李太白是同一个人,这里的别名就类似于古代人的“表字”。为什么要起别名呢?因为有些时候有的表的名字太长,所以给它起一个短一点的别名方便后面的引用,别名只能在一条sql语句中产生作用,离开的这条sql语句就失去了作用域。还记得一段sql语句结束的标志吗?那就是;别名的命名格式是表名 as 别名但是as可以省略,所以我写成了emp e
    注意:多表更新的语法更多地用在了根据一个表的字段,来动态的更新另外一个表的字段
    3.删除数据
    --3.1单表删除

    DELETE FROM 表名 [WHERE 条件]   //[ ] 不写where条件的时候默认全部删除,则清空表。
    
    删除数据.png

    判断条件为yan所以ename='yan'的记录全部删掉了。

    无条件时默认删除全部.png

    如上图,在没有加约束条件的时候,默认删除了所有数据,则此时表为空。
    --3.2多表删除
    注:凡是牵扯多表的都存在主外键的概念,主外键是数据库中非常重要且常用的概念。

    多表删除.png
    注意:不管是单表还是多表,不加 where 条件将会把表的所有记录删除,所以操作时一定要小心。
    

    4.命令总结

    //插入数据
    INSERT INTO 表名 (字段名1,字段名2,……字段名n) VALUES(value1,value2,……valuesn); 
    //一次插入多条数据
    INSERT INTO 表名 (字段名, 字段名2,……字段名n)
    VALUES
    (value1, value2,……valuesn),
    (value1, value2,……valuesn),
    ……
    (value1, value2,……valuesn)
    ;
    //更新数据
    UPDATE 表名 SET 字段1=value1,字段2.=value2,……字段n=valuen  [WHERE 条件]      //[ ]表示可以不加条件,不加条件则默认某字段全部替换
    //删除数据
    DELETE FROM 表名 [WHERE 条件]   //[ ] 不写where条件的时候默认全部删除,则清空表。
    

    数据库中的增删改查,最难和最复杂的就是查询,所以我打算把查询单另出来讲。

    小白出品!不喜勿喷!

      生活总会给你第二次机会,叫明天。  
    

    相关文章

      网友评论

      • 17a90eeb8981:之前没这么用过,只是在一个括号中添加多个值
      • 17a90eeb8981:你这insert后values之后可以用多个括号添加值也是第一次见,记下了😏 😊
        琰雪儿:这个是一直都有的,可能是你之前并没有在意

      本文标题:mysql入门:表的操作(一):增删改(DML)

      本文链接:https://www.haomeiwen.com/subject/qageqftx.html