在上一篇已经讲述了DML的基本概念再次就不在累述了。
在了解了对数据库的基本操作后,我们开始学习对数据库中表的操作(增删改查)。
首先我们新建一张名为“emp"的表。
现在正式开始我们今天的环节,对表的操作,第一步增加数据(插入数据)。
增加数据即为插入数据,在表中插入新的数据即为增加。
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'
的改变它的ename
和age
分别为'zhou';20
,当然从前往后读也是可以的,更新了ename
和age
的值为zhou
和20
,条件是ename
值为'li'
的。
其实到了这里我不知道是不是应该讲更新数据的更深层次的,如果如果讲了,纯小白是无法看懂的,当然悟性好的除外,但是不讲的话,后面很难单另出模块来单独讲。算了还是先讲吧。听不懂的,我可以在后面的某个模块中再次解释。
---2.2*多表更新
此时我们需要在添加一个新表dept
表,而且要在原先的emp
表中添加外键
。这里就牵扯到了主键
和外键
的概念。
关于主外键可以参考我的这篇文章:https://www.jianshu.com/p/e977068a4345
我们新建一个dept
表设置deptno
字段为主键,并且在原先的emp
表中添加deptno
字段设置为外键。(不演示代码了,在番外篇中我都已经演示了。我们直接使用)
在这里习惯使用了别名
,别名
就是给表起了一个新名字,就相当于李白,字太白
,李白和李太白是同一个人,这里的别名就类似于古代人的“表字”。为什么要起别名
呢?因为有些时候有的表的名字太长,所以给它起一个短一点的别名
方便后面的引用,别名
只能在一条sql语句中产生作用,离开的这条sql语句就失去了作用域。还记得一段sql语句结束的标志吗?那就是;
。别名
的命名格式是表名 as 别名
但是as
可以省略,所以我写成了emp e
。
注意:多表更新的语法更多地用在了根据一个表的字段,来动态的更新另外一个表的字段
3.删除数据
--3.1单表删除
DELETE FROM 表名 [WHERE 条件] //[ ] 不写where条件的时候默认全部删除,则清空表。
删除数据.png
判断条件为yan
所以ename='yan'
的记录全部删掉了。
如上图,在没有加约束条件的时候,默认删除了所有数据,则此时表为空。
--3.2多表删除
注:凡是牵扯多表的都存在主外键的概念,主外键是数据库中非常重要且常用的概念。
注意:不管是单表还是多表,不加 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条件的时候默认全部删除,则清空表。
数据库中的增删改查,最难和最复杂的就是查询,所以我打算把查询单另出来讲。
小白出品!不喜勿喷!
生活总会给你第二次机会,叫明天。
网友评论