当前位置:首页 » 编程语言 » oraclesql表结构语句

oraclesql表结构语句

发布时间: 2023-01-14 02:43:41

① oracle怎么通过sql查看表的结构

分两种方法:

1、在命令窗口通过如下语句:

desc表名;

② 用SQL输出Oracle表结构(包括主键、外键)

with M as

(SELECT t.table_name,

t.column_NAME,

t.DATA_TYPE || '(' ||t.DATA_LENGTH || ')' datatype,

t1.COMMENTS

FROM User_Tab_Columnst,

User_Col_Comments t1,

USER_TABLES T2

WHERE t.table_name =t1.table_name

AND t.column_name = t1.column_name

AND T.TABLE_NAME = T2.TABLE_NAME

ORDER BY T1.table_name),

P as (select P.table_name,

C.column_name

from user_constraints P,

user_cons_columns C ,

USER_TABLES T

whereP.constraint_type='P'

andP.table_name = T.TABLE_NAME

andP.constraint_name=C.constraint_name),

R as

(Select a.Owner fowner,

a.Table_Name ftable,

c.Column_Name fcolumn,

b.Owner mowner,

b.Table_Name mtable,

d.Column_Name mcolumn,

c.Constraint_Name fname,

d.Constraint_Name mname

From User_Constraints a,

user_Constraints b,

user_Cons_Columns c,

user_Cons_Columns d

Where a.r_Constraint_Name =b.Constraint_Name

And a.Constraint_Type = 'R'

And b.Constraint_Type = 'P'

And a.r_Owner = b.Owner

And a.Constraint_Name = c.Constraint_Name

And b.Constraint_Name = d.Constraint_Name

And a.Owner = c.Owner

And a.Table_Name = c.Table_Name

And b.Owner = d.Owner

And b.Table_Name = d.Table_Name)

select M.table_name,

M.colUMN_NAME,

M.datatype,

M.comments,

(select count(*)

from P

where P.table_name=M.table_name

and P.column_name=M.column_name

) as是否主键,--0表示是非主键,非0表示是主键

(select mtable

from R

where R.ftable=M.table_name

and R.fcolumn=M.column_name

and rownum=1

) as外键表

from M;

③ 怎么用sql语句查询表的结构

下边是SQLSERVER查询数据字典的语法,如果相查某一个表,只需要加where条件一个表名的连接即可。
SELECT TOP 100 PERCENT --a.id,
CASE WHEN a.colorder = 1 THEN d.name ELSE '' END AS 表名,
CASE WHEN a.colorder = 1 THEN isnull(f.value, '') ELSE '' END AS 表说明,
a.colorder AS 字段序号, a.name AS 字段名, CASE WHEN COLUMNPROPERTY(a.id,
a.name, 'IsIdentity') = 1 THEN '√' ELSE '' END AS 标识,
CASE WHEN EXISTS
(SELECT 1
FROM dbo.sysindexes si INNER JOIN
dbo.sysindexkeys sik ON si.id = sik.id AND si.indid = sik.indid INNER JOIN
dbo.syscolumns sc ON sc.id = sik.id AND sc.colid = sik.colid INNER JOIN
dbo.sysobjects so ON so.name = si.name AND so.xtype = 'PK'
WHERE sc.id = a.id AND sc.colid = a.colid) THEN '√' ELSE '' END AS 主键,
b.name AS 类型, a.length AS 长度, COLUMNPROPERTY(a.id, a.name, 'PRECISION')
AS 精度, ISNULL(COLUMNPROPERTY(a.id, a.name, 'Scale'), 0) AS 小数位数,
CASE WHEN a.isnullable = 1 THEN '√' ELSE '' END AS 允许空, ISNULL(e.text, '')
AS 默认值, ISNULL(g.[value], '') AS 字段说明, d.crdate AS 创建时间,
CASE WHEN a.colorder = 1 THEN d.refdate ELSE NULL END AS 更改时间
FROM dbo.syscolumns a LEFT OUTER JOIN
dbo.systypes b ON a.xtype = b.xusertype INNER JOIN
dbo.sysobjects d ON a.id = d.id AND d.xtype = 'U' AND
d.status >= 0 LEFT OUTER JOIN
dbo.syscomments e ON a.cdefault = e.id LEFT OUTER JOIN
dbo.sysproperties g ON a.id = g.id AND a.colid = g.smallid AND
g.name = 'MS_Description' LEFT OUTER JOIN
dbo.sysproperties f ON d.id = f.
id AND f.smallid = 0 AND
f.name = 'MS_Description'
where d.name = '表名'---查询固定表,如果所有,去掉where条件
ORDER BY d.name, a.colorder

ORACLE数据库使用USER_TAB_COLUMNS表
select TABLE_NAME,
COLUMN_NAME,
DATA_TYPE,
DATA_LENGTH
from USER_TAB_COLUMNS

④ Oracle基本SQL语句

删除表:
drop table 表名

修改表结构:
删除列:
alter table 表名 drop column 列名

增加列:
alter table 表名 add(列名 数据类型, 列名 数据类型.....)

修改列的数据类型:
alter table 表名 modify(列名 数据类型)

主键(Primary Key--PK):主键在表中能够唯一表示一条记录的字段,主键唯一并且不能为空。
外键(Foreign Key--FK):外键主要用来维系多表之间的关联关系,一张表中的外键,必定是另一张表中的主键。

增加主键:
alter table 表名 add constraint 键名 primary key(列名)

删除键:
alter talbe 表名 drop constraint 键名

增加外键:
alter table 表名 add constraint 键名 foreign key(列名) references 关联表名(列名)

插入语句:
insert into 表名 (列1, 列2.....) values(值1, 值2.....)

如果要插入的是一个表中的全部字段数据:
insert into 表名 values(值1, 值2......)

更新表中数据:
update 表名 set 列=值, 列=值....... [where 条件]

删除表中数据:
delete from 表名 [where 条件]

删除表中数据还可以使用truncate
truncate table 表名

注意,在更新和删除数据时,一定要在后面写条件,除非要做删除全表数据或更新全表数据。

truncate和delete的区别:如果使用delete删除表中数据,会产生日志文件,删除的数据是可以恢复,所以相对来说删除速度慢,truncate正好相反,在删除表中数据时不会产生日志文件,数据不可恢复,所以相对来说删除速度快。

sysdate:表示当前的系统日期和时间
在Oracle中提供了一张叫做al表,它是一张临时表,主要用来做测试用。

在Oracle中默认的日期格式是:“日-月-年”

伪列:
rowid:表示一条记录在内存中的地址
rownum:行号,通常用来做分页

在查询表的时候还可以给表起别名,在表名后空一格,然后写别名,在查询表中字段时可以使用“表别名.字段名”的形式。
除了给表起别名外,还可以给列起别名,两种形式,可以在列名后用as来加入别名,也可以在列后空一格,然后写别名。

在查询的时候默认列名都是大写字母,可以在起别名的时候用双引号括起来,就可以加入小写字母的别名了。

在Oracle中的字符串连接符是“||”

在查询的时候还可以对列进行四则运算,
查询10年之后学生表中每名学生的年龄:

查询学生表中每名学生出生后一个月(假定一个月为30天)的日期:

在查询语句中还可以加入查询条件:
select 列名from 表名 where 查询条件
在条件中可以加入关系运算符:< > <= >= != =
查询班级号为“1”的所有学生信息:

还可以在条件中使用逻辑运算符:and or
查询数学成绩和英语成绩都及格的学生信息

在查询条件中还可以使用in来匹配查询条件
查询数学成绩为60,70,80的学生信息:

在查询条件中,可以使用between...and来限制查询范围
查询英语成绩在80到90之间的学生信息:

在查询条件中,还可以使用is null 和 is not null来判断是否为空值。
查询有数学成绩,并且英语成绩在80分以上的学生信息:

通配符:
_ 表示任意一个字符
% 表示0到n个任意字符

查询学生表中,姓张并且姓名是两个字的同学:

查询学生表中不姓张的同学信息:

⑤ oracle sql语句 分为哪些

Oracle SQL语句分类
SQL(Structured Query Language)即结构化查询语句,应用程序与数据库交互的接口
集数据操作、数据定义、数据控制等功能于一体
ANSI先后制定推出了SQL-89、SQL-92、SQL-99标准

oracle SQL 语句主要分为一下四类:

DML(Data Mannipulation Language)数据操纵语言:查询、操纵数据表资料行
SELECT : 检索数据库表或视图数据
INSERT : 将数据行新增至数据库表或视图中
UPDATE : 修改表或视图中现有的数据行
DELETE : 删除表或视图中现有的数据行
注意:DML语句不会自动提交事务!

DDL(Data Definition Language)数据定义语言:建立、修改、删除数据库中数据表对象
CREATE TABLE : 创建表
ALTER TABLE : 修改表
DROP TABLE : 删除表
注意:DLL语句会自动提交事务!所以:DML语句事务提交之前可以回滚,DDL语句不能回滚事务

DCL(Data Control Language)数据控制语言:用于执行权限授予与收回操作
GRANT : 给用户或角色授予权限
REVOKE : 收回用户或角色的所有权限

TCL(Transactional Control Language)事物控制语言:维护数据的一致性
COMMIT :提交已经进行的数据库改变
ROLLBACK : 回滚已经进行的数据改变
SAVEPOINT : 设置保存点,用于部分数据改变的取消

⑥ oracle建表语句例子有哪些

oracle数据库的建表语句,具体语法如下:

语法说明:

tablename:在数据库中需要创建的表的表名称,在同一个数据库中的表名称是不能重复的;

column_name:创建的表的列名称,列名称在一个表中也是不能重复的;

datatype:创建的表的列中存放数据的数据类型;

null,not null:允许该列为空或者不为空,默认情况下是不为空;

constraint:为表中的列设置约束,如主键约束,外键约束,唯一约束等。

(6)oraclesql表结构语句扩展阅读

逻辑结构

它由至少一个表空间和数据库模式对象组成。这里,模式是对象的集合,而模式对象是直接引用数据库数据的逻辑结构。模式对象包括这样一些结构:表、视图、序列、存储过程、同义词、索引、簇和数据库链等。逻辑存储结构包括表空间、段和范围,用于描述怎样使用数据库的物理空间。

总之,逻辑结构由逻辑存储结构(表空间,段,范围,块)和逻辑数据结构(表、视图、序列、存储过程、同义词、索引、簇和数据库链等)组成,而其中的模式对象(逻辑数据结构)和关系形成了数据库的关系设计。

段(Segment):是表空间中一个指定类型的逻辑存储结构,它由一个或多个范围组成,段将占用并增长存储空间。

其中包括:

数据段:用来存放表数据;

索引段:用来存放表索引;

临时段:用来存放中间结果;

回滚段:用于出现异常时,恢复事务。

范围(Extent):是数据库存储空间分配的逻辑单位,一个范围由许多连续的数据块组成,范围是由段依次分配的,分配的第一个范围称为初始范围,以后分配的范围称为增量范围。

数据块(Block):

是数据库进行IO操作的最小单位,它与操作系统的块不是一个概念。oracle数据库不是以操作系统的块为单位来请求数据,而是以多个Oracle数据库块为单位。

⑦ oracle 查看表结构,表里的数据

1、首先,我们打开PLSQL工具连接到需要进行数据比对的ORACLE数据库。

⑧ Oracle 的SQL语句怎么编写

select a.类别 一级类别, b.类别 二级类别, c.类别 三级类别, d.类别 四 级类别 from 表名 a
join 表名 b on b.上级类别=a.类别
join 表名 c on c.上级类别=b.类别
join 表名 d on d.上级类别=c.类别
where a.类别 not in (select 上级类别 from 表名)

⑨ oracle数据库如何查询表结构

在sql*plus中可以用DESC命令显示表结构,例如:DESC EMP

在PL/SQL中,通过左边的浏览器查看就可以了,例如下图:

⑩ 怎样写批处理文件,导出oracle11 的所有表结构成sql语句!语句怎么写!

oracle 11.2版本不能导出空表 调整deferred_segment_creation参数
SQL> show parameter deferred

deferred_segment_creation 参数为true时无法导出空表,所以修改为false
SQL> alter system set deferred_segment_creation=FALSE;

热点内容
英雄联盟和吃鸡哪个吃配置 发布:2025-07-14 17:01:32 浏览:96
访问罗晋 发布:2025-07-14 17:00:04 浏览:395
逍遥西游辅助脚本 发布:2025-07-14 16:56:57 浏览:584
java默认类 发布:2025-07-14 16:51:03 浏览:278
术后解压 发布:2025-07-14 16:39:47 浏览:660
手机版我的世界怎么输入服务器ip 发布:2025-07-14 16:25:21 浏览:721
pythonsysstdout 发布:2025-07-14 16:15:29 浏览:196
ef数据库更新模型 发布:2025-07-14 16:14:05 浏览:411
少儿编程教育平台 发布:2025-07-14 16:13:54 浏览:301
相关存储格式图片 发布:2025-07-14 16:13:50 浏览:144