数据库

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

2018-03-20  本文已影响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条件的时候默认全部删除,则清空表。

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

小白出品!不喜勿喷!

  生活总会给你第二次机会,叫明天。  
上一篇下一篇

猜你喜欢

热点阅读