您好,欢迎访问一九零五行业门户网

ORACLE常用的SQL语法和数据对象

一.数据控制语句 (dml) 部分 1.insert (往数据表里插入记录的语句) insert into 表名(字段名1, 字段名2, ……) values ( 值1, 值2, ……); insert into 表名(字段名1, 字段名2, ……) select (字段名1, 字段名2, ……) from 另外的表名; 字符串类型的字段值
一.数据控制语句 (dml) 部分
1.insert  (往数据表里插入记录的语句)
insert into 表名(字段名1, 字段名2, ……) values ( 值1, 值2, ……); 
insert into 表名(字段名1, 字段名2, ……)  select (字段名1, 字段名2, ……) from 另外的表名;
字符串类型的字段值必须用单引号括起来, 例如: ’good day’
如果字段值里包含单引号’ 需要进行字符串转换, 我们把它替换成两个单引号’’. 
字符串类型的字段值超过定义的长度会出错, 最好在插入前进行长度校验.
日期字段的字段值可以用当前的系统时间sysdate, 精确到秒
或者用字符串转换成日期型函数to_date(‘2001-08-01’,’yyyy-mm-dd’)
to_date()还有很多种日期格式, 可以参看oracle doc. 
年-月-日 小时:分钟:秒 的格式yyyy-mm-dd hh24:mi:ss
insert时最大可操作的字符串长度小于等于4000个单字节, 如果要插入更长的字符串, 请考虑字段用clob类型,
方法借用oracle里自带的dbms_lob程序包.
insert时如果要用到从1开始自动增长的序列号, 应该先建立一个序列号
create sequence 序列号的名称 (最好是表名+序列号标记) increment by 1  start  with  1 
maxvalue  99999  cycle  nocache;
其中最大的值按字段的长度来定, 如果定义的自动增长的序列号 number(6) , 最大值为999999
insert 语句插入这个字段值为: 序列号的名称.nextval
2.delete  (删除数据表里记录的语句)
delete from表名 where 条件;
注意:删除记录并不能释放oracle里被占用的数据块表空间. 它只把那些被删除的数据块标成unused.
如果确实要删除一个大表里的全部记录, 可以用 truncate 命令, 它可以释放占用的数据块表空间
truncate table 表名; 
此操作不可回退.
3.update  (修改数据表里记录的语句)
update表名 set 字段名1=值1, 字段名2=值2, …… where 条件;
如果修改的值n没有赋值或定义时, 将把原来的记录内容清为null, 最好在修改前进行非空校验; 
值n超过定义的长度会出错, 最好在插入前进行长度校验..
注意事项: 
a. 以上sql语句对表都加上了行级锁,
确认完成后, 必须加上事物处理结束的命令 commit 才能正式生效, 
否则改变不一定写入数据库里. 
如果想撤回这些操作, 可以用命令 rollback 复原.
b. 在运行insert, delete 和 update 语句前最好估算一下可能操作的记录范围, 
应该把它限定在较小 (一万条记录) 范围内,. 否则oracle处理这个事物用到很大的回退段. 
程序响应慢甚至失去响应. 如果记录数上十万以上这些操作, 可以把这些sql语句分段分次完成, 
其间加上commit 确认事物处理.
其它类似信息

推荐信息