数据库DML语句的讲解
对于dml 语句也是用的较多的。
DML 语句( 增、删、改)
1.insert 新增一条记录
/*
insert into 表名
values (value1,value2,......valueN)
按照表的结构将数据放入表内
*/
INSERT INTO dept
VALUES (50,'HR','LAS VIGAS');
/*
insert into 表名
values (value1,value2,......valueN)
按照表的结构将数据放入表内
*/
INSERT INTO dept
VALUES (50,'HR','LAS VIGAS');
SELECT * FROM dept;
--DML 语句执行过后会生成一个新的事务,事务需要提交 commit 才能永久生效
--在提交之前可以回滚 rollback 撤销操作
--在提交之前可以回滚 rollback 撤销操作
/*
insert into 表名(列名1 ,列名 2 ,……列名 n)
values (value1,value2,......valueN)
*/
INSERT INTO emp(empno,ename,job,sal,deptno)
VALUES (8000,'LIUYANG','TEACHER',4500,40);
insert into 表名(列名1 ,列名 2 ,……列名 n)
values (value1,value2,......valueN)
*/
INSERT INTO emp(empno,ename,job,sal,deptno)
VALUES (8000,'LIUYANG','TEACHER',4500,40);
SELECT * FROM emp;
--null 空值
INSERT INTO dept
VALUES (60,'SUPPORT',NULL);
INSERT INTO dept
VALUES (60,'SUPPORT',NULL);
--插入函数
INSERT INTO emp(empno,ename,job,hiredate,sal,deptno)
VALUES (8001,'LIUYANG','TEACHER',TO_DATE('20080808','YYYYMMDD'),4500,40);
INSERT INTO emp(empno,ename,job,hiredate,sal,deptno)
VALUES (8001,'LIUYANG','TEACHER',TO_DATE('20080808','YYYYMMDD'),4500,40);
--使用 select 语句拷贝数据到表中
INSERT INTO dept
SELECT TRUNC(empno/100),ename,job FROM emp WHERE deptno = 10;
INSERT INTO dept
SELECT TRUNC(empno/100),ename,job FROM emp WHERE deptno = 10;
SELECT * FROM dept;
2.update 修改已有数据
/*
update 表名
set 列名 = value
where 条件1 and/or 条件2 and/or …… 条件n
如果不写 where 子句,该列所有的数据都被修改
*/
UPDATE emp
SET deptno = 20;
/*
update 表名
set 列名 = value
where 条件1 and/or 条件2 and/or …… 条件n
如果不写 where 子句,该列所有的数据都被修改
*/
UPDATE emp
SET deptno = 20;
SELECT * FROM emp;
UPDATE emp
SET sal = 3000
WHERE ename = 'ALLEN';
SET sal = 3000
WHERE ename = 'ALLEN';
UPDATE emp
SET sal = sal + 500
WHERE deptno = 30;
SET sal = sal + 500
WHERE deptno = 30;
3.delete 删除数据
--delete 表名 [where ......] 删除表中的数据
--delete 表名 [where ......] 删除表中的数据
--如果不写 where 子句,会删除所有行
DELETE emp;
DELETE emp;
DELETE emp
WHERE ename = 'ALLEN';
WHERE ename = 'ALLEN';
DELETE emp
WHERE sal >= 3000;
WHERE sal >= 3000;
4.truncate 删除表中的数据
--删除表中所有数据,不可以设定条件范围,保留表结构
--不能回滚,直接生效
--truncate table 表名
TRUNCATE TABLE emp;
--删除表中所有数据,不可以设定条件范围,保留表结构
--不能回滚,直接生效
--truncate table 表名
TRUNCATE TABLE emp;
SELECT * FROM emp;