當前位置:首頁 » 編程語言 » 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 20:57:16 瀏覽:114
加密貨幣app 發布:2025-07-14 20:46:57 瀏覽:553
醫院防汛演練方案與腳本 發布:2025-07-14 20:41:11 瀏覽:777
公網ip做域伺服器地址 發布:2025-07-14 20:40:13 瀏覽:52
php獲取幾 發布:2025-07-14 20:22:20 瀏覽:376
舊安卓如何刷入最新安卓 發布:2025-07-14 20:16:14 瀏覽:763
伺服器或網路不給力是什麼意思 發布:2025-07-14 20:15:36 瀏覽:318
爬網站資料庫 發布:2025-07-14 20:15:20 瀏覽:520
邵雍的演算法 發布:2025-07-14 20:13:49 瀏覽:119
離線燒錄加密 發布:2025-07-14 20:12:13 瀏覽:620