Oracle表及字段查询语句
- 格式:docx
- 大小:14.60 KB
- 文档页数:3
通过搜索摸索,总结了一下 oracle 中查询表的信息,包括表名,字段名,字段类型,主键, 外键唯一性约束信息,索引信息查询 SQL 如下,希望对大家有所帮助:1、查询出所有的用户表select * from user_tables 可以查询出所有的用户表select owner,table_name from all_tables; 查询所有表,包括其他用户表通过表名过滤需要将字母作如下处理select * from user_tables where table_name = upper('表名 '因为无论你建立表的时候表名名字是大写还是小写的, create 语句执行通过之后,对应的 user_tables表中的 table_name字段都会自动变为大写字母, 所以必须通过内置函数 upper 将字符串转化为大写字母进行查询, 否则, 即使建表语句执行通过之后, 通过上面的查询语句仍然查询不到对应的记录。
2、查询出用户所有表的索引select * from user_indexes3、查询用户表的索引 (非聚集索引 :select * from user_indexes where uniqueness='NONUNIQUE'4、查询用户表的主键 (聚集索引 :select * from user_indexes where uniqueness='UNIQUE'5、查询表的索引select t.*,i.index_type from user_ind_columns t,user_indexes i where t.index_name = i.index_name andt.table_name='NODE'6、查询表的主键select cu.* from user_cons_columns cu, user_constraints au wherecu.constraint_name = au.constraint_name andau.constraint_type = 'P' AND cu.table_name = 'NODE'7、查找表的唯一性约束(包括名称,构成列:select column_name from user_cons_columns cu, user_constraints au wherecu.constraint_name=au.constraint_name andcu.table_name='NODE'8、查找表的外键select * from user_constraints c where c.constraint_type = 'R' andc.table_name='STAFFPOSITION'查询外键约束的列名:select * from user_cons_columns cl where cl.constraint_name = 外键名称查询引用表的键的列名:select * from user_cons_columns cl where cl.constraint_name = 外键引用表的键名9、查询表的所有列及其属性方法一:select * from user_tab_columns where table_name=upper('表名 ';方法二:select cname,coltype,width from col where tname=upper('表名 ';;10. 查询一个用户中存在的过程和函数select object_name,created,status from user_objectswhere lower(object_type in ('procedure','function';11. 查询其它角色表的权限select * from role_tab_privs ;。
oracle查询表结构sql语句在Oracle数据库中,查询表结构的SQL语句可以通过查询数据库的系统表来实现。
以下是一些常用的查询表结构的SQL语句。
1. 查询表的所有列名和数据类型:```SELECT column_name, data_typeFROM all_tab_columnsWHERE table_name = '表名';```这条SQL语句会返回指定表的所有列名和对应的数据类型。
2. 查询表的主键列:```SELECT constraint_name, column_nameFROM all_cons_columnsWHERE table_name = '表名' AND constraint_name = 'PK_表名';```这条SQL语句会返回指定表的主键列名。
3. 查询表的外键列:```SELECT constraint_name, column_name, r_constraint_name, r_table_nameFROM all_cons_columnsWHERE table_name = '表名' AND constraint_name LIKE 'FK_%';```这条SQL语句会返回指定表的外键列名、相关联的表名和外键约束名。
4. 查询表的索引:```SELECT index_name, column_nameFROM all_ind_columnsWHERE table_name = '表名';```这条SQL语句会返回指定表的索引名和对应的列名。
5. 查询表的约束:```SELECT constraint_name, constraint_typeFROM all_constraintsWHERE table_name = '表名' AND constraint_type IN ('P', 'U', 'R', 'C');```这条SQL语句会返回指定表的主键约束、唯一约束、外键约束和检查约束。
在Oracle数据库中,查询表的基本语法是使用SELECT语句。
以下是查询表的一些常见示例:
1. 查询表中的所有数据:
```sql
SELECT * FROM 表名;
```
2. 查询表中的特定字段数据:
```sql
SELECT 字段名1, 字段名2 FROM 表名;
```
3. 查询表中的字段并使用别名显示:
```sql
SELECT 字段名1 AS 别名1, 字段名2 AS 别名2 FROM 表名;
```
4. 查询表中的字段并去除重复记录:
```sql
SELECT DISTINCT 字段名1, 字段名2 FROM 表名;
```
5. 查询表中的字段并拼接字符串显示:
```sql
SELECT 字段名1 || '字符串' || 字段名2 FROM 表名;
```
6. 查看表的描述信息:
```sql
DESCRIBE 表名;
```
这些是查询表的一些基本示例,你可以根据具体的需求进行调整和扩展。
请确保将上述语句中的"表名"替换为你实际要查询的表的名称,并根据需要指定适当的字段和别名。
oracle查询数据库语句在Oracle 数据库中,用于查询数据的语句通常是SQL(Structured Query Language)语句。
以下是一些基本的Oracle 查询语句示例:1. SELECT 语句:用于从数据库表中检索数据。
```sqlSELECT column1, column2, ...FROM table_nameWHERE condition;```示例:```sqlSELECT employee_id, first_name, last_nameFROM employeesWHERE department_id = 30;```2. DISTINCT 关键字:用于返回唯一不同的值。
```sqlSELECT DISTINCT column1, column2, ...FROM table_name;```示例:```sqlSELECT DISTINCT job_idFROM employees;```3. WHERE 子句:用于过滤检索的数据。
```sqlSELECT column1, column2, ...FROM table_nameWHERE condition;```示例:```sqlSELECT employee_id, first_name, last_nameFROM employeesWHERE salary > 50000;```4. ORDER BY 子句:用于按指定的列对结果进行排序。
```sqlSELECT column1, column2, ...FROM table_nameORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ...;```示例:```sqlSELECT employee_id, first_name, last_nameFROM employeesORDER BY last_name ASC, first_name ASC;```5. GROUP BY 子句:用于对结果进行分组。
在Oracle中查看所有的表:select * from tab/dba_tables/dba_objects/cat;看用户建立的表 :selecttable_name from user_tables; //当前用户的表selecttable_name from all_tables; //所有用户的表selecttable_name from dba_tables; //包括系统表select * from user_indexes //可以查询出所有的用户表索引查所有用户的表在all_tables主键名称、外键在all_constraints索引在all_indexes但主键也会成为索引,所以主键也会在all_indexes里面。
具体需要的字段可以DESC下这几个view,dba登陆的话可以把all换成dba1、查找表的所有索引(包括索引名,类型,构成列):select t.*,i.index_type from user_ind_columnst,user_indexesi where t.index_nam e = i.index_name and t.table_name = i.table_name and t.table_name = 要查询的表2、查找表的主键(包括名称,构成列):select cu.* from user_cons_columns cu, user_constraints au where cu.constraint _name = au.constraint_name and au.constraint_type = 'P' and au.table_name = 要查询的表3、查找表的唯一性约束(包括名称,构成列):selectcolumn_name from user_cons_columns cu, user_constraints au where cu. constraint_name = au.constraint_name and au.constraint_type = 'U' and au.table _name = 要查询的表4、查找表的外键(包括名称,引用表的表名和对应的键名,下面是分成多步查询):select * from user_constraints c where c.constraint_type = 'R' and c.table_name = 要查询的表查询外键约束的列名:select * from user_cons_columns cl where cl.constraint_name = 外键名称查询引用表的键的列名:select * from user_cons_columns cl where cl.constraint_name = 外键引用表的键名5、查询表的所有列及其属性select t.*,MENTS from user_tab_columnst,user_col_comments c where t.t able_name = c.table_name and t.column_name = c.column_name and t.table_na me = 要查询的表。
oracle数据库查询字段描述要查询 Oracle 数据库中表的字段描述,可以使用以下 SQL 语句:```SELECT column_name, data_type, character_maximum_length, character_octet_length, binary_maximum_length,binary_octet_lengthFROM user_columnsWHERE table_name = "TABLE_NAME";```其中,`table_name` 是要查询的表名,`column_name` 是要查询的字段名。
`data_type` 是字段的数据类型,`character_maximum_length` 是字符型字段的最大长度,`character_octet_length` 是字符型字段的字节长度,`binary_maximum_length` 是二进制型字段的最大长度,`binary_octet_length` 是二进制型字段的字节长度。
如果要查询特定条件下的字段描述,可以使用 `desc` 命令或查询 `user_indexes` 表。
例如,如果要查询某个表的主键字段描述,可以使用以下命令:```desc table_name;```如果要查询某个表中所有字段的描述,可以使用以下命令:```SELECT column_name, data_type, character_maximum_length, character_octet_length, binary_maximum_length,binary_octet_lengthFROM user_columnsWHERE table_name = "TABLE_NAME" AND column_name NOT IN ("PK_COLUMN_NAME", "IX_COLUMN_NAME");```该查询语句将返回某个表中所有非主键和索引字段的描述。
一、概述在Oracle数据库中,使用SELECT语句进行数据查询是非常常见的操作。
在SELECT语句中,我们经常需要引用字段并进行计算,以便得到我们所需要的结果。
本文将重点讨论在Oracle数据库中如何引用字段并进行计算,并给出一些具体的实例。
二、数据库表和字段的介绍在实际的数据库操作中,我们通常需要操作数据库表和字段。
在Oracle数据库中,一个数据库可以包含多个表,每个表可以包含多个字段。
表和字段的概念是数据库中非常基础的概念,因此我们首先需要了解表和字段的基本定义。
1. 数据库表数据库表是用来存储数据的结构化对象,它以行和列的形式组织和存储数据。
不同的数据库系统对表的定义和操作可能会略有不同,但基本概念是相通的。
在Oracle数据库中,我们可以通过CREATE TABLE 语句来创建一个新的表,通过SELECT语句来查询表中的数据,通过INSERT、UPDATE、DELETE等语句来对表中的数据进行增加、修改和删除操作。
2. 数据库字段数据库字段是表中的一个列,它用来存储特定类型的数据。
每个字段都有一个名称和数据类型,数据类型决定了字段可以存储的数据的种类和范围。
在Oracle数据库中,常见的字段类型包括NUMBER(数字类型)、VARCHAR2(字符类型)、DATE(日期时间类型)等。
三、在SELECT语句中引用字段进行计算在Oracle数据库中,我们可以使用SELECT语句来查询表中的数据,并且可以在查询中引用字段并进行计算,以得到我们所需要的结果。
在SELECT语句中,我们可以使用算术运算符、比较运算符、逻辑运算符等来对字段进行计算和处理。
1. 算术运算符Oracle数据库支持基本的算术运算符,包括加法(+)、减法(-)、乘法(*)、除法(/)等。
我们可以在SELECT语句中使用这些运算符来对字段进行加减乘除等计算操作。
例如:```sqlSELECT column1 + column2 AS sum FROM table;```以上示例中,我们对表中的column1和column2字段进行加法计算,并将计算结果命名为sum返回。
关于oraclesql语句查询时表名和字段名要加双引号的问题详解作为oracle的初学者相信⼤家⼀定会遇到这个问题,如图:明明就是navicat可视化创建了表,可是就是不能查到!这个为什么呢?select * from user;但是,我们如果给user加上双引号就不⼀样了!select * from "user";却可以等到下⾯的结果,如图:到这⾥我想⼤家肯定会说:难道oracle跟mysql等不同,查询时候⼀定要加双引号?那这样不是很⿇烦!于是经过查找资料得出如下结论:1、oracle表和字段是有⼤⼩写的区别。
oracle默认是⼤写,如果我们⽤双引号括起来的就区分⼤⼩写,如果没有,系统会⾃动转成⼤写。
2、我们在使⽤navicat使⽤可视化创建时候,navicat⾃动给我们加上了“”。
这样我们在创建数据库时实际的代码是这样的:(通过到处sql语句的⽂件,这样就不难理解我们为什么找不到表了。
)1 2 3 4 5DROP TABLE "ROOT"."user";CREATE TABLE "ROOT"."user"("userid"NUMBER(2) NOT NULL)-------到这⾥,我想那些总是⽤可视化来创建表和字段的⼈该吐槽navicat了。
3、我⽤sql语句进⾏创建表和字段呢?①不加双引号创建变:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16CREATE TABLE "ROOT".personal_user_table ( personal_id NUMBER(10) NOT NULL ,login_name VARCHAR2(20 BYTE) NOT NULL , login_password VARCHAR2(20 BYTE) NOT NULL , register_time DATE NOT NULL ,fullname VARCHAR2(20 BYTE) NOT NULL ,sex CHAR(1 BYTE) NULL,id_card CHAR(18 BYTE) NULL,email VARCHAR2(30 BYTE) NULL,tel CHAR(11 BYTE) NULL,address VARCHAR2(64 BYTE) NULL,work_units VARCHAR2(64 BYTE) NULL, monthly_income NUMBER(8,2) NULL,bank_account CHAR(20 BYTE) NULL,credit_rating NUMBER(1) NULL)结果我们的表⽰这样的:②加双引号,跟我们使⽤navicat可视化操作的结果⼀样:1 2CREATE TABLE "ROOT"."personal_user_table"( "personal_id"NUMBER(10) NOT NULL ,3 4 5 6 7 8 9 10 11 12 13 14 15 16"login_name"VARCHAR2(20 BYTE) NOT NULL , "login_password"VARCHAR2(20 BYTE) NOT NULL , "register_time"DATE NOT NULL , "fullname"VARCHAR2(20 BYTE) NOT NULL , "sex"CHAR(1 BYTE) NULL,"id_card"CHAR(18 BYTE) NULL, "email"VARCHAR2(30 BYTE) NULL, "tel"CHAR(11 BYTE) NULL, "address"VARCHAR2(64 BYTE) NULL,"work_units"VARCHAR2(64 BYTE) NULL, "monthly_income"NUMBER(8,2) NULL,"bank_account"CHAR(20 BYTE) NULL,"credit_rating"NUMBER(1) NULL)结果如下:因此建议:1.建议我们的可视化操作者还是养成⼿写sql语句的习惯,我们在创建的时候就不要使⽤了双引号!这样我们就可以到达像等⼀样不区分⼤⼩写了。
下面为您介绍的语句用于实现Oracle查询用户所有表,如果您对o r a c l e查询方面感兴趣的话,不妨一看。
select * from all_tab_comments
查询所有用户的表,视图等
select * from user_tab_comments
查询本用户的表,视图等
select * from all_col_comments
查询所有用户的表的列名和注释.
select * from user_col_comments
查询本用户的表的列名和注释
select * from all_tab_columns
查询所有用户的表的列名等信息(详细但是没有备注).
select * from user_tab_columns
查询本用户的表的列名等信息(详细但是没有备注). 一般使用
1:
select t.table_name,ments from user_tab_comments t
一般使用
2:
select r1, r2, r3, r5
from (select a.table_name r1, a.column_name r2, ments r3
from user_col_comments a),
(select t.table_name r4, ments r5 from user_tab_comments t)
where r4 = r1
以上就是oracle查询用户所有表的语句介绍。
如何在oracle中查询所有用户表的表名、主键名称、索引、外键等
1、查找表的所有索引(包括索引名,类型,构成列):
select t.*,i.index_type from user_ind_columns t,user_indexes i where t.index_name = i.index_
name and t.table_name = i.table_name and t.table_name = 要查询的表
2、查找表的主键(包括名称,构成列):
select cu.* from user_cons_columns cu, user_constraints au where
cu.constraint_name = au.
constraint_name and au.constraint_type = 'P' and au.table_name = 要查询的表
3、查找表的唯一性约束(包括名称,构成列):
select column_name from user_cons_columns cu, user_constraints au where
cu.constraint_name = au.constraint_name and au.constraint_type = 'U'
and au.table_name = 要查询的表
4、查找表的外键(包括名称,引用表的表名和对应的键名,下面是分成多步查询):
select * from user_constraints c where c.constraint_type = 'R'and c.table_name = 要查询的表
查询外键约束的列名:
select * from user_cons_columns cl where cl.constraint_name = 外键名称
查询引用表的键的列名:
select * from user_cons_columns cl where cl.constraint_name = 外键引用表的键名5、查询表的所有列及其属性
select t.*,MENTS from user_tab_columns t,user_col_comments c where
t.table_name = c.table_name and t.column_name = c.column_name and t.table_name = 要查询的表。