7.1 数据库更新操作
数据库德主要操作分为两种
数据库德查询操作:SELECT
数据库的更新操作:INSERT(增加)、UPDATE(更新)、DELETE(删除)
此时,为了保存原始的emp表的信息,在进行增加、修改、删除操作之前先将此表复制一份
SQL>CREATE TABLE myemp AS SELECT * FROM emp;
此时数据已经复制到新表myemp中,以后就操作此表
7.1.1 添加数据
语法:
INSERT INTO 表名称[(字段名称1,字段名称2,...)] VALUES ('值1','值2',...);
范例:INSERT INTO myemp(empno,ename,job,mgr,hiredate,sal,comm,deptno)
VALUES(7899,'张三','清洁工',7369,'14-2月-1995',9000,300,40);创建完成后,
下面进行查询操作,观察记录是否已经在myemp表中
SELECT * FROM myemp;
插入的值:对于数字来说不用加“'”,而字符串必须加”'“
如果添加的是所有字段的内容,那么此处可以不写上任何的字段,只要数值的数量、
类型和顺序和数据表中一致即可 如下:
INSERT INTO myemp
VALUES(8899,'李四','清洁工',7369,'14-2月-1995',9000,300,40);
如果我们只是需要插入一部分信息的时候就需要指定字段(定义为NOTNULL的字段必须插入),
插入对应的值才可以,其余字段默认为NULL。如下雇员”王五“暂时没有领导:
INSERT INTO myemp(empno,ename,job,hiredate,sal,deptno)
VALUES(7889,'王五','清洁工','14-2月-1995',9000,40);
所以以上语句可以替换成:
INSERT INTO myemp
VALUES(8089,'李四','清洁工',NULL,'14-2月-1995',9000,300,40);
之前插入数据的时候,日期的格式是使用了表中固定好的一种格式,如果现在有这样
的一个日期”2010-01-19“日期格式,那么现在如何把这种格式的日期插进去呢?
此时可以使用TO_DATE()函数,将一个字符串类型的数据变为DATE类型的数据
如下:
INSERT INTO myemp(empno,ename,job,hiredate,sal,deptno)
VALUES(8888,'赵六','保洁工',TO_DATE('2010-01-19','yyyy-mm-dd'),9000,40);
7.1.2修改数据
在SQL语法中使用UPDATE语句就可以实现数据的修改,语法格式如下
修改全部:UPDATE 表名称 SET 要 修改的字段=新值,要修改的字段=新值...
修改局部:UPDATE 表名称 SET 要 修改的字段=新值,要修改的字段=新值...WHERE 修改条件
范例: UPDATE myemp SET comm=1000;
查询结果为所有记录全部更新,雇员的comm都更新为1000了
范例:将雇员编号为7899的雇员的工资更新为5000元
UPDATE myemp SET sal=5000 WHERE empno=7899;
范例:将雇员编号为7899的雇员的领导取消掉
UPDATE myemp SET mgr=NULL WHERE empno=7899;
在进行数据库操作的时候一定要写上更新的条件(可以用IN操作),拒绝批量更新
范例:将7369、8899、7788的领导的奖金取消
UPDATE myemp SET comm=NULL
WHERE empno IN(SELECT mgr FROM emp
WHERE empno IN(7369,8899,7788));
7.1.3删除数据
删除全部:DELETE FROM 表名称
删除局部:DELETE FROM 表名称 WHERE 删除条件
范例:删除编号为7899的雇员
DELETE FROM myemp WHERE empno=7899;
范例:删除编号为8899,7889,8888的雇员
DELETE FROM myemp WHERE empno IN(8899,7889,8888);
范例:删除有奖金的雇员
DELETE FROM myemp WHERE comm is NOT NULL;
范例:删除所有信息
DELETE FROM myemp;(不加入任何删除条件默认记录全部删除)不推荐