rowid,rownum --oracle 隐藏列
COMMENT on table 表名 is ‘**表’ —表名加注释
COMMENT on COLUMN 表名.字段名is ‘是否评价字段’ ----列名加注释
row_number()over(partition by 字段(以某一个字段分割 )ORDER BY 字段 desc) as row_flg —取最新时间
update 表名 set 字段 =字段 where 字段 is null–更新表
删除数据:
delete from 表名 where -----删某行 可回滚 慢
truncate table 表名 --删除表数据 不可回滚 较快
DROP TABLE 表名 --删除表 不可回滚 删除分区 快
alter table 表名 add(
id VARCHAR2(4000),
date DATE,
) --添加字段
alter table 表名 modify(…)----修改字段
alter table 表名 drop column name —删除字段
alter table 表名 rename column 字段名 to 新字段名 ----重命名字段名
alter table 表名1 rename to 表名2 ----重命名表
--------------oralce 使用Dblink连接其他库
insert into 表名1 as
select * from 表名2@Dblink_数据库名 --插入数据
create table 表名1 as
select * from 表名2@Dblink_数据库名 --创建数据 (无表结构,主键,注释等)
delete from 表1 a where a.rowid !=
(select max(b.rowid) from 表1 b where a.字段=b.字段)–删除重复数据(无主键)
--------------case when 用法------------------
CASE WHEN 字段1= ‘1’ THEN ‘是’
WHEN 字段1 = ‘2’ THEN ‘否’
ELSE ‘其他’ END AS 字段1新名
-------------oracle 减法用法------------------
SELECT trim(字段1) from 表1
minus
SELECT trim(字段1) from 表2—减法
– 创建序列–
create sequence 序列名1
MINVALUE 1 MAXVALUE 99999999999
INCREMENT BY 1 START WITH 1 NOCACHE
NOORDER NOCYCLE ;
–建立触发器
CREATE OR REPLACE TRIGGER 触发器名1
BEFORE INSERT ON 表 REFERENCING OLD AS “OLD” NEW AS “NEW” FOR EACH ROW WHEN (NEW.ID is null)
declare
begin
select 序列名1.nextval into :NEW.ID from dual;
end 触发器名1;
----------创建存储过程
CREATE OR REPLACE
PROCEDURE 存储过程
IS
V_TOTAL INT;
V_DATE VARCHAR(20);
BEGIN
SELECT COUNT(*) INTO V_TOTAL FROM DUAL;
SELECT TO_CHAR(SYSDATE,‘yyyy-MM-dd’) INTO V_DATE FROM DUAL;
DBMS_OUTPUT.PUT_LINE(‘总人数:’||v_total);
DBMS_OUTPUT.PUT_LINE(‘当前时间:’||v_date);
end;
select COLUMN_name from ALL_TAB_COLUMNS WHERE TABLE_NAME=‘表名(全大写)’ --查看(表)列
desc 表—查看(表)列(Command Window)
select * from v$nls_parameters------一、查看数据的编码
----处理plsql乱码
-----二、新建环境变量:2个(系统变量)
—1.
–变量名:LANG
–变量值:zh_CN.GBK
—2.
—变量名:NLS_LANG
–变量值:SIMPLIFIED CHINESE.ZHS16GBK
—备注:UTF8
–变量名:NLS_LANG
–变量值:American_America.AL32UTF8
-----------表字段排序-------------
select object_id from all_objects where owner =‘USER_PSSC’ and object_name =‘DEPARTMENT2’ ----查看表ID 表名必须大写
SELECT obj#,col#, name FROM sys.col$ where obj# = 804784— sysdba下 查看表的列id
update sys.col$ set col# =6 where obj# =804784 and name =‘NAMEQ1’ --重新排序
-----------表字段排序-------------