利用sql语句查询某个表的结构的方法:
成都创新互联公司主营青白江网站建设的网络公司,主营网站建设方案,重庆APP开发公司,青白江h5微信小程序开发搭建,青白江网站营销推广欢迎青白江等地区企业咨询
通过Oracle中的user_tab_cols, user_col_comments, user_constraints, user_cons_columns表联合查询。
1、user_tab_cols用来获取对应用户表的列信息;
2、user_col_comments用来获取对应用户表列的注释信息;
3、user_constraints用来获取用户表的约束条件;
4、user_cons_columns约束中用户可访问列。
示例代码:
select t.table_name,
t.column_name,
t.data_type,
t.data_length,
t.nullable,
t.column_id,
c.comments,
(SELECT CASE
WHEN t.column_name = m.column_name THEN
1
ELSE
0
END
FROM DUAL) iskey
FROM user_tab_cols t,
user_col_comments c,
(select m.column_name
from user_constraints s, user_cons_columns m
where lower(m.table_name) = 'qh_outstoresabinfo'
and m.table_name = s.table_name
and m.constraint_name = s.constraint_name
and s.constraint_type = 'P') m
WHERE lower(t.table_name) = 'qh_outstoresabinfo'
and c.table_name = t.table_name
and c.column_name = t.column_name
and t.hidden_column = 'NO'
order by t.column_id
觉得你应该先弄清楚oracle的常规数据字典的结构,像9i里的常规数据字典中对象名称就有以USER,ALL,DBA为前缀的对象。
以USER为例,我们查该对象下有些什么表,就应该执行下列的语句:
SQLselect table_name from user_tables;
类似的,你可以进行替换。:)
如果你想查数据库中所有的表的话,可以查询
SELECT * FROM dba_tables
如果你想查询数据库中某个用户下的表的话,也可以登录这个用户,再查询:
SELECT * FROM USER_TABLES
要想导入外部sql语句可以用命令
sql @e:\文件名.sql
如你想保存 select * from tablename;语句的结果,可以在sql*plus 里面这样:
SPOOL c:\test.sql //这是保存文件的位置
select * from tablename;
SPOOL OFF
1、首先,我们打开PLSQL工具连接到需要进行数据比对的ORACLE数据库。
2、登录成功后,点击工具(tool)选择匹配用户结构(compare user objects)我们先匹配数据表结构以防止匹配数据时造成数据无法修改的风险。
3、在弹出的界面中选择我们需要匹配的数据表,点击目标会话(target session)输入需要匹配数据的对应数据库用户名密码,点击ok连接成功后单击匹配数据(compare)。
4、如果数据表结构有差异在弹出的界面会显示数据库中表结构的差异,并形成相关的升级sql语句,数据表匹配只考虑源数据库中没有的表或列,查看sql语句是否为我们想要匹配的,如果是点击确认匹配,数据库表结构匹配完成。
5、登录成功后,点击工具(tool)选择匹配表数据(compare table data)。
6、如果是点击确认匹配,数据库表数据匹配完成。
以下的文章主要是介绍Oracle常用的命令中如何查看表的结构.EDITDATA 表名;修改表字段:Alter table 表名 modify(字段名 类型 约束);alter table test modify (addd varchar2(10) null); alter table 表名 add(字段名 类型 约束);alter table test add(age varchar2(5)); 1.登陆系统用户在Oracle常用命令中查看表结构sqlplus 然后输入系统用户名和密码登陆别的用户conn 用户名/密码;2.创建表空间create tablespace 空间名 datafile 'c:\空间名' size 15M --表空间的存放路径,初始值为15M autoExtend on next 10M --空间的自动增长的值是10M permanent online; --永久使用 3.创建用户create user shi --创建用户名为shi identified by scj --创建密码为scj default tablespace 表空间名 --默认表空间名 temporary tablespace temp --临时表空间为temp profile default --受profile文件的限制 quota unlimited on 表空间名; --在表空间下面建表不受限制 4.创建角色create role 角色名 identified by 密码;5.给角色授权grant create session to 角色名;--给角色授予创建会话的权限grant 角色名 to 用户名; --把角色授予用户6.给用户授予权限grant connect,resource to shi;--给shi用户授予所有权限 Grant dba to shi;-给shi 用户授予DBA权限 grant create table to shi; --给shi用户授予创建表的权限 7.select table_name from user_tables; 察看当前用户下的所有表8.select tablespace_name from user_tablespaces; 察看当前用户下的 表空间9.select username from dba_users;察看所有用户名称命令 必须用sys as sysdba登陆10.创建表create table 表名( id int not null, name varchar2(20) not null )tablespace 表空间名 --所属的表空间 storage ( initial 64K --表的初始值 minextents 1 --最小扩展值 maxextents unlimited --最大扩展值 ); 11.为usrs表添加主键和索引alter table users add constraint pk primary key (ID); 12.为已经创建users表添加外键alter table users add constraint fk_roleid foreign key (roleid) references role(role_id) on delete cascad; --下边写主表的列 on delete cascad是创建级联 13.把两个列连接起来select concat(name,id) from 表名; --把name和id连接起来14.截取字符串select column(name,'李') from 表名;把name中的‘李’去掉15.运行事务之前必须写set serveroutput on; 打开输入输出(不写的话,打印不出信息)16.while的应用declare --声明部分 ccc number:=1; --复职 a number:=0; begin --事务的开始 while ccc=100 loop --循环 if((ccc mod 3)=0) then --条件 dbms_output.put_line(ccc||','); --打印显示 aa:=a+ccc; end if; --结束if cc:=ccc+1; end loop; --结束循环 dbms_output.put_line(a); end; --结束事务 / 17.select into 的用法 --只能处理一行结果集declare name varchar(30); begin select username into name from users where id=2; dbms_output.put_line('姓名为:'||name); end; / 上述的相关内容就是对Oracle常用命令中查看表结构的描述,希望会给你带来一些帮助在此方面。
查看表结构的:desc
(表名);创建表的create语句就是在plsql上按住Ctrl键点击该表名然后在点击这个页面右下角的“查看sql“按钮就可以看到了
;不使用工具的话,先把表导出来然后在导进去,导进去的时候使用show=y、log这两个选项,就可以查看了!不懂再百度下吧,网上有很详细的。