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