oracle数据库中的对表中字段的增删改查
本文中的例子是在用户以scott登录scott账户后,才可进行的操作
一、增 insert
语法:
INSERT INTO table [(column [, column...])] VALUES(value [, value...]);
例子:
插入一行:
insert into dept values(70,'PUBLIC','SHANGHAI');
insert into dept(deptno,dname,loc) values(70,'PUBLIC','SHANGHAI');
插入带NULL值
insert into dept(deptno) values(80);
insert into dept values(90,null,null);
插入特殊的值:系统时间
insert into emp(empno,ename,hiredate) values(8000,'XXXX',sysdate);
insert into emp(empno,ename,hiredate) values(8001,'XXXX',to_date('20010506','yyyymmdd'));
插入其他表中的值
create table d as select * from dept where 1=2;//用dept表的字段作为d表的字段创建表d
insert into d select * from dept;//将查询结果插入到d表中
insert into d(deptno) select deptno from dept where deptno=40;
二、删 delete
语法:
DELETE [FROM] table [WHERE condition];
例子:
delete d where deptno=40;
delete d ;//删除整表的数据
三、改update
语法:
UPDATE table
SET column = value [, column = value, ...]
[WHERE condition];
例子:
update d set dname='XXX' where deptno=40;
update d set dname='YYY'
update d set dname='XXX',loc='YYYY' where deptno=40;
四、查select
select语法 :
SELECT [ ALL | DISTINCT ] <字段表达式1[,<字段表达式2[,…]
FROM <表名1>,<表名2>[,…]
[WHERE <筛选择条件表达式>]
[GROUP BY <分组表达式> [HAVING<分组条件表达式>]]
[ORDER BY <字段>[ASC | DESC]]
sql各子句的执行顺序:
1. FROM
2. WHERE
3. GROUP BY
4. HAVING
5. SELECT
6. ORDER B
五、oracle 行锁
oracle允许单用户多任务
oracle不保存脏数据,在commit之间的数据属于脏数据,
另外的用户看不到为commit的数据
当进行insert和update和delete修改数据库中的数据时,(DML)
在未commit前修改的数据行处于锁定状态,另一个用户的其他操作不能操作
如果是DDL操作,则会commit前面执行的DML操作
行锁在commit和exit后解除
如果是非正常关闭,则会执行rollback操作
sql练习见附件