oracle 数据常规操作(新手版)
注意:
1.oracle中 SQL语句 需要使用 分号“;”结尾 ,否则会报错
2.select sysdate from dual ; select 1+1 from dual ; DUAL 是虚构的表 ,不像SQLSERVER 直接可以使用 select 1+1 , select getdate()
我们常用的小操作
nvl(data,0) --相当于SQLSERVER isnull(data,0) TO_DATE(STARTUSETIME,'YYYYMMDD') --字符串转时间格式
TO_CHAR(VALUE) --转字符串类型 ceil(months_between(TO_DATE(STARTUSETIME),sysdate)) --直接获取两个日期之间相差的月份 类似于 DIFFDATE ceil() --向下取证 floor()--向上取证
select * from dual where rownum <=10 --相当于SQLSERVER select top 10 from temp
我们需要一个循环遍历,类似于SQLSERVER中 WHILE 循环
v_count := 0; LOOP begin dbms_output.put_line(to_char(v_startusetime,'yyyy-mm-dd')); commit; end; v_count := v_count + 1; EXIT WHEN v_count >5 ; -- 循环跳出条件 END LOOP;
我们需要用一个事务控制
--脑补上面执行代码 COMMIT; --提交事务 放到最后结尾处 DBMS_OUTPUT.PUT_LINE('固定资产数据更新成功!'); EXCEPTION --拦截异常 WHEN OTHERS THEN --判断异常类型 ROLLBACK; -- 出现异常则回滚事务 DBMS_OUTPUT.PUT_LINE('固定资产数据更新失败:'); DBMS_OUTPUT.PUT_LINE(SQLERRM);
创建一个存储过程
create or replace procedure proc_gdzc_info_update ( p_cardcode in char --编码 ) as v_count number; --声明变量 v_cardcode d_gdzc_info.cardcode%TYPE; --调用表中的编码类型与长度 begin DBMS_OUTPUT.PUT_LINE(' hello wrod!'); --打印字符串 end
调用存储过程方法
--存储过程调用方式 call proc_gdzc_info_Update("cardcode") call proc_gdzc_info_Update()
创建一个视图 、并调用它
CREATE OR REPLACE VIEW VW_CLASS AS SELECT * FROM DUAL --查询的数据
--调用方式 SELECT * FROM VW_CLASS
我们把表锁了 ,需要解锁表操作
select b.owner TABLEOWNER ,C.MACHINE MACHINE ,b.object_name TABLENAME ,C.OSUSER LOCKBY ,C.USERNAME LOGINID ,c.sid SID ,C.SERIAL# SERIAL from v$locked_object a, dba_objects b, v$session c where b.object_id = a.object_id AND a.SESSION_ID=c.sid; alter system kill session '572,23597' alter system kill session 'SID,SERIAL'; --举个例子
常敲代码小助手
创建表:CREATE TABLE 表名 (字段名 数据类型, 字段名 数据类型); 修改表结构:ALTER TABLE 表名 ADD (字段名 数据类型); 重命名字段:ALTER TABLE 表名 RENAME COLUMN 旧列名 TO 新列名; 删除字段:ALTER TABLE 表名 DROP COLUMN 字段名; 添加主键:ALTER TABLE 表名 ADD PRIMARY KEY (字段名); 删除主键:ALTER TABLE 表名 DROP PRIMARY KEY; 创建索引:CREATE [UNIQUE] INDEX 索引名 ON 表名(字段名); 删除索引:DROP INDEX 索引名; 创建视图:CREATE VIEW 视图名 AS SELECT 语句; 删除视图:DROP VIEW 视图名; 数据操纵语言(DML): 插入记录:INSERT INTO 表名 VALUES (值1, 值2, ...); 查询记录:SELECT * FROM 表名; 更新记录:UPDATE 表名 SET 字段名 = 值 WHERE 条件; 删除记录:DELETE FROM 表名 WHERE 条件; 数据控制语言(DCL): 授权:GRANT 权限 TO 用户; 撤销权限:REVOKE 权限 FROM 用户; 事务控制: 提交事务:COMMIT; 回滚事务:ROLLBACK;