大家好,又见面了,我是你们的朋友全栈君。
1、查找表的所有索引(包括索引名,类型,构成列):
select t.*,i.index_type fromuser_ind_columns t,user_indexes i
where t.index_name = i.index_name andt.table_name = i.table_name
and t.table_name = 要查询的表
2、查找表的主键(包括名称,构成列):
select cu.* from user_cons_columns cu, user_constraintsau where
cu.constraint_name = au.constraint_name and au.constraint_type =
‘P’and au.table_name = 要查询的表
3、查找表的唯一性约束(包括名称,构成列):
select column_name from user_cons_columnscu, user_constraints au
where cu.constraint_name = au.constraint_name andau.constraint_type
= ‘U’ and au.table_name = 要查询的表
4、查找表的外键(包括名称,引用表的表名和对应的键名,下面是分成多步查询):
select * from user_constraints c wherec.constraint_type = ‘R’
and c.table_name = 要查询的表
查询外键约束的列名:
select * from user_cons_columns cl where cl.constraint_name=
外键名称
查询引用表的键的列名:
select * from user_cons_columns cl wherecl.constraint_name =
外键引用表的键名
5、查询表的所有列及其属性
select t.*,c.COMMENTS from user_tab_columnst,user_col_comments c
where t.table_name = c.table_name and t.column_name =
c.column_nameand t.table_name = 要查询的表
取Oracle 表名 字段名 注释等实用语句
–查看ORACLE数据库中本用户下的所有表SELECT table_name FROM user_tables;
–查看ORACLE数据库中所有用户下的所有表select user,table_name from all_tables;
–查看ORACLE数据库中本用户下的所有列select table_name,column_name from
user_tab_columns;
–查看ORACLE数据库中本用户下的所有列select user,table_name,column_name from
all_tab_columns;
–查看ORACLE数据库中的序列号select * from user_sequences;
–上面的所有对象,都可以通过下面的SQL语句查询得到–查询所有的用户生成的ORACLE对象
SELECT * FROM user_objects;
–查看ORACLE数据库中所有表的注释select table_name,comments from
user_tab_comments;
–查看ORACLE数据库中所有列的注释select table_name,column_name,comments from
user_col_comments;
–给表加ORACLE的注释COMMENT ON TABLE aa10 IS ‘系统参数表’;
–给列加ORACLE的注释COMMENT ON COLUMN aa10.aaa100 IS
‘参数类别’;
–查看表中列的属性,包括 数据类型,是否非空等DESC aa10;
–通过系统表,查看表中列的属性,包括 数据类型,是否非空等
SELECT
table_name,COLUMN_ID,column_name,data_type,data_length,DATA_PRECISION,NULLABLE
FROM user_tab_columns
ORDER BY table_name,COLUMN_ID;
–查看所有表空间
selecttablespace_name,sum(bytes)/1024/1024 from
dba_data_filesgroup
by tablespace_name
–查看未使用表空间大小
selecttablespace_name,sum(bytes)/1024/1024 from
dba_free_space group bytablespace_name;
–查看数据库中表、索引占用的数据库空间大小 SELECT * FROM user_segments;
–查看所有表的记录数CREATE TABLE table_count(table_name VARCHAR2(50),columns
NUMBER(20));
–通过PB运行下面的语句,得到结果集,将结果集在PB下执行,最后提交select ‘insert into table_count values(”’||table_name||”’,
(select count(1)from ‘||table_name||’));//’||comments from
user_tab_comments;
–所有表的记录都在table_count了
SELECT * FROM table_count;
//将ORACLE数据库的注释同步到PB中
代码开始DELETE FROM PBCATCOL WHERE PBC_TNAM LIKE ‘%’;
DELETE FROM PBCATTBL WHERE PBT_TNAM LIKE ‘%’;
INSERT INTO PBCATTBL
( PBT_TNAM,
PBT_OWNR ,
PBT_CMNT)
SELECT ALL_TAB_COMMENTS.TABLE_NAME,
ALL_TAB_COMMENTS.OWNER,
ALL_TAB_COMMENTS.COMMENTS
FROM ALL_TAB_COMMENTS
WHERE ALL_TAB_COMMENTS.OWNER = ‘LH’
AND TABLE_NAME LIKE ‘%’;
//同步字段名
INSERT INTO PBCATCOL
( PBC_TNAM,
PBC_OWNR,
PBC_CNAM,
PBC_LABL,
PBC_CMNT,
PBC_HDR)
SELECT ALL_COL_COMMENTS.TABLE_NAME,
ALL_COL_COMMENTS.OWNER,
ALL_COL_COMMENTS.COLUMN_NAME,
ALL_COL_COMMENTS.COMMENTS ,
ALL_COL_COMMENTS.COMMENTS ,
ALL_COL_COMMENTS.COMMENTS
FROM ALL_COL_COMMENTS
WHERE ALL_COL_COMMENTS.OWNER = ‘LH’
AND TABLE_NAME LIKE ‘%’;
COMMIT;
–将ORACLE数据库的注释同步到PB中
代码结束
–将PB注释同步到ORACLE中select ‘comment on table ‘||pbt_tnam||’ is ”’||pbt_cmnt||”’;’
from pbcattblwhere pbt_tnam not like ‘PB%’
UNION
select ‘comment on column ‘||pbc_tnam||’.’||pbc_cnam||’ is
”’||pbc_cmnt||”’;’from pbcatcol where pbC_tnam not like
‘PB%’;
–查进程 select object_id,session_id,locked_mode from
v$locked_object;
selectt2.username,t2.sid,t2.serial#,t2.logon_time
from v$locked_object t1,v$session t2
where t1.session_id=t2.sid order by t2.logon_time;
–杀进程 alter system kill session ‘3,6666’;
oracle操作语句:
1.创建表
create table表名(
列名1类型,
列名2类型
);
2.修改类属性
alter table表名 modify(列名类型);
3.添加列
alter table表名 add(列名类型);
4.添加主键约束和非空约束
alter table表名 add constraint
pk_表名 primary
key(列名);
alter table表名 modify(列名 not
null);
5.删除主键约束
alter table表名 drop primary
key;
alter table表名 drop constraint
pk_表名;
6.失效约束
alter table表名 disable primary
key;
alter table表名 disable constraint
pk_表名;
7.有效约束
alter table表名 enable primary
key;
alter table表名 enable constraint
pk_表名;
8.删除列
alter table表名 drop
column列名;
9.设置某列不可用,然后删除
alter table表名 set unused(列名);
alter table表名 drop unused
columns;
10.修改表名
rename表名1
to表名2
alter表名1 rename
to表名2;
11.截断表
truncate table表名;
12.截断表保留行空间
truncate table表名 resue
storage;
13.查看表结构
desc table表名;
14.删除表
drop table表名;
15.插入记录
例:insert
into表名 values(内容1,内容2,内容3,内容4);
16.带参数对话方式插入行
例:insert
into表名
values(&列名1,&列名2);
insert
into表名 values(内容1,内容2);
17.插入某几列记录
insert into表名(列名1,列名2) values(内容1,内容2);
18.为列插入空值(其列不能为not
null)
insert into表名 values(内容1,null,null);
19.创建表(包括主键及外键设置)方法一
create table表名(
列名1类型
constraint
pk_表名 primary
key,
列名2类型
not null,
列名3类型
constraint
fk_表名
reference表名(列名),
列名3类型
constraint
ck_表名
check(列名3
in(”内容1”,”内容2”,”内容3”)));
20.查询所有行
select * from表名;
21.查询某几列
select列名1,列名2
from表名;
22.重复行消除
select distict列名
from表名;
23.where语句查询
select * from表名
where条件 order
by列名;
(注:如number类型查出自动按升序排列,如要按降序排列,则select *
from表名
where条件 order
by列名
desc;)
24.创建表,方法二
create table表名(
列名1类型
primary key,
列名2类型
not null,
列名3类型check(列名3
in(””,””,””)),
列名4类型
refernce表名(列名)
);
25.修改列=‘?’的数据
update表名 set (列=?)
where列=‘?’;
26.删除行
delete from表名
where条件;
27.事务处理
–事务处理
update表名
set列名(日期) = ”30-5月-98”
where条件;
savepoint mark1;
delete from表名
where条件;
savepoint mark2;
rollback to savepoint mark1;
rollback;
28.建立用户user1,密码为password
授予用户connect,resource的权限
connect角色用于登录
resource角色用于建表等.
connect system/manager
create user user1 identified
bypassword;
grant connect,resource to
password;
29.数据控制语言
connect scott/tiger
30.把对表1查询和修改的权限授予user1
grant select,update
on表1
to user1;
31.把对表表1中列1和列2修改的权限授予user1
grant update(列1,列2)
on表1 to
user1;
32.把对表表1查询的权限授予用户user1
并且user1用户还可以把这个权限授予别的用户(with grant
option)
grant select on表1 to user1 with grant
option;
33.从用户user1撤销对表1查询和修改的权限
revoke select,update
on表1 from user1;