orace表基本操作sql语句记录

1、修改表注释、字段注释

comment on table 表名 is '注释内容'
comment on column 表名.字段名 is '注释内容'

2.删除某一列  

alter table tableName drop column columnName;

3.增加一列

alter table tableName add columnName dataType;
例如:
alter table CIF_FROZEN_JNL add POINT_ACCT_DETAIL_ID VARCHAR(32);

3.1增加一列 带默认值、且非空

alter table tableName add columnName dataType default 'N' not null;
eg:
alter table DEPT_ACCT add CURRENT_STATE VARCHAR(2) default '00' not null;

4.修改列为可空、修改列为不可空

alter table tableName modify columnName dataType NULL;
alter table tableName modify columnName dataType NOT NULL;

 

5.找出带有列名为ACCESS_JNL_NO的表名,并且将这些列字段长度由32修改为64:

select table_name from USER_TAB_COLS where column_name = 'ACCESS_JNL_NO'
select ' alter table ' || table_name || ' modify ' || column_name || ' VARCHAR(64);' from USER_TAB_COLS where column_name = 'ACCESS_JNL_NO'

USER_TAB_COLS:   可以通过USER_TAB_COLS查看当前账号所有的表和视图,以及对应的列信息。

USER_TAB_COLUMNS  视图提供当前用户拥有的表和视图中的所有列的信息。

USER_TAB_COMMENTS视图提供当前用户定义的表和视图中注释相关的信息。

USER_TAB_COLUMNS是Oracle数据库中的一个系统视图,它提供关于用户拥有的表(包括视图和索引)的列信息。 该视图以字段列名表示,每行对应于给定表中的一个列。

该视图可以使用此类查询来检索列信息:

SELECT * FROM USER_TAB_COLUMNS WHERE TABLE_NAME = ‘TABLE_NAME’;

此查询将返回表名为TABLE_NAME的所有列信息,其中包括每列的名称、数据类型、大小、默认值等等。 此外,可以使用此查询过滤出拥有特定类型列的表:

SELECT * FROM USER_TAB_COLUMNS WHERE DATA_TYPE=’DATE’;

此查询将返回拥有日期(DATE)类型的所有列的信息。

 

6.Oracle基于SQL的不重复计数实现

SELECT DISTINCT 姓名 FROM students;       
SELECT COUNT(DISTINCT 姓名) AS “不重复姓名数” FROM students;

 

7.找出重复的记录

--查询重复的商户,带上rowid
select rowid, * from MKT_MERCHANT_INFO where MERCHANT_NO in
(select MERCHANT_NO from MKT_MERCHANT_INFO group by MERCHANT_NO having count(*) > 1)
order by MERCHANT_NO;

--找出商户表中重复记录的最小rowid的那条记录
select min(rowid) from MKT_MERCHANT_INFO group by MERCHANT_NO having count(*) > 1;

--找出待删除的重复商户的记录,rowid非最小的那条
select * from MKT_MERCHANT_INFO
where MERCHANT_NO in
(select MERCHANT_NO from MKT_MERCHANT_INFO group by MERCHANT_NO having count(*) > 1)
and rowid not in
(select min(rowid) from MKT_MERCHANT_INFO group by MERCHANT_NO having count(*) > 1)

--上面sql执行后,删除这些重复的商户记录

--验证,总条数和不重复商户号的条数一致,就代表没有重复的商户记录了
select count(*) from MKT_MERCHANT_INFO;
select count(distinct MERCHANT_NO) from MKT_MERCHANT_INFO

8.删除索引

drop index index_name

 

 

 

 

 

 

 

 

 

--

posted on 2023-08-14 11:36  有点懒惰的大青年  阅读(12)  评论(0编辑  收藏  举报