Oracle入门之对表内容的dml操作

oracle表的管理--添加数据

使用insert语句向表中插入数据

插入数据基本语法:

insert into table[(column [,column...])] values(value [,value...]);

insert into 表名[(列名 [,列名2...])] values(值 [,值2...]);

注意事项:

1、插入的数据应与字段的数据类型相同。

2、数据的大小应在列的规定范围内,例如:不能将一个长度为80的字符串加入到长度为40的列中。

3、在values中列出的数据位置必须与被加入的列的排列位置相对应。

4、字符和日期型数据应包含在单引号中。

5、插入空值,不指定或insert into table values(null);

6、给表的所有列添加数据时,可以不带列名直接添加values值。

oracle表的管理--修改数据

使用update语句修改表中数据。

Update语句基本法:

update tablename set columnname=expr1 [,columnname2=expr2,...][where where_definition];

update 表名 set 列名=表达式 [,列名2=表达式2,...][where 条件];

注意事项:

1、update语法可以用新值更新原有表行中的各列;

2、set子句指示要修改哪些列和要给予哪些值;

3、where子句指定应更新哪些行。如没有where子句,则更新所有的行。(特别小心)

对students中的数据进行修改

将张三的性别改成女

SQL>update students set sex=‘女‘ where name=‘张三‘;

把张三的奖学金改为10

SQL>update students set fellowship=10 where name=‘张三‘;

把所有人的奖金都指高10%

SQL>update students set fellowship=fellowship*1.1;

向students添加数据

SQL>insert into students (id,name,sex,brithday,fellowship,resume) values(1,‘张三‘,‘男‘,‘11

-11月-01‘,23.34,‘hello‘);

SQL>insert into students values(2,‘李四‘,‘男‘,‘11-11月-02‘,67.34,‘hello2‘);

SQL>insert into students values(3,‘王五‘,‘女‘,‘11-11月-03‘,671.34,‘hello3‘);

插入部分字段与插入空值,语法是一样的。只是要注意,当字段设置可为空时,可以不用将字段列出。否则就需要将字段名和值添加进去。否则报错,具体参见上述插入数据6点注意事项。

insert into table[(column [,column...])] values(value [,value...]);

oracle表的管理--删除数据

基本语法:

delete from TABLENAME [where where_definition];

delete from 表名 [where 条件表达式];

注意事项:

1、如果不使用where子句,将删除表中所有的数据。(特别注意)

2、delete语句不能删除某一列的值(可使用update)。

3、使用delete语句仅删除记录,不删除表本身。如要删除表,使用drop table语句。

4、同insert和update一样,从一个表中删除记录将引起其它表的参照完整性问题,在修改数据库数据时,头脑中应始终不要忘记这个潜在的问题。

删除的几种方法比较:

delete from 表名;

删除所有记录,表结构还在,写日志,可以恢复的,速度慢

drop table 表名;

删除表的结构和数据

delete from student where xh=‘A001‘;

删除一条记录

truncate table 表名;

删除表中的所有记录,表结构还在,不写日志,无法找回删除的记录,速度快。

设置保存点

savepoint 保存点名称;

回滚

rollback to 保存点名称;

特别注意:设置保存点及回滚操作是配合delete语句使用,用来找回使用delete删除的数据。而通过truncate删除的表数据是无法通过此方法找回的。

建议

在使用delete删除表数据前使用savepoint设置保存点,防止数据误删除。

时间: 2024-10-18 11:59:09

Oracle入门之对表内容的dml操作的相关文章

oracle入门之对表数据查询(一)

此文中用到的表是Scott用户中自带的三张表: 基本select语句 基本语法: select [distinct] *|{columnl,column2,column3..} from table [where {condition}]; select [是否剔除重复数据] *|{字段名(列名),字段名2(列名2),字段名3(列名3)..} from 表名 [where {条件}];注意事项: 1.select指定查询哪些列的数据: 2.column指定列名: 3.*代表查询所有列: 4.fr

oracle入门之对表数据查询(二)

oracle表复杂查询 在实际应用中经常需要执行复杂的数据统计,经常需要显示多张表的数据,现在我们给大家介绍较为复杂的select语句 数据分组-max,min,avg,sum,count 如何显示所有员工中最高工资和最低工资 SQL>select max(sal) "最高工资",min(sal) "最低工资" from emp; 请查询最高年工资 SQL>select max(sal*13+nvl(comm,0)*13) "最高年工资&quo

oracle入门之对表数据查询(三)

oracle表复杂查询--子查询 什么是子查询? 子查询是指嵌入在其它sql语句中的select语句,也叫嵌套查询. 单行子查询 单行子查询是指只返回一行数据的子查询语句. 请思考:如果显示与smith同一部门的所有员工? SQL>select * from emp where deptno=(select deptno from emp where ename='SMITH'); 将SMITH排除在外不显示 SQL>select * from emp where deptno=(select

Oracle锁2:DML操作和锁

Oracle为DML操作自动获取行锁和表锁,操作的类型决定了锁的行为,下面对DML操作锁的情况作了一个汇总: SQL Statement Row Locks Table Lock Mode RS RX S SRX X SELECT ... FROM table... -- none Y Y Y Y Y INSERT INTO table ... Yes SX Y Y N N N UPDATE table ... Yes SX Y(注) Y(注) N N N MERGE INTO table ..

Oracle ddl 和 dml 操作

  ddl 操作 窗口设置用户权限的方法  Oracle的数据类型  按住Ctrl点击表名 ,可以鼠标操作  插入的数据需要满足创建表的检查  主表clazz删除数据从表设置级联也会一同删除 有约束也强制删除 Oracle dml操作  简化分页查询 创建百万条记录的表 Oracle 数据库的备份 导入导出 原文地址:https://www.cnblogs.com/qingyundian/p/9142659.html

Oracle中 “ORA-14551: 无法在查询中执行 DML 操作” 如何解决

在编写一个数据库函数时,方法实现需要查询后进行修改,出现ora-14551的错误 create or replace function fun_DxcBillSn(tabType integer,tabName varchar2,fieldStr varchar2)return integer is serialSn integer; maxVal integer; nowMonth varchar(20); begin --获取当前时间的月份-- select to_char(Sysdate,

Oracle的闪回技术--闪回错误的DML操作

提交DML操作后,该操作使用的还原段就可以被其它对象使用了,为了保证闪回操作时这些数据仍然被保存在还原段中,可能需要重新设置undo_retention参数,表示一个事务提交后,该事务的数据必须保存在还原段中的时间:但是这也并不能完全保证指定的时间的数据一定能够被恢复,还原表空间没有足够的时间时,仍会覆盖要求保留的磁盘空间. 查看undo_retention的当前值: SQL> show parameter undo_retention NAME TYPE VALUE -------------

oracle入门学习笔记

Oracle学习笔记 推荐书籍:<Oracle有用教程(从入门到精通)>.<深入浅出Oracle> 1. 当前主流数据库: |-微软:SQL Server.access |-瑞典:Mysql |-IBM: DB2 |-Sybase: Sybase |-Oracle:Oracle A. 小型数据库:access.foxbase. 负载量小,100人内,成本千元内,安全性要求不高. 比如留言板等. B. 中型数据库:Mysql.SQL Server.Informix.日訪问量5000-

使用Trigger审计一张表的DML操作

最近ogg的灾备端复制进程中的一张表老是报错ORA-04031,但是又查不到原因,于是想用审计的方法来看到底这张表是被谁做了DML操作,把数据搞没了.本来想用数据库自带的审计功能参考:http://hbxztc.blog.51cto.com/1587495/1870181 但是需要重启数据库,就放弃了,上网查资料看到有人用触发器来实现这个功能,于是自己也做了尝试. 平台11.2.0.4 [email protected]>select * from v$version; BANNER -----