关于oracle数据库的操作的命令
生活随笔
收集整理的這篇文章主要介紹了
关于oracle数据库的操作的命令
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.--數據操作
SELECT --從數據庫表中檢索數據行和列?
select * from table order by oid desc limit 0,5; 查表中最后5條記錄
INSERT --向數據庫表添加新數據行
DELETE --從數據庫表中刪除數據行
UPDATE --更新數據庫表中的數據
--數據定義
CREATE TABLE --創建一個數據庫表
DROP TABLE --從數據庫中刪除表
ALTER TABLE --修改數據庫表結構
CREATE VIEW --創建一個視圖
DROP VIEW --從數據庫中刪除視圖
CREATE INDEX --為數據庫表創建一個索引
DROP INDEX --從數據庫中刪除索引
CREATE PROCEDURE --創建一個存儲過程
DROP PROCEDURE --從數據庫中刪除存儲過程
CREATE TRIGGER --創建一個觸發器
DROP TRIGGER --從數據庫中刪除觸發器
CREATE SCHEMA --向數據庫添加一個新模式
DROP SCHEMA --從數據庫中刪除一個模式
CREATE DOMAIN --創建一個數據值域
ALTER DOMAIN --改變域定義
DROP DOMAIN --從數據庫中刪除一個域
--數據控制
GRANT --授予用戶訪問權限
DENY --拒絕用戶訪問
REVOKE --解除用戶訪問權限
--事務控制
COMMIT --結束當前事務
ROLLBACK --中止當前事務
SET TRANSACTION --定義當前事務數據訪問特征
--程序化SQL
DECLARE --為查詢設定游標
EXPLAN --為查詢描述數據訪問計劃
OPEN --檢索查詢結果打開一個游標
FETCH --檢索一行查詢結果
CLOSE --關閉游標
PREPARE --為動態執行準備SQL 語句
EXECUTE --動態地執行SQL 語句
DESCRIBE --描述準備好的查詢
---局部變量
declare @id char(10)
--set @id = '10010001'
select @id = '10010001'
2.常用加實用的:DDL—數據定義語言(CREATE,ALTER,DROP,DECLARE)
DML—數據操縱語言(SELECT,DELETE,UPDATE,INSERT)
DCL—數據控制語言(GRANT,REVOKE,COMMIT,ROLLBACK)
首先,簡要介紹基礎語句:
1、說明:創建數據庫CREATE DATABASE database-name
2、說明:刪除數據庫drop database dbname
3、說明:備份sql server
--- 創建 備份數據的 deviceUSE master
EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'
--- 開始 備份BACKUP DATABASE pubs TO testBack
4、說明:
創建新表create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
根據已有的表創建新表:
A:create table tab_new like tab_old (使用舊表創建新表)
B:create table tab_new as select col1,col2… from tab_old definition only
5、說明:
刪除新表:drop table tabname
6、說明:
增加一個列:Alter table tabname add column col type 注:列增加后將不能刪除。DB2中列加上后數據類型也不能改變,唯一能改變的是增加varchar類型的長度。
7、說明:
添加主鍵:Alter table tabname add primary key(col)
說明:
刪除主鍵:Alter table tabname drop primary key(col)
8、說明:
創建索引:create [unique] index idxname on tabname(col….)
刪除索引:drop index idxname 注:索引是不可更改的,想更改必須刪除重新建。
9、說明:
創建視圖:create view viewname as select statement
刪除視圖:drop view viewname
10、說明:幾個簡單的基本的sql語句
選擇:select * from table1 where 范圍
插入:insert into table1(field1,field2) values(value1,value2)
刪除:delete from table1 where 范圍
更新:update table1 set field1=value1 where 范圍
查找:select * from table1 where field1 like ’%value1%’ ---like的語法很精妙,查資料!
排序:select * from table1 order by field1,field2 [desc]
總數:select count * as totalcount from table1
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最小:select min(field1) as minvalue from table1
11、說明:幾個高級查詢運算詞
A: UNION 運算符
UNION 運算符通過組合其他兩個結果表(例如 TABLE1 和 TABLE2)并消去表中任何重復行而派生出一個結果表。當 ALL 隨 UNION 一起使用時(即 UNION ALL),不消除重復行。兩種情況下,派生表的每一行不是來自 TABLE1 就是來自 TABLE2。
B: EXCEPT 運算符
EXCEPT 運算符通過包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重復行而派生出一個結果表。當 ALL 隨 EXCEPT 一起使用時 (EXCEPT ALL),不消除重復行。
C: INTERSECT 運算符
INTERSECT 運算符通過只包括 TABLE1 和 TABLE2 中都有的行并消除所有重復行而派生出一個結果表。當 ALL 隨 INTERSECT 一起使用時 (INTERSECT ALL),不消除重復行。 注:使用運算詞的幾個查詢結果行必須是一致的。
12、說明:使用外連接
A、left outer join:
左外連接(左連接):結果集幾包括連接表的匹配行,也包括左連接表的所有行。 SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
B:right outer join:
右外連接(右連接):結果集既包括連接表的匹配連接行,也包括右連接表的所有行。
C:full outer join:
全外連接:不僅包括符號連接表的匹配行,還包括兩個連接表中的所有記錄。
3.SQL復制的基本元素包括
??????? 出版服務器、訂閱服務器、分發服務器、出版物、文章。
SQL復制的工作原理
??????? SQL SERVER 主要采用出版物、訂閱的方式來處理復制。源數據所在的服務器是出版服務器,負責發表數據。出版服務器把要發表的數據的所有改變情況的拷貝復制到分發服務器,分發服務器包含有一個分發數據庫,可接收數據的所有改變,并保存這些改變,再把這些改變分發給訂閱服務器。
SQL SERVER復制技術類型
??????? SQL SERVER提供了三種復制技術,分別是:
??????? 1、快照復制(呆會我們就使用這個)
??????? 2、事務復制
??????? 3、合并復制
??????? 只要把上面這些概念弄清楚了那么對復制也就有了一定的理解。接下來我們就一步一步來實現復制的步驟。
一:先來配置出版服務器
??????? (1)選中指定[服務器]節點。
??????? (2)從[工具]下拉菜單的[復制]子菜單中選擇[發布、訂閱服務器和分發]命令。
??????? (3)系統彈出一個對話框點[下一步]然后看著提示一直操作到完成。
??????? (4)當完成了出版服務器的設置以后系統會為該服務器的樹形結構中添加一個復制監視器。同時也生成一個分發數據庫(distribution)。
二:創建出版物
??????? (1)選中指定的服務器。
??????? (2)從[工具]菜單的[復制]子菜單中選擇[創建和管理發布]命令。此時系統會彈出一個對話框。
??????? (3)選擇要創建出版物的數據庫,然后單擊[創建發布]。
??????? (4)在[創建發布向導]的提示對話框中單擊[下一步]系統就會彈出一個對話框。對話框上的內容是復制的三個類型。我們現在選第一個也就是默認的快照發布(其他兩個大家可以去看看幫助)。
??????? (5)單擊[下一步]系統要求指定可以訂閱該發布的數據庫服務器類型,SQLSERVER允許在不同的數據庫如 ORACLE或ACCESS之間進行數據復制。但是在這里我們選擇運行"SQL SERVER 2000"的數據庫服務器
??????? (6)單擊[下一步]系統就彈出一個定義文章的對話框也就是選擇要出版的表。
??????? (7)然后[下一步]直到操作完成。當完成出版物的創建后創建出版物的數據庫也就變成了一個共享數據庫。
三:設計訂閱
??????? (1)選中指定的訂閱服務器。
??????? (2)從[工具]下拉菜單中選擇[復制]子菜單的[請求訂閱]。
??????? (3)按照單擊[下一步]操作直到系統會提示檢查SQL SERVER代理服務的運行狀態,執行復制操作的前提條件是SQL SERVER代理服務必須已經啟動。然后[下一步]直到操作完。
4.1>、sysobjects
系統對象表。 保存當前數據庫的對象,如約束、默認值、日志、規則、存儲過程等
sysobjects 重要字段解釋:
sysObjects (
? Name sysname,????? --object 名稱
? id?? int,????????? --object id
? xtype char(2),???? -- object 類型
? type? char(2),???? -- Object 類型(與xtype 似乎一模一樣? 有點郁悶…)
? uid?? smallint,???? -- object 所有者的ID
? ...??????????????? --其他的字段不常用到。
)
注:需要解釋的是 xtype 和type 是一模一樣的,他的數據為:
C = CHECK 約束
D = 默認值或 DEFAULT 約束
F = FOREIGN KEY 約束
FN = 標量函數
IF = 內嵌表函數
K = PRIMARY KEY 或 UNIQUE 約束
L = 日志
P = 存儲過程
R = 規則
RF = 復制篩選存儲過程
S = 系統表
TF = 表函數
TR = 觸發器
U = 用戶表
V = 視圖
X = 擴展存儲過程
該表中包含該數據庫中的所有對象,如有那些表 存儲過程 視圖? 等信息
2、sysColumns?? 數據庫字段表。 當前數據庫的所有字段都保留在里面。
重要字段解釋:
sysColumns (
? name???? sysname,?? --字段名稱
? id?????? int,??????? --該字段所屬的表的ID
? xtype??? tinyInt,??? --該字段類型,關聯sysTypes表
? length?? smallint,?? --該字段物理存儲長度
? ...
)
比如要查詢某一個張表的有那些字段和這些字段的長度
?????? 3、sysUsers
當前數據庫的系統組,以及用戶。
sysUsers(
? uid smallint,?????? --用戶id
? name smallint ,???? --名稱
? uid? varbinary(85) , --屬于一個登陸
? ....
)
對數據庫的用戶進行管理
4、sysdenpends
當前數據庫的依賴關系。?? 比如 我要修改某一張的結構時,怕修改后會影響到其它的視圖 函數 存儲過程 ,這是在修改之前可以查詢一下.那些視圖 函數 存儲過程調用了這個表的
這樣在修改后就可以修改的視圖 函數 存儲過程,
一般程序員用到的系統表,基本也就這幾個其他的特殊的系統表(主要都在master 或者 tempdb )里面了
SELECT --從數據庫表中檢索數據行和列?
select * from table order by oid desc limit 0,5; 查表中最后5條記錄
INSERT --向數據庫表添加新數據行
DELETE --從數據庫表中刪除數據行
UPDATE --更新數據庫表中的數據
--數據定義
CREATE TABLE --創建一個數據庫表
DROP TABLE --從數據庫中刪除表
ALTER TABLE --修改數據庫表結構
CREATE VIEW --創建一個視圖
DROP VIEW --從數據庫中刪除視圖
CREATE INDEX --為數據庫表創建一個索引
DROP INDEX --從數據庫中刪除索引
CREATE PROCEDURE --創建一個存儲過程
DROP PROCEDURE --從數據庫中刪除存儲過程
CREATE TRIGGER --創建一個觸發器
DROP TRIGGER --從數據庫中刪除觸發器
CREATE SCHEMA --向數據庫添加一個新模式
DROP SCHEMA --從數據庫中刪除一個模式
CREATE DOMAIN --創建一個數據值域
ALTER DOMAIN --改變域定義
DROP DOMAIN --從數據庫中刪除一個域
--數據控制
GRANT --授予用戶訪問權限
DENY --拒絕用戶訪問
REVOKE --解除用戶訪問權限
--事務控制
COMMIT --結束當前事務
ROLLBACK --中止當前事務
SET TRANSACTION --定義當前事務數據訪問特征
--程序化SQL
DECLARE --為查詢設定游標
EXPLAN --為查詢描述數據訪問計劃
OPEN --檢索查詢結果打開一個游標
FETCH --檢索一行查詢結果
CLOSE --關閉游標
PREPARE --為動態執行準備SQL 語句
EXECUTE --動態地執行SQL 語句
DESCRIBE --描述準備好的查詢
---局部變量
declare @id char(10)
--set @id = '10010001'
select @id = '10010001'
2.常用加實用的:DDL—數據定義語言(CREATE,ALTER,DROP,DECLARE)
DML—數據操縱語言(SELECT,DELETE,UPDATE,INSERT)
DCL—數據控制語言(GRANT,REVOKE,COMMIT,ROLLBACK)
首先,簡要介紹基礎語句:
1、說明:創建數據庫CREATE DATABASE database-name
2、說明:刪除數據庫drop database dbname
3、說明:備份sql server
--- 創建 備份數據的 deviceUSE master
EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'
--- 開始 備份BACKUP DATABASE pubs TO testBack
4、說明:
創建新表create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
根據已有的表創建新表:
A:create table tab_new like tab_old (使用舊表創建新表)
B:create table tab_new as select col1,col2… from tab_old definition only
5、說明:
刪除新表:drop table tabname
6、說明:
增加一個列:Alter table tabname add column col type 注:列增加后將不能刪除。DB2中列加上后數據類型也不能改變,唯一能改變的是增加varchar類型的長度。
7、說明:
添加主鍵:Alter table tabname add primary key(col)
說明:
刪除主鍵:Alter table tabname drop primary key(col)
8、說明:
創建索引:create [unique] index idxname on tabname(col….)
刪除索引:drop index idxname 注:索引是不可更改的,想更改必須刪除重新建。
9、說明:
創建視圖:create view viewname as select statement
刪除視圖:drop view viewname
10、說明:幾個簡單的基本的sql語句
選擇:select * from table1 where 范圍
插入:insert into table1(field1,field2) values(value1,value2)
刪除:delete from table1 where 范圍
更新:update table1 set field1=value1 where 范圍
查找:select * from table1 where field1 like ’%value1%’ ---like的語法很精妙,查資料!
排序:select * from table1 order by field1,field2 [desc]
總數:select count * as totalcount from table1
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最小:select min(field1) as minvalue from table1
11、說明:幾個高級查詢運算詞
A: UNION 運算符
UNION 運算符通過組合其他兩個結果表(例如 TABLE1 和 TABLE2)并消去表中任何重復行而派生出一個結果表。當 ALL 隨 UNION 一起使用時(即 UNION ALL),不消除重復行。兩種情況下,派生表的每一行不是來自 TABLE1 就是來自 TABLE2。
B: EXCEPT 運算符
EXCEPT 運算符通過包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重復行而派生出一個結果表。當 ALL 隨 EXCEPT 一起使用時 (EXCEPT ALL),不消除重復行。
C: INTERSECT 運算符
INTERSECT 運算符通過只包括 TABLE1 和 TABLE2 中都有的行并消除所有重復行而派生出一個結果表。當 ALL 隨 INTERSECT 一起使用時 (INTERSECT ALL),不消除重復行。 注:使用運算詞的幾個查詢結果行必須是一致的。
12、說明:使用外連接
A、left outer join:
左外連接(左連接):結果集幾包括連接表的匹配行,也包括左連接表的所有行。 SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
B:right outer join:
右外連接(右連接):結果集既包括連接表的匹配連接行,也包括右連接表的所有行。
C:full outer join:
全外連接:不僅包括符號連接表的匹配行,還包括兩個連接表中的所有記錄。
3.SQL復制的基本元素包括
??????? 出版服務器、訂閱服務器、分發服務器、出版物、文章。
SQL復制的工作原理
??????? SQL SERVER 主要采用出版物、訂閱的方式來處理復制。源數據所在的服務器是出版服務器,負責發表數據。出版服務器把要發表的數據的所有改變情況的拷貝復制到分發服務器,分發服務器包含有一個分發數據庫,可接收數據的所有改變,并保存這些改變,再把這些改變分發給訂閱服務器。
SQL SERVER復制技術類型
??????? SQL SERVER提供了三種復制技術,分別是:
??????? 1、快照復制(呆會我們就使用這個)
??????? 2、事務復制
??????? 3、合并復制
??????? 只要把上面這些概念弄清楚了那么對復制也就有了一定的理解。接下來我們就一步一步來實現復制的步驟。
一:先來配置出版服務器
??????? (1)選中指定[服務器]節點。
??????? (2)從[工具]下拉菜單的[復制]子菜單中選擇[發布、訂閱服務器和分發]命令。
??????? (3)系統彈出一個對話框點[下一步]然后看著提示一直操作到完成。
??????? (4)當完成了出版服務器的設置以后系統會為該服務器的樹形結構中添加一個復制監視器。同時也生成一個分發數據庫(distribution)。
二:創建出版物
??????? (1)選中指定的服務器。
??????? (2)從[工具]菜單的[復制]子菜單中選擇[創建和管理發布]命令。此時系統會彈出一個對話框。
??????? (3)選擇要創建出版物的數據庫,然后單擊[創建發布]。
??????? (4)在[創建發布向導]的提示對話框中單擊[下一步]系統就會彈出一個對話框。對話框上的內容是復制的三個類型。我們現在選第一個也就是默認的快照發布(其他兩個大家可以去看看幫助)。
??????? (5)單擊[下一步]系統要求指定可以訂閱該發布的數據庫服務器類型,SQLSERVER允許在不同的數據庫如 ORACLE或ACCESS之間進行數據復制。但是在這里我們選擇運行"SQL SERVER 2000"的數據庫服務器
??????? (6)單擊[下一步]系統就彈出一個定義文章的對話框也就是選擇要出版的表。
??????? (7)然后[下一步]直到操作完成。當完成出版物的創建后創建出版物的數據庫也就變成了一個共享數據庫。
三:設計訂閱
??????? (1)選中指定的訂閱服務器。
??????? (2)從[工具]下拉菜單中選擇[復制]子菜單的[請求訂閱]。
??????? (3)按照單擊[下一步]操作直到系統會提示檢查SQL SERVER代理服務的運行狀態,執行復制操作的前提條件是SQL SERVER代理服務必須已經啟動。然后[下一步]直到操作完。
4.1>、sysobjects
系統對象表。 保存當前數據庫的對象,如約束、默認值、日志、規則、存儲過程等
sysobjects 重要字段解釋:
sysObjects (
? Name sysname,????? --object 名稱
? id?? int,????????? --object id
? xtype char(2),???? -- object 類型
? type? char(2),???? -- Object 類型(與xtype 似乎一模一樣? 有點郁悶…)
? uid?? smallint,???? -- object 所有者的ID
? ...??????????????? --其他的字段不常用到。
)
注:需要解釋的是 xtype 和type 是一模一樣的,他的數據為:
C = CHECK 約束
D = 默認值或 DEFAULT 約束
F = FOREIGN KEY 約束
FN = 標量函數
IF = 內嵌表函數
K = PRIMARY KEY 或 UNIQUE 約束
L = 日志
P = 存儲過程
R = 規則
RF = 復制篩選存儲過程
S = 系統表
TF = 表函數
TR = 觸發器
U = 用戶表
V = 視圖
X = 擴展存儲過程
該表中包含該數據庫中的所有對象,如有那些表 存儲過程 視圖? 等信息
2、sysColumns?? 數據庫字段表。 當前數據庫的所有字段都保留在里面。
重要字段解釋:
sysColumns (
? name???? sysname,?? --字段名稱
? id?????? int,??????? --該字段所屬的表的ID
? xtype??? tinyInt,??? --該字段類型,關聯sysTypes表
? length?? smallint,?? --該字段物理存儲長度
? ...
)
比如要查詢某一個張表的有那些字段和這些字段的長度
?????? 3、sysUsers
當前數據庫的系統組,以及用戶。
sysUsers(
? uid smallint,?????? --用戶id
? name smallint ,???? --名稱
? uid? varbinary(85) , --屬于一個登陸
? ....
)
對數據庫的用戶進行管理
4、sysdenpends
當前數據庫的依賴關系。?? 比如 我要修改某一張的結構時,怕修改后會影響到其它的視圖 函數 存儲過程 ,這是在修改之前可以查詢一下.那些視圖 函數 存儲過程調用了這個表的
這樣在修改后就可以修改的視圖 函數 存儲過程,
一般程序員用到的系統表,基本也就這幾個其他的特殊的系統表(主要都在master 或者 tempdb )里面了
總結
以上是生活随笔為你收集整理的关于oracle数据库的操作的命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: abap 面试问题
- 下一篇: ALV中调用Excel, 丢掉前面的0问