1. 程式人生 > >Sybase資料庫常用命令

Sybase資料庫常用命令

一、Sybase資料庫簡介
1.版本
1984年,Mark B. Hiffman和Robert Epstern建立了Sybase公司,並在1987年推出了Sybase資料庫產品。SYBASE主要有三種版本,一是UNIX作業系統下執行的版本,二是Novell Netware環境下執行的版本,三是Windows NT環境下執行的版本。對UNIX作業系統目前廣泛應用的為SYBASE 10 及SYABSE 11 for SCO UNIX。 2.Sybase資料庫的特點
(1)它是基於客戶/伺服器體系結構的資料庫
一般的關係資料庫都是基於主/從式的模型的。在主/從式的結構中,所有的應用都執行在一臺機器上。使用者只是通過終端發命令或簡單地檢視應用執行的結果。 而在客戶/伺服器結構中,應用被分在了多臺機器上執行。一臺機器是另一個系統的客戶,或是另外一些機器的伺服器。這些機器通過區域網或廣域網聯接起來。 客戶/伺服器模型的好處是: 它支援共享資源且在多臺裝置間平衡負載 允許容納多個主機的環境,充分利用了企業已有的各種系統 (2) 它是真正開放的資料庫
由於採用了客戶/伺服器結構,應用被分在了多臺機器上執行。更進一步,執行在客戶端的應用不必是Sybase公司的產品。對於一般的關係資料庫,為了讓其它語言編寫的應用能夠訪問資料庫,提供了預編譯。Sybase資料庫,不只是簡單地提供了預編譯,而且公開了應用程式介面DB-LIB,鼓勵第三方編寫DB-LIB介面。由於開放的客戶DB-LIB允許在不同的平臺使用完全相同的呼叫,因而使得訪問DB-LIB的應用程式很容易從一個平臺向另一個平臺移植。 (3) 它是一種高效能的資料庫
Sybase真正吸引人的地方還是它的高效能。體現在以下幾方面:
可程式設計資料庫
通過提供儲存過程,建立了一個可程式設計資料庫。儲存過程允許使用者編寫自己的資料庫子例程。這些子例程是經過預編譯的,因此不必為每次呼叫都進行編譯、優化、生成查詢規劃,因而查詢速度要快得多。 事件驅動的觸發器
觸發器是一種特殊的儲存過程。通過觸發器可以啟動另一個儲存過程,從而確保資料庫的完整性。 多線索化
Sybase資料庫的體系結構的另一個創新之處就是多線索化。一般的資料庫都依靠作業系統來管理與資料庫的連線。當有多個使用者連線時,系統的效能會大幅度下降。Sybase資料庫不讓作業系統來管理程序,把與資料庫的連線當作自己的一部分來管理。此外,Sybase的資料庫引擎還代替作業系統來管理一部分硬體資源,如埠、記憶體、硬碟,繞過了作業系統這一環節,提高了效能。
3.Sybase資料庫的組成
Sybase資料庫主要由三部分組成:
(1) 進行資料庫管理和維護的一個聯機的關係資料庫管理系統Sybase SQL Server; Sybase SQL Server是個可程式設計的資料庫管理系統,它是整個Sybase產品的核心軟體,起著資料管理、高速緩衝管理、事務管理的作用。
(2) 支援資料庫應用系統的建立與開發的一組前端工具Sybase SQL Toolset;
ISQL是與SQL Server進行互動的一種SQL句法分析器。ISQL接收使用者發出的SQL語言,將其傳送給SQL Server,並將結果以形式化的方式顯示在使用者的標準輸出上。
DWB是資料工作臺,是Sybase SQL Toolset的一個主要組成部分,它的作用在於使使用者能夠設定和管理SQL Server上的資料庫,並且為使用者提供一種對資料庫的資訊執行新增、更新和檢索等操作的簡便方法。在DWB中能完成ISQL的所有功能,且由於DWB是基於視窗和選單的,因此操作比ISQL簡單,是一種方便實用的資料庫管理工具。 APT是Sybase客戶軟體部分的主要產品之一,也是從事實際應用開發的主要環境。APT工作臺是用於建立應用程式的工具集,可以建立從非常簡單到非常複雜的應用程式,它主要用於開發基於表格(Form)的應用。其使用者介面採用視窗和選單驅動方式,通過一系列的選擇完成表格(Form)、選單和處理的開發。
(3) 可把異構環境下其它廠商的應用軟體和任何型別的資料連線在一起的介面Sybase Open Client/Open Server。 通過Open Client的DB-LIB庫,應用程式可以訪問SQL Server。而通過Open Server的SERVER-LIB,應用程式可以訪問其它的資料庫管理系統。
二、SYBASE有關概念
Sybase SQL Server是一個多庫資料庫系統。這些資料庫包括系統資料庫和使用者資料庫。 而不論是系統資料庫還是使用者資料庫,都建立在資料庫裝置上。 1. 資料庫裝置
所有的資料庫都建立在資料庫裝置上。所謂資料庫裝置,不是指一個可識別的物理裝置,而是指用於儲存資料庫和資料庫物件的磁碟原始分割槽或作業系統檔案。增加一個新的資料庫裝置時,必須對這些裝置“初始化”。初始化的過程就是將物理磁碟、磁碟分割槽或作業系統檔案變為SYBASE資料庫可以識別的裝置。初始化資料庫裝置使用DISK INIT命令:
 
DISK INIT 
NAME=裝置名, 
PHYSNAME=物理裝置名, 
VDEVNO=虛擬裝置號, 
SIZE=塊數  其中,NAME指資料庫裝置名,此名將用於CREATE DATABASE和ALTER DATABASE命令。PHYSNAME是原始磁碟分割槽或作業系統檔名。VDEVNO是資料庫裝置的標識號,在SQL Server中,它必須是唯一的。SIZE的單位是2K的塊,對於新建立的資料庫,最小的SIZE是model資料庫的尺寸,即1024個2K的塊(2M)。 00M的物理裝置初始化為SYBASE的資料庫裝置tele114_log01*/
1>disk init 
2>name=“tele114_log01”, 
3>physname=“/dev/rtelelog” 
4>vdevno=4 
5>size=204800 /*2Kbyte*204800=400Mbyte*/ 
6>go  2、段
資料庫裝置從邏輯上被劃分為資料庫段以允許將某一特定的物件放置在指定的段上(建立物件時指定),一資料庫裝置可擁有多達192個段,一段可使用 255個邏輯裝置上的儲存空間。當用戶建立一個數據庫時,SQL SERVER 會自動在該資料庫中建立三個段: SYSTEM、 LOGSEGMENT 、DEFAULT,這三個段分別用來儲存資料庫的系統表、事務日誌和其他資料庫物件 在資料庫中建立段的步驟是:
先用Disk init 初始化物理裝置 通過使用Create database 和alter database 的on 子句,使資料庫裝置對資料庫可用,於是新裝置自動增加到資料庫的default 和system段。 一旦資料庫裝置存在並對資料庫可用,使用儲存過程Sp_addsegment 定義資料庫的段。語法如下: Sp_addsegment 段名,資料庫名,裝置名 3、 系統資料庫
安裝Sybase資料庫時自動生成的下列系統資料庫:
● 主資料庫master; 
● 模型資料庫model; 
● 系統過程資料庫sybsystemprocs; 
● 臨時資料庫tempdb。 
也可選擇下列資料庫: 
● 安全稽核資料庫sybsecurity; 
● 示例資料庫pubs2; 
● 命令語法資料庫sybsyntax。 
(1) master資料庫包含許多系統表和系統過程,從總體上控制使用者資料庫和SQL Server的操作,構成了SYBASE系統的資料字典。MASTER資料庫主要記錄資訊為:

● 登入帳號(SQL伺服器使用者名稱);syslogins,sysremolelogins 
● 正在執行的過程;sysprocesses 
● 可修改的環境變數;sysconfigures 
● 系統錯誤資訊;sysmessages 
● SQL伺服器上每個資料庫的資訊;sysdatabases 
● 每個資料庫佔用的儲存空間;sysusages 
● 系統上安裝的磁帶及磁帶資訊;sysdevices 
● 活動鎖資訊;syslocks  (2) model資料庫
提供了新使用者資料庫的初型。當我們每次用CREATE DATABASE命令 時,SQL Server都產生一個model資料庫的拷貝,然後把它擴充套件到命令要求的尺寸。如果我們修改了model資料庫,那麼以後新建立的資料庫都將隨它而改變。下面是幾個通常用到的對model資料庫的改變:
● 增加使用者資料庫型別、規則或預設; 
● 可存取SQL Server上所有資料庫的使用者用sp_adduser增加到model資料庫上; 
● 預設許可權(特別是guest帳號)可在model中建立; 
● 諸如select into/bulkcopy那樣的資料庫選項可在model中設定。
   這些設定反映到所有新建立的資料庫中。它們在model中最原始的值是關(off)。  在一般情況下,大多數使用者無權修改model資料庫,又沒被授權讀取。因為model中所有內容已拷貝到新資料庫中,授權讀model沒什麼意義。
1> use model 
2> go 
3> sp_help 
4> go 
Name Owner Object_type 
--------------- --------------- ---------------------- 
sysalternates dbo system table 
syscolumns dbo system table 
syscomments dbo system table 
sysconstraints dbo system table 
sysdepends dbo system table 
sysgams dbo system table 
sysindexes dbo system table 
syskeys dbo system table 
syslogs dbo system table 
sysobjects dbo system table 
sysprocedures dbo system table 
sysprotects dbo system table 
sysreferences dbo system table 
sysroles dbo system table 
syssegments dbo system table 
systhresholds dbo system table 
systypes dbo system table 
sysusermessages dbo system table 
sysusers dbo system table  (3) sybsystemprocs資料庫
庫中儲存系統過程,當用戶執行一儲存過程(以sp_開始)時,SQL 伺服器首先在使用者當前資料庫中搜索指定的儲存過程,如果沒有相應過程,則到系統過程資料庫中尋找,若沒有,再到MASTER資料庫中尋找。
(4)臨時資料庫tempdb
該資料庫為臨時表和臨時工作提供了一個儲存區域。臨時資料庫是SQL Server上所有資料庫共享的工作空間。由於這些表都是臨時的,所以每當使用者退出或系統失敗,這些表都將消失。
(5)安全稽核資料庫sybsecurity 資料庫中儲存系統的安全稽核資訊,它可跟蹤記錄每個使用者的操作情況,為維護系統安全提供控制手段。
(6)示例資料庫pubs2
為使用者提供一個學習SYBASE的資料庫模型。
(7)命令語法資料庫sybsyntax
庫中儲存SYBASE資料庫的命令語法及支援的語言庫。
4、使用者資料庫
使用者資料庫是指用Create database 命令建立的資料庫。所有新的使用者資料庫都要在master資料庫中建立,也就是說,不能存取 master資料庫的使用者是無權建立新的資料庫的。SA可以將建立資料庫的許可權授予其他使用者。新建資料庫中存在一些系統表,在sysusers表中至少有一條記錄,既該資料庫的建立者。資料庫建立時,建立者既為該資料庫的 owner, 當然建立者可以將這一地位或這一所有權用系統過程授予別的使用者。
5、資料庫物件
(1)表(Tables)
在一個關係資料庫中,表是最重要的資料庫物件,對應於關係資料庫理論中關係,與DBASE或FOXPRO中的DBF檔案是類似。一切資料都存放在表中。其它資料庫物件都是為了使用者很好地操作表中的資料。表都以一張二維表的形式存在。其中,每一列稱之為一個欄位,或一個域;而每一行稱之為一個記錄,也就是一項資料。 有一類表,它們的名字都是以sys開頭的,這些表稱為系統表,系統表記錄著有關SQL Server的資訊。在master資料庫中的表大部分為系統表,這些表是隨著master資料庫的建立而建立的。另外,每個使用者資料庫在建立時都有一個系統表的子集。 例如,只有在master資料庫中才有的系統表有:sysconfigures、sysdatabases、sysdevices、 syslogins等;在使用者資料庫和系統資料庫中都有的系統表有:sysalternates、syscolumns、sysindexs、 syslogs、sysobjects、sysusers等。 例:
1> use master 
2> go 
3> sp_help 
4> go 
Name Owner Object_type 
------------------------------ ----------------------------------------------- 
spt_committab dbo user table 
spt_datatype_info dbo user table 
spt_datatype_info_ext dbo user table 
spt_monitor dbo user table 
spt_server_info dbo user table 
spt_values dbo user table 
sysalternates dbo system table 
syscharsets dbo system table 
syscolumns dbo system table 
syscomments dbo system table 
sysconfigures dbo system table 
sysconstraints dbo system table 
syscurconfigs dbo system table 
sysdatabases dbo system table 
sysdepends dbo system table 
sysdevices dbo system table 
sysengines dbo system table 
sysgams dbo system table 
sysindexes dbo system table 
syskeys dbo system table 
syslanguages dbo system table 
syslisteners dbo system table 
syslocks dbo system table 
sysloginroles dbo system table 
syslogins dbo system table 
syslogs dbo system table 
sysmessages dbo system table 
sysmonitors dbo system table 
sysobjects dbo system table 
sysprocedures dbo system table 
sysprocesses dbo system table 
sysprotects dbo system table 
sysreferences dbo system table 
sysremotelogins dbo system table 
sysroles dbo system table 
syssegments dbo system table 
sysservers dbo system table 
syssrvroles dbo system table 
systestlog dbo system table 
systhresholds dbo system table 
systypes dbo system table 
sysusages dbo system table 
sysusermessages dbo system table 
sysusers dbo system table 
sp_configure dbo stored procedure 
sp_dboption dbo stored procedure 
sp_getmessage dbo stored procedure 
sp_procxmode dbo stored procedure 
sp_prtsybsysmsgs dbo stored procedure 
sp_validlang dbo stored procedure 
說明見附錄表1  (2)檢視(Views)
檢視是檢視一張或幾張表中的資料的一種方式。通過將一張或幾張表中的一部分資料進行組合得到檢視。檢視看上去與表非常相象,但與表還是有著本質的區別。通過檢視看到的資料實際上都是存放在表中的,在資料庫中僅存在檢視的定義。 使用檢視的好處是:
● 操作方便
● 安全性
(3)索引(Index)
索引是對欄位生成的,用於加快資料的檢索。在Sybase資料庫中,索引是由系統自動管理的,也就是說,Sybase的索引操作對使用者是透明的。表的索引一旦建立,系統會自動對其進行更新維護以使它與相應表對應一致;操作時,使用者無須指定索引,系統會自動確定是否使用索引進行操作。 Sybase支援三種不同型別的索引,一是複合索引,即包含幾個列的索引;二是唯一性索引,即任意兩行中的索引列不能有相同的取值;三是簇類索引(Clustered indexes)和非簇類索引(Nonclustered indexs),簇類索引使SQL伺服器不斷重排表行的物理順序以使其與邏輯索引順序相一致,非簇類索引則不需要錶行的物理順序與邏輯順序一致。每個表最多隻能建立一個簇類索引,非簇類索引則可建立多個。與非簇類索引相比,簇類索引的檢索速度要快。應當在建立任何非簇類索引以前建立簇類索引。
(4)儲存過程(Stored procedures)
儲存過程是用T-SQL語言編寫成的SQL子例程,它儲存於SQL伺服器上供使用者呼叫執行。與一般的SQL語句和批處理語句不同的是,儲存過程是經過預編譯的。當首次執行一個儲存過程時,SQL Server的查詢處理器將對其分析,併產生最終的執行方案。由於查詢處理的大部分工作已經完成,所以以後執行儲存過程時速度將會很快。執行儲存過程時可帶引數並可呼叫其他儲存過程,執行完畢後返回資訊以指示是否成功完成相應操作。儲存過程有兩種:一種是 SQL伺服器安裝時自動建立的系統儲存過程(系統過程),另一種是使用者自己建立的儲存過程。 系統過程是用於系統管理,並且為使用者提供了從事資料庫管理的一種途徑。這些系統過程都是以sp_開頭的,它們都放在master資料庫中且隸屬於sa(系統管理員) 。也有很多可以在任一個資料庫中執行的系統過程。 常見的系統過程有:
Sp_addgroup 在當前資料庫中建立一個數據庫使用者組 
Sp_addlogin 建立一個SQL伺服器使用者 
Sp_adduser 在當前資料庫中增加一個使用者 
sp_changegroup 改變資料庫使用者組 
Sp_dboption 查詢或改變資料庫系統設定 
Sp_dropdevice 刪除裝置 
Sp_dropgroup 刪除組 
Sp_droplogin 刪除帳號 
Sp_help 查詢資料庫物件及所有資料庫資訊 
Sp_helpdb 查詢資料庫資訊 
Sp_helpdevice 查詢裝置資訊 
Sp_helpgroup 查詢組資訊 
Sp_helpindex 查詢給定表資訊 
Sp_helpuser 查詢使用者資訊 
Sp_lock 查詢當前加鎖資訊 
Sp_monitor 查詢SQL伺服器統計資訊 
Sp_password 改變登入帳號口令 
Sp_spaceused 查詢表中的行數、資料頁數及空間大小 
Sp_who 查詢當前使用者及過程資訊 
Sp_syntax 查詢操作語法 
Sp_configure 配置系統引數 
例: 
1> sp_helpdb 
2> go 
name db_size owner dbid created status 
--------------------------------------------------------
master 3.0 MB sa 1 Jan 01, 1900 no options set 
model 2.0 MB sa 3 Jan 01, 1900 no options set 
sybsystemprocs 10.0 MB sa 4 Oct 24, 1997 trunc log on chkpt 
tele114 370.0 MB sa 5 Oct 24, 1997 select into/bulkcopy,
trunc log on chkpt 
tempdb 22.0 MB sa 2 May 05, 1998 select into/bulkcopy 
(0 rows affected, return status = 0) 
例: 
1> sp_monitor 
2> go 
last_run current_run seconds 
-------------------------- ----------
May 5 1998 4:09PM May 5 1998 4:13PM 224 
(0 rows affected) 
cpu_busy io_busy idle 
------------------------- ------------
17(1)-0% 5(0)-0% 923(223)-99% 
(0 rows affected) 
packets_received packets_sent packet_errors 
------------------------- -------------
21(9) 51(23) 0(0) 
(0 rows affected) 
total_read total_write total_errors connections 
------------------- -------------------
947(1) 595(113) 0(0) 3(1) 
(0 rows affected, return status = 0) 
(5)觸發器(Triggers)
觸發器是一種特殊的儲存過程,用來維護不同表中的相關資料的一致性。當在一張表中插入、刪除和修改資料時,觸發器就會觸發另一個儲存過程,從而保持資料的一致性。
(6)預設與規則(Defaults and rules)
預設是在資料錄入時,若使用者沒有輸入資料,SQL Server自動輸入的值。 規則是可以理解為對資料庫、某一列、某使用者資料型別的限制。
三、SQL 查詢語言
SQL不僅包括查詢資料的有關命令,還包括建立資料庫及其物件,增、刪、改資料等功能。分別定義為資料查詢語言,資料定義語言及資料操作語言。這裡先介紹資料查詢語言。其基本句法為: Select select_list from table_list where search_conditions
1、簡單查詢 
A、選擇若干列 
Select expression [,expression]... From table_list 
B、選擇若干行 
查出電話號碼以415到頭的記錄 
Select * from code_1th where tel like '415%' 
查詢中消除值重複的行 
Select distinct tel from code_1th 
對Text 和 char 可用 like ,其中可用萬用字元‘%’及‘-’,
分別代表多個字元和單個字元。 
其他常用查詢條件有:(出text型別除外) 
大小比較 =、>、<、>=、<=、!=、!>、!< 
範圍確定 between exp1 and exp2 /net between exp1 and exp2 
列表或集合 in (exp1[,exp2,[...]]) not in (...) 
謂詞 like 
多重條件 and or not 
2、連線查詢 
A、等值連線和不等值連線:通過‘=’來比較兩個表之間的資料時,
    稱為等值連線;而通過其他比較符時,稱為不等值連線 
等值連線: 
Select * from publishers, authors where publishers.city=authors.city 
不等值連線: 
B、自然連線: 在連線的目標列中相同名的列只保留一個 
Select publishers.pub_id publishers.pub_name,
publishers.state, authors.* 
From publishers, authors where
publishers.city=authors.city 
3、子查詢 
A、表示式子查詢 
Select au_lname, au_fname from authors where city= 
(select city from publishers where pub_name="abcde") 
可以使用一切大小比較操作符;在操作符和子查詢之間可以使用All 或any。 
B、限定謂詞子查詢 
Select pub_name from publishers from publishers 
Where pub_id in 
(select pub_id from titles where type='abcde') 
C、相關查詢 
相關查詢即巢狀查詢依賴於外部父查詢的值,
巢狀查詢要重複執行若干次。 
Select distinct t1.type from titles t1 
Where t1.type in ( select t2.type from titles t2
                 where t1.pub_id!=t2.pub_id) 
4、集函式、分組與排序 
A、對查詢結果進行聚集處理 
聚集函式: Sum([all|distinct] expression),
avg([all|distinct] exoression) , 
Count([all|distinct]expression), count(*),
max(expression), min(expression) 
Select count(*) from titles 
B、用Group by 和 having 子句對查詢結果分組 
Select type ,avg(advance), sum(total_sales) from
titles group by type 
Select type from titles group by type
 having count(*) >1 
Having 類似於where , 但where 不能用聚集函式。 
C、用Order by 對查詢結果進行排序 
Select type ,avg(price) from titles group by
type order by avg(price) 
D、Compute 子句 
完成基於每一組中的值的聚集運算,聚集值
作為一個新行出現在查詢結果中。 
Select type ,price advance from titles
 order by type compute sum(price), sum(advance) by type 
四、資料庫、資料庫物件的增、刪、改 
1、資料庫 
x 開啟資料庫 
Use tele114 
x 建立資料庫。擁有建立資料庫權利的使用者可以建立自己的資料庫。 
CREATE DATABASE tele114 
ON tele114_def01=10,tele114_run01=200,tele114_idx01=200 
LOG ON tele114_log01=80 
x 刪除資料庫 
Drop database tele114 
x 修改資料庫 
Alter database tele114 on tele114_run02=100, tele114_idx02=100 

2、表 
x 建表 
create table spec_code 

No tinyint not null, /*特編號(0--99)*/ 
Name varchar(50) null, /*名稱*/ 
Addr varchar(50) null, /*地址*/ 
Tel varchar(null, /*電話號碼*/ 
StaffNo varchar(4) not null /*錄入員工號*/ 

on segrun /*將表放在segrun段上*/ 
x 刪除表 
Drop tabel tele114_1th 
x 修改表,在表中增加新的列(用這個命令增加的列必須允許null值) 
Alter table friends_etc add country varchar(20  null  x 表級或列級約束 
Create table my_publishers 
(pub_id char(4), 
Pub_name carchar(40). 
Constraint my_chk_constraint 
Check (pub_id in ('1389','0736','0877')) 
Or (pub_name not like 'bad news books')) 
x 指定預設值 
Create table ny_titles 
(title_id char(6t), 
Title varchar(80), 
Price money default null, 
Total_sales int default (0)) 
x 指定Unique 和primary key 約束 
Primary key 不允許空值,常用來產生唯一的聚集索引,
unique 允許空值,常用來產生唯一的非聚集索引 
Create table my_sales 
(stor_id char(4), 
Ord_num varchar(20), 
Date datetime, 
Unique clustered(stor_id,ord_num)) 
3、索引 
x 建立索引 
create unique clustered index code1thidx1 on code_1th(Code1,Name,UnitNo1,Used) 
on segrun 
Unique: 建立唯一性索引 
Clustered : 建立聚集索引,使得資料行的邏輯順序與物理順序一致,查詢速度較快;
每個表僅允許建立一個唯一性索引。(非聚集索引nonclustered) 
On segrun:將索引放在segrun上 
x 刪除索引: drop index code_1th.code1thidx1 
4、 預設:當用戶沒有顯示地為某一列賦值時,SQL SERVER 為該列插入的值 
x 建立預設值CA,把預設值CA用到friends_etc表中的State列上 
Creat default statedflt 
Go 
Sp_bindefault statedflt, "frends_etc.state" 
go 
x 斷離預設 
Sp_unbindefault "frends_etc.state" 
x 刪除預設 
Drop default statedflt 
5、規則:可以理解為對資料庫、某一列、某使用者資料型別的限制.
規則中的任何變數名必須 
冠以@,不能直接引用列或其他資料庫物件。 
x 建立規則並把他關聯到使用者定義的資料型別P#上 
Create rule phonerule as @phone like 415[0-9][0-9][0-9][0-9] 
Sp_bindrule phonerule ,"p#" 
x 斷離規則 
Sp_unbindrule "p#" 
x 刪除規則 
Drop rule phonerule 
6檢視:檢視是從一個或多個基本表或其他檢視上匯出的表,
可以在檢視上進行增、刪、改 
x 建立檢視 
建立檢視的句法為: 
create view view_name 
(column_1,...,column_n) 
as select_statements 
例:在authors表和publishers表上定義一個檢視如下: 
Create view cities (authorname, acity, publishername, pcity) 
As select au_lname,authors.city, pub_name, publishers.city 
From authors, publishers 
x 通過使用Drop view 命令來撤消一個檢視 
Drop view view_name 
7、儲存過程 
x 建立儲存過程 
CREATE PROCEDURE procedure_name [(para1[,para2, ...])] 
As sql_statements 
儲存工程的引數名必須一@開頭,包括@最長為30個字元。 
x 執行儲存過程 
EXEC[UTE] procedure_name [(para1[,para2, ...])] 
儲存過程能夠返回一個整數,用來指示儲存過程執行是完全錯誤還是錯誤。
SQL SERVER 用0指示成功的返回,-1~-99指示不同的錯誤。
當前所用的0及-1~-14的含義如表所示。 
值 含義 
0 過程執行無錯 
-1 丟失物件 
-2 資料型別錯誤 
-3 程序被選作死鎖的犧牲品 
-4 許可權錯誤 
-5 語法錯誤 
-6 各種使用者錯誤 
-7 資源錯誤:如空間錯誤 
-8 非嚴重的內部錯誤 
-9 觸及系統限制 
-10 嚴重的內部不一致 
-11 嚴重的內部不一致 
-12 表或索引壞了 
-13 資料庫壞了 
-14 硬體錯誤 
x 更改儲存過程名 
Sp_rename objname newname 
x 刪除儲存過程 
DROP PROCEDURE procedure_name 
8 、觸發器 
x 建立觸發器 
CREATE TRIGGER [owner.]trigger_name 
ON [owner.]table_name 
{FOR INSERT,UPDATE,DELETE} 
AS 
SQL_statements 
或使用IF UPDATE 子句: 
CREATE TRIGGER [owner.]trigger_name 
ON [owner.]table_name 
{FOR INSERT,UPDATE} 
AS 
[IF UPDATE (column_name) 
[{AND|OR} UPDATE (column_name)]...} 
SQL_statments 
[IF UPDATE(column_name) 
[{AND|OR} UPDATE column_name)]... 
SQL_statements]... 
x 觸發器的刪除 
DROP TRIGGER [owner.]trigger_name 

五、批處理和流控制語言 
1、批處理 
SYBASE系統允許使用者將若干條相關的語句組成一個整體,
交給系統同時處理。 一批語 
句的結束以go語句為標誌。嚴格地講,
單條SQL語句也是一個批處理。 
例:Select count(*) from titles 
Select count(*) from authors 
Go 
也可以將一組SQL命令放在一個作業系統檔案中,
再將這個檔案交給isql執行。 
2、流控制語言 
流控制語句 
在批處理中,我們可以加入流程控制語句,
從而達到程式設計的目的。在T-SQL語言中, 
流控制語句有: 
· if。。。Else。。。 
· begin。。。End。。。 
· while和break。。。Continue 
· declare和區域性變數以及全域性變數 
· Goto 
· Return 
· Waitfor 
· print和Raiserror 
· 註釋 
例: 
if exists(select * from zyl 
where xm="李軍") 
print "ok" 
else 
print "no this one" 
使用批處理有以下規則: 
x CREATE PROCEDURE、CREATE RULE、 CREATE DEFAULT 、
CREATE TRIGGER 以及 CREATE VIEWE 必須單獨交給SQL SERVER,
他們不能和別的SQL語句一起作批處理(CREATE DATABASE、 CREATE TABLE
和CREATE INDEX 能和其他語句組成批處理)。 
x 規則和預設值都不能在一組批處理中剛關聯就使用。 
x USE命令必須在引用這個資料庫的物件的語句的前一組批處理中提交。 
x 不能剛刪除(DROP)一個數據庫物件又在同一批處理中重新建立他。 
x 用SET語句做的任何選擇設定在批處理尾處發生作用。
可以把SET語句和查詢語句放入一組批處理中,
但SET選擇項不能在這組批處理中使用。 

六、系統的啟動和關閉 
1、啟動SQL Server 
應用SQL Server安裝程式(sybinit)建立SQL Server或Backup Server,
預設檔名為RUN_SYBASE 和RUN_SYB_BACKUP,放在¥SYBASE/INSTALL目錄下。 
Startserver 用來啟動一SQL Server 或Backup Server: 
Startserver -f RUN_SYBASE 
Startserver -f RUN_SYB_BAKUP 
可以通過showserver檢視SQL ServerBackup Server是否已經啟動,
在$SYASE/INSTALL下執行showserver 檢視SQL Server 是否啟動 
UID PID PPID C STIME TTY TIME CMD 
(Backup Server已啟動的資訊) 
sybase 831 830 0 17:23:50 ttyp1 00:00:00
/sybase/bin/backupserver
 SYB_BACKUP -I/sybase/interfaces -M/sybase/bin/sybmul 
(SQL Server已啟動的資訊) 
sybase 674 1 0 14:29:11 ttyp0 00:00:45
/sybase/bin/dataserver -d/sybase/master.dat
YBASE -e/sybase/install/errorlog 
SQL Server的啟動過程 
master資料庫啟動
2、啟動SQL Server的單使用者模式 
如果要恢復一已被損壞的master資料庫,
則必須要啟動SQL Server的單使用者模式。
單使用者模式下僅允許一個系統管理員向SQL Server註冊。 
Startserver -f RUN_SYBASE -m 
3、關閉伺服器 
關閉SQL Server可以在isql中使用T-SQL命令: 
關閉SQL備伺服器 
shutdown SYB_BACKUP 
關閉SQL主伺服器 
shutdown [with nowait] 

4、Sybase資料庫目錄說明 
/usr/sybase =.. 主目錄 
.. /install 安裝程式 
../bin 執行程式 
../include 庫函式檔案 
../lib 宿主語言庫 
../doc 聯機檔案 
../scripts SQL 動態描述檔案 
../help 幫助資訊 
../locales 語言限制檔案 
../termdef 終端定義檔案 
../charsets 字符集檔案 
七、SQL Server的使用者及許可權 
Sybase中的使用者分為兩種:SQL伺服器使用者(登入帳號)和資料庫使用者。 
安裝完SQL伺服器後,系統自動建立一個SQL伺服器使用者sa,口令為空,
即系統管理員,他對整個系統有操作權,其他使用者均由系統管理員建立。 
在SQL Server中有三種特殊的使用者:系統管理員、使用者資料庫所有者
(建立相應資料庫的資料庫使用者)DBO、一般使用者。系統管理員對整個系統有操作權;
使用者資料庫所有者對他所建立的資料庫具有全部操作權利;
一般使用者對給定的資料庫只有被授權的操作許可權。 
資料庫使用者一般可分為使用者組,任一資料庫在建立後即被賦予一個使用者組public。 
1、建立SQL伺服器使用者名稱(登入帳號) 
作為一個使用者,為了使用SQL Server,他必須在SQL Server上有一個SQL伺服器使用者名稱(登入帳號)。
這個帳號是系統管理員通過sp_addlogin來增加的。 
sp_addlogin 登入名,口令,庫名,語言,全名 
例:建立使用者zhang, 口令為zhangling(最低六位),全名為Zhang ling 
1> sp_addlogin zhang,zhangling,null,null,"Zhang ling" 
2> go 
3> select * from syslogins 
4> go 
2、增加資料庫使用者名稱 
同樣,為了使用SQL Server上的資料庫,他必須在資料庫中有一個使用者名稱,
這個使用者名稱是資料庫所有者通過sp_adduser來增加的。資料庫使用者名稱不必和
使用者帳戶一樣,而且在不同的資料庫中使用者名稱可以不同。
多個使用者可以有相同的SQL Server帳戶。同樣,
多個SQL Server帳戶可以有相同的資料庫名。 
sp_adduser 登入名,別名,組名 
登入名為使用者的SQL伺服器登入名;別名為使用者在資料庫中的使用者名稱;
組名為使用者所屬的資料庫使用者組。 
例:使用者zhang增加為tele114的使用者,別名為zhang1,屬於使用者組china 
1>sp_addgroup china 
2>go 
1>sp_adduser zhang,zhang1,china 
2>go 
1> sp_helpuser 
2> go 
*例:刪除別名zhang1,使用者組china,登入名zhang 
1> use tele114 
2> go 
3> sp_dropuser zhang1 
4> go 
5> sp_helpuser 
6> go 
1>sp_dropgroup china 
2>go 
1> sp_helpgroup 
2> go 
3> use master 
4> go 
5> sp_droplogin zhang 
6> go 
7> select * from syslogins 
8> go 
3、資料庫操作授權 
grant 命令序列 to 使用者名稱 
A. 系統管理員可以授予其他使用者CREATE DATABASE的許可權,
使其他使用者可以成為資料庫所有者。 
B. 資料庫所有者在他所擁有的資料庫中,
可以授予其他使用者的許可權有: 
l CREATE TABLE ------------------- 建表 
lCREATE DEFAULT ------------------ 建預設 
lCREATE RULE ------------------- 建規則 
lCREATE PROCedure ------------------ 建儲存過程 
lCREATE VIEW ------------------- 建檢視 
lDUMP DATABASE ------------------- 備份資料庫 
lDUMP TRANsaction ------------------ 備份日誌 
C. 資料庫物件所有者可以授予其他使用者的操作許可權有: 
l SELECT 
l UPDATE 
l INSERT 
l EXECute 
l DELETE 
l REFERENCE 
例:授予zhang1在資料庫tele114上建表,建檢視,建儲存過程;
對錶students有select,reference權;對name,native欄位有update權。 
1> use tele114 
2> go 
3> grant creat table,create procedure ,create view to zhang1 
4> go 
5> grant select,reference on students to zhang1 with grant option 
6> go 
7> grant update on students(name,native) to zhang1 
8> go 
9> sp_helprotect 
10> go 
八、資料庫備份與恢復 
SQL Server提供了兩種不同型別的恢復:
一類是系統自動完成的恢復;另一類是人工完成的恢復。 
1.系統軟體故障恢復 
系統自動恢復是在系統軟體出現故障的情況下
通過重新啟動SQL Server進行恢復。 
自動恢復從master資料庫開始,然後是model資料庫,
再是temporary資料庫,最後是使用者資料庫。在每個資料庫上,
恢復機制觀察事務日誌。如果日誌寫入比資料庫更近的資料,
則向前恢復資料庫。如果事務尚未完成,則要回退它們。 
所謂事務日誌就是一張系統表,syslogs。
在這張表中記錄著對資料庫的更新請求,
例如插入、修改和刪除。查詢操作不記入事務日誌中。 
2.介質故障的恢復 
一旦介質發生故障,只有通過以前備份的資料庫和事務日誌才能恢復資料庫,
為此我們需要經常備份資料庫和事務日誌。
備份資料庫和事務日誌我們使用dump命令,而恢復資料庫和事務日誌我們使用load命令。 
與建立資料庫需要一個數據庫裝置類似,
我們備份資料庫和事務日誌也需要一個卸出裝置。
增加卸出裝置可以通過系統過程sp_addumpdevice來實現。
卸出裝置可以是磁碟、磁帶或作業系統檔案。 
sp_addumpdevice "type",device_name,physicalname 
例: 
sp_addumpdevice "disk", "db114", "/usr/sybase/zyl114.bak",1 
(1) 備份資料庫和事務日誌 
備份資料庫的語法為: 
dump database database_name to dump_device 
例如: 
dump database tele114 to db114 
備份事務日誌的語法為: 
dump transaction database_name to dump_device 
[with truncate_only | with no_log | with no_truncate] 
前兩項在日誌中刪除提交的事務,後一項不刪除。 
在備份資料庫前的所有事務日誌備份都是沒有意義的。
我們一般不經常備份資料庫,但我們要經常備份事務日誌。
這是因為備份事務日誌比備份資料庫需要更少的時間和儲存空間。 
(2)恢復使用者資料庫 
要恢復已被破壞的資料庫,可以按如下步驟進行: 
· 用帶no_truncate選項的dump命令卸出使用者資料庫事務日誌。 
· 用和被破壞的資料庫的同樣的結構建立一個新的資料庫。 
· 用load命令重新裝入資料庫和事務日誌。 
裝入資料庫的語法為: 
load database database_name 
from file_name 
裝入事務日誌的語法為: 
load transaction database_name 
from file_name 
例:資料庫備份 
1> dump db_name to file_name 
2> go 
資料庫恢復 
1> load db_name from file_name 
2> go 
日誌備份 
1> dump transaction db_name to file_name 
2> go 
日誌恢復 
1> load transaction db_name from file_name 
2> go 
日誌刪除 
1> dump transaction db_name with truncate_only 
2> Go 
(3)master資料庫的恢復 
A、儲存系統表的拷貝:sysdatabases、sysdevices、
sysusages、sysloginroles和Syslogins。 
B、轉儲主裝置上的使用者資料庫。 
C、關閉SQL Server並使用buildmaster建立新的master資料庫或主裝置。 
Buildmaster -m ...僅重建master資料庫 
Buildmaster ...重建主裝置 
D、已單使用者模式啟動SQL Server( Master-Recover
Startserver -f RUN_伺服器名 -m 
E、若master資料庫用alter database 命令擴充套件過,
嚴格重建它在sysusages中的分配。 
F、若Backup Server 的網路名(介面檔案中的名字)
不是SYB_BACKUP,在sysservers中改動網路名。 
Update sysservers set srvnetname="PRODUCTION_BSRV"
where srvname="SYB_BACKUP" 
G、使用showserver檢視,檢查確保Backup Server正執行,
若有必要,重啟Bakup Server 
H、裝載master的備份。 
Load database master from 'master.bak' 
Load database執行成功後,SQL Server 自動關閉。 
I、若自master的上次轉儲以來增加過資料庫裝置,
執行disk reinit命令以重建sysdevices。 
J、若執行了disk reinit,或自上次轉儲以來使用過create database
或alter database,執行disk refit 重建sysusages和sysdatabases表,
執行完畢後SQL Server自動關閉。 
K、檢查一致性:比較sysusages和sysdatabases的備份和新的聯機版本,
對每個資料庫執行dbcc checkalloc, 並檢查每個資料庫中重要的表;
若發現錯誤重新執行disk reinit和disk refit。 
L、若恢復了整個主裝置,則恢復model資料庫。 
Cd $SYBASE/scripts 
Setenv DSQUERY 伺服器名 
Isql -Usa -P口令 -S伺服器名 M、重新裝載所有受影響的使用者資料庫。 
N、恢復伺服器使用者ID。 
O、以多使用者模式重新啟動SQL Server。 
(4)恢復model 資料庫 
Buildmaster -d/裝置名 -x 
(5)恢復sybsystemproces資料庫 
A、刪除sybsystemproces資料庫(若物理磁碟損壞,刪除裝置,
使用Disk init 重建裝置) 
B、重建資料庫 
Create database sybsystemporces on 裝置名=資料庫大小 
C、恢復資料庫 
Cd $SYBASE/scripts 
Setenv DSQUERY 伺服器名 
Isql -Usa -P口令 -S伺服器名 九、幾個實用程式 
1、bcp 
以使用者指定的形式將資料庫表拷貝到作業系統檔案中,
或從作業系統檔案中拷貝一個數據庫表。
提供了在資料庫表和作業系統檔案之間傳遞資料的一個方便、快速的方法。 
bcp [[database-name.]owner.]table_name {in|out} datafile [各種開關] 
其中,table_name是想要拷貝的資料庫表名;{in/out}為拷貝方向,
in表示從檔案到資料庫的拷貝,out表示從資料庫到檔案的拷貝;
datafile是作業系統檔案的全路徑名。 
常用的開關有: 
-f formatfile----存有上次使用bcp處理同一表時得到的應答檔案的全路徑名,
格式檔名的副檔名為.fmt。使用格式檔案,省去了再重複回答前面的問題。 
-U username----允許使用者指定一個註冊名。 
-P password----允許使用者指定當前的SQL Server口令。
如果未使用-P選項,bcp將提示輸入一個口令。 
-S Server----允許使用者指定與其相連的SQL Server的名字。 
例:在客戶端備份tele114資料庫中code_1th表,按照code_1th.fmt的格式 
c> bcp tele114..code_1th out code_1th.txt -杅code_1th.fmt 朥sa 朠 
2、 isql 
與SQL Server互動的SQL句法分析器。 
isql [各種開關] 
常用的開關有: 
-U username----允許使用者指定一個註冊名。 
-P password----允許使用者指定當前的SQL Server的口令。 
-S Server----允許使用者指定與其連線的SQL Server的名稱。 
-i輸入檔案 
-o輸出檔案 
終止一條命令:go 
清除查詢緩衝:reset 
呼叫編輯器:vi 
執行一條作業系統命令:!!命令 
退出isql:quit或exit 
3、showserver 
顯示當前在本機上正在執行的SQL Server。 
showserver 
4、startserver 
啟動SQL Server。 
startserver [各種開關] 
常用的開關有: 
-f runserverfile----指定一個執行伺服器檔名,
每次重啟SQL Server時,以這個檔案為參考。在我們的實際機器上,
這個檔名為RUN_SYBASE或RUN_SYB_BACKUP。 
-m ----以單使用者的方式啟動SQL Server。這個方式用於恢復master資料庫。 
5、syman 
顯示聯機的庫例程,系統過程及實用程式手冊。 
syman [keyword] 
syman實用程式的聯機文字檔案存放在$SYBASE下的doc子目錄中。 
6、dbcc 資料庫一致性檢查 
Dbcc 用來檢查一個數據庫的邏輯一致性和
物理一致性。通常在下面的情況下使用dbcc: 
x 常規資料庫維護 
x 確定當一個系統錯誤後可能損壞的範圍 
x 在備份資料庫之前 
x 懷疑資料庫受到損壞。 
dbcc有兩個主要功能:可檢查分配表結構
(命令checkalloc、tablealloc和Indexalloc);可檢查頁連結和頁級、
行級上的資料指標。 
只有表屬主可以用checktable、fix-text和reindex選項執行dbcc命令。
只有資料庫屬主可以使用checkdb、 checkalloc、checkcatalog、
indexalloc和tablealloc選項。只有系統管理員可以使用dbrepair選項 
dbcc命令的完整語法格式如下: 
Dbcc 
{checktable({表明|表標識}[,Skip_ncindex])| 
Checkdb [(資料庫名[,skip_ncindex])]| 
Checkalloc [(資料庫名[,fix|nofix])]| 
Talbealloc ({表明|表標識}[,
{full|optimized|fast|null}[,fix|nofix]]))| 
Indexalloc ({表明|表標識},索引標識[,
{full|optimized|fast|null}[,fix|nofix]]))| 
Checkcatalog [(資料庫名)] 
Dbrepair (資料庫名,dropdb)| 
Reindex ({表明|表標識})| 
fix_text({表明|表標識})} 

十 、SQL客戶端軟體 
1. DOS狀態下SQL客戶端軟體 
軟體位於c:/sqlbin 
執行步驟: 
執行TCPIP協議程式tcp.bat 
c:/nwclient/lsl /c:/nwclient/net.cfg 
c:/nwclient/ne2000 
c:/nwclient/tcpip 
(2) ping 129.6.114.201 (伺服器地址) 
返回129.6.114.201 is alive 正常 
返回No response from 129.6.114.201 為異常 
(3)執行sybclenv.bat------------------
Sybase的DOS介面啟動程式,內容如下: 
set path=c:/sqlbin/binr;%path% -------------
Sybase的DOS介面程式所在目錄 
set dsquery=129.6.114.201,4114-------------
連線伺服器IP地址和埠號 
c:/sqlbin/binr/dbnovtcp 
C:/sqlbin/binr/rmineti 
dbping 129.6.114.201------------
檢查是否連通SYBASE伺服器 
連線成功出現“Successfully
opened network connection" 
(5) isql 朥sa 朠 
1> sp_help 
2> go 
十一、附錄 
附錄1:只有在master資料庫中才能有的系統表 
系統表名 表中的內容 
Sysconfigures 一行記錄了使用者可設定的配置引數 
Syscurconfigs 有關SQL Server當前正使用的配置引數情況 
Sysdatabases 一行記錄了SQL Server中的一個數據庫 
Sysdevices 一行記錄了資料庫的每一磁帶轉儲裝置,
磁碟轉儲裝置,資料庫裝置和磁碟分割槽
裝置和磁碟分割槽 
Syslocks 有關動態鎖的情況 
Syslogins 一行記錄了每一有效的SQL Server的使用者帳號 
Sysmessages 一行記錄了每一系統錯誤或警告 
Sysprocesses 有關Server程序的情況 
Sysremotelogins 一行記錄了一個遠端使用者 
Sysservers 一行記錄了一個遠端SQL Server 

附錄2:Sysusages 一行記錄了
分配給一個數據庫的每一個磁碟分析 

系統表名 表中的內容 
Sysalternates 一行記錄了SQL Server使用者在當前資料庫中的標識 
syscoumns 一行記錄了一個表或檢視的每一列,一個儲存過程的每一引數 
syscomments 一行或多行記錄了每一檢視、規則、預設值、觸發器和儲存過程 
sysdepends 一行記錄了由一個過程、檢視或觸發器所參照的每一過程,檢視或表 
Syskeys 一行記錄了每一主碼,外碼或公用碼 
Syslogs 
sysobjects 一行記錄了每一表、檢視、儲存過程、日誌、規則、
          預設值、觸發器和臨時表(僅在tempdb中) 
sysprocedures 一行記錄了每一檢視、規則、預設、觸發器和過程 
syprotects 記錄使用者的許可權資訊 
sysegments 一行記錄了每一片段(命名的的磁碟分片彙集) 
systypes 一行記錄了每一由系統提供的和使用者定義的資料型別 
sysusers 一行記錄了一個數據庫的合法使用者,或使用者組 

附錄3: 由SQL Server提供的系統過程功能和執行權 
過程名 功能 執行許可權 
sp_addalias 把資料庫中的一個使用者映象到另一個使用者資料庫所有者 
sp_addgroup 向資料庫增加分組,
在授權和撤權命令中分組被用作聚合名字 資料庫所有者 
sp_addlanguage 為伺服器定義可替換語言,
並把它增加到master,dbo,syslanguages中。 
sp_addlogin 通過向master.dbo,syslogins
中增加表項授權新的SQL Server使用者 系統管理員 
sp_addremotelogin 通過向master,bo,sysremotelogins
增添表項授權新的遠端伺服器使用者
sp_addsegment 在指定的資料庫裝置上建立一個段 資料庫所有者系統管理員 
sp_addserver 定義遠端伺服器,或定義本地伺服器名字 資料庫所有者系統管理員 
sp_addtype 建立使用者定義的資料型別 Public 
sp_addumpdervce 向SQL Server增加轉儲裝置 系統管理員 
sp_adduser 向當前資料庫新增新的使用者 資料庫所有者 
sp_bindefault 為一列或使用者下義的資料型別定義預設值 目標(物件)所有者 
sp_bindrule 向一列或使用者定義的資料型別賦一規則 目標汽有者 
sp_changedbowner 改變資料庫的所有者 資料庫所有者 
sp_changegroup 改變使用者所屬的分組 資料庫所有者 
sp_checknames 檢查當前資料庫在7位ASCII碼集之外的字元的名字 public 
sp_commonkey 在兩個表或檢視之間定義一
公共鍵--經常被連線的列 兩表(或檢視)的所有者 
sp_configure 顯示或改變配置變數 沒有引數或只有第一個引數
的執行權屬於public,否則屬於系統管理員 
sp_dboption 顯示或改變資料庫選項 不帶引數屬於public,
帶引數時屬於資料庫所有者 
sp_defaultdb 改變一使用者的預設資料庫
系統管理員(但每個使用者都可以改變他自己的預設語言) 
sp_depends 顯示資料庫目標相關性的資訊 public 
sp_diskdefault 裝置資料庫裝置的狀態為defaulton或defaultoff(
表明一資料裝置是否能用於資料庫的豈省儲存) 系統管理員 
sp_dropalias 刪除用sp_addalias建立的使用者名稱別名標識 資料庫所有者 
sp_dropdevice 刪除一SQL Server資料庫裝置或轉儲裝置 系統管理員 
sp_dropgroup 從資料庫中刪除一分組 資料庫所有者 
sp_droplanguage 從伺服器中刪除可替換語言,
並從master.dbo.syslanguages中刪掉相應的行 系統管理員 
sp_droplogin 通過刪掉使用者在master,dbo,syslogins中的表項刪除SQL Server使用者 
sp_dropremotelogin 刪除遠端使用者註冊 系統管理員 
sp_dropsegment 從資料庫中刪除一個段或從
特定資料庫裝置上卸掉一個段的映象 資料庫所有者 
sp_dropserver 刪除遠端伺服器 系統管理員 
sp_droptype 刪除使用者定義的資料型別 資料庫所有者資料型別所有者 
sp_dropuser 從當前是資料庫中刪除一使用者 資料庫屬主 
sp_extendsegment 把段的區域擴充到另一個數據庫裝置或
在當前資料庫裝置上進行擴充 資料庫屬主 
sp_foreignkey 在當前資料庫的表或檢視上定義一外部鍵 表的屬主 
sp_help 報告目標或SQL Server提供的或使用者定義的資料庫型別的資訊 public 
sp_helpdb 報告--指定資料庫或所有資料庫的資訊 public 
sp_helpdevice 報告--指定裝置或所有SQL
Server資料庫裝置轉儲裝置的資訊 public 
sp_helpgroup 報告--特定組或當前資料庫的所有組的資訊 public 
sp_helpinde 報告--表中的索引資訊 public 
sp_helpjoins 列出可連線兩個表或檢視的列 public 
sp_helpkey 報告某個特定表或檢視的一主鍵,
外部鍵或公共鍵或者當前資料庫中所有鍵的資訊 public 
sp_helplanguage 報告一特替換語言或所有語言的資訊 public 
sp_helplog 報告包括日誌第一頁的裝置名 public 
sp_helpremotelogin 報告一特定遠端伺服器或所有遠端伺服器的註冊資訊 public 
sp_helprotect 報告一資料庫物件或使用者許可權,且由使用者選擇物件 public 
sp_helpsegment 報告當前資料庫中一特定段或所有段的資訊 public 
sp_helpserver 報告一特定遠端伺服器或所有遠端伺服器的資訊 public 
sp_helpsort 顯示SQL Server的預設排列順序以及字符集 public 
sp_helptext 列印一系統過程、觸發器、檢視、預設或規則的定義文字 public 
sp_helpuser 報告當前資料庫中一個使用者或所有使用者的資訊 public 
sp_lock 報告當前上鎖的程序的資訊 public 
sp_logdevice 將系統表syslogs(其中包括事務日誌)
放在一個分設的資料庫裝置中 資料庫屬主 
sp_monitor 顯示SQL Server的統計數字 系統管理員 
sp_password 增加或改變SQL Server註冊的口令 對自己的口令,
許可權屬於public,系統管理員有權修改所有使用者口令 
sp_placeobject 為一特定中某個表或索引放置將來的空間分配
表屬主,資料庫屬主系統管理員 
sp_primarykey 定義一表或檢視上的主鍵(主碼) 表的所有者 
sp_recompile 使生個使用被指定表的儲存過程、觸發器在下次執行時重新編譯 public 
sp_remoteoption 顯示或改變遠端註冊選項 顯示選項時屬 public改變選項時屬系統管理員 
sp_rename 改變當前資料庫中一使用者建立目標的名稱 特定目標,
許可權屬目標屬主對資料庫所有物件,許可權屬資料庫所有者 
sp_renamedb 改變資料庫名 系統管理員 
sp_serveroption 顯示或改變伺服器選項 顯示選項,許可權,
許可權屬 public改變選項,許可權屬系統管理員 
sp_setlangalian 分配或改變一替換語言的別名 系統管理員 
sp_spaceused 顯示行數、資料頁數以及當前資料庫中由某個
目標或所有目標所佔用的空間 public 
sp_unbindefault 從一列或使用者定義的資料型別中解除一規則 目標屬主(所有者) 
sp_who 報告特定使用者或SQL Server所有當前使用者和程序的資訊 public 

附錄4:常用SQL命令 表4 
1.load isql -Usa -P --進入ISQL環境 
quit ----退出ISQL環境 
2.shutdown (server_name) --關閉SYBASE伺服器 
ex. shutdown SYB_BACKUP 
3.use (database_name) --開啟資料庫 
ex. use tele114 
4.set rowcount (number) -- 設定顯示記錄條數 
ex. set rowcount 10 (為0則取消設定) 
5.select (select_list) from (table_name) where
(search_conditions) 
--檢視符合要求的內容 
ex. select max(UnitNo1) from code_1th 
6.update (table_name) set (column_name1)=(value1),
column_name2)=value2) 
where (search_conditions) --重新賦值 
ex.update code_1th set Password='12345', 
RevCode1=substring(RevCode1,1,
datalength(rtrim(RevCode1))-1) 
where substring(Code1,1,1)='v' and
substring(Code1,2,1)!=' ' 
7.select (select_list) into (table_name1) from (table_name2) 
where (search_conditions) 
--將符合要求的table_name2中的內容存在table_name1中 
ex.select * into sample from code_1th where
substring(Code1,1, 1)='V' 
8.truncate table (table_name) --刪去表 
ex.truncate table sample 
delete (table_name) where (search_conditions)
 -- 刪去表的一部分 
ex. delete example where County='5' 
9.sp_addumpdevice 'disk',(logicalname),
(physicalname) --定義轉儲裝置 
ex.sp_addumpdevice 'disk','nbdump_1',
'vol1:/nbdump/nbdump.dat' 
10.sp_dropdevice (device_name) --刪去轉儲裝置 
ex.sp_dropdevice nbdump_1 
11.dump tran (database_name) with truncate_only --刪去日誌 
ex.dump tran tele114 with truncate_only 
12.sp_configure (config_name),(config_value) --更改設定值 
ex.sp_configure 'allow updates',1 
13.reconfigure with override --使更改設定值有效 
14.sp_who --使用資料庫使用者列表 
15.kill (spid) --刪去無效的資料庫使用者 
ex.kill 9 --刪去spid為9的資料庫使用者 
16.sp_helpindex (tabel_name) --檢視索引情況 
ex. sp_helpindex code_2th 
17.sp_helpdb (database_name) --檢視資料庫佔用空間情況 
ex. sp_helpdb tele114 
附錄5:SYBASE實用安裝、 
Sybase 10.0.1 For SCO UNIX3.0.x的安裝 
(一)安裝前準備 
1. SCO UNIX需兩張補丁盤 
a. UOD381非同步I/O盤一張 
b. aet382網路盤一張 
重啟UNIX後進入維護模式,用custom命令裝入此兩張補丁盤 
2. 在UNIX系統中增加sybase使用者 
3. 在工作站上通過TCP/IP將SYB_SCO拷入 /usr/sybase中在工作站上執行 
LSL 
NE2000 
TCPIP 
FTP 129.18.114.99 (129.18.114.99為伺服器的網路地址) 
用sybase使用者登入 
bi 
put SYB_SCO (SYB_SCO在C盤當前目錄中) 
4. 用cpio 展開安裝程式 
以root登入 
cd/usr/sybase 
Cpio 杋dvC 5. 配置UNIX核心 
a. 以root登入 
b. 設定環境變數,用vi 編輯 /.profile加入以下兩行 
SYBASE=/usr/sybase 
export sybase 
c. 用vi編輯/etc/conf/cf.d/mtune 
修改引數為 
NSTREAM 700 
NAIOHBUF 400 
d. cd/usr/sybase/install 
sh sco_kernal sybase 
重新 relink 後reboot 
(二)安裝 
1)以sybase 登入 
2)cd/usr/syabsw/install 
3)sybinit 
4)選3 
SYBINIT 
1. Rrlease Directory: /sur/u/sybasw-100 
2. Edit /View interfaces File 
3. Configure a server product 
4. Configure an Open Coient/Server Product 
5. Configure a Front End Product 
5)選1 
CONFIGURE SERVER PRODUCTS 
1. Configure a mew SQL Server 
2. Configure an existing SQL Server 
3. Upgrad an existing SQL Server 
7)ADD NEW SQL SERVER 
1. SQL Server name: lyg114 
a. 選1,輸入伺服器名如:lyg114 
b. 按Ctrl-a 
SQL SERVER VONFIGURATION 
1. CONFIGURE SERVER'S INTERFACES FILE ENTRY Incomplete 
2. MASTER DEVICE CONFIGURATION Incomplete 
3. SYBSYSTEMPROCS DATABASE CONFIGURATION Incomplete 
4. SET ERRORLOG LOCATION Incomplete 
5. CONFIGURE DEFAULT BACKUP SERVER Incomplete 
6. CONFIGURE LANGUAGES Incomplete 
7. CONFIGURE CHARACTER SETS Incomplete 
8. CONFIGURE SORT ORDER Incomplete 
9. ACTIVATE VUDITING Incomplete 
分別選1,2,3,---9配置引數,使各項Incmplete----->complete 
引數配置如下:(例) 
a. SERVER INTERFACES FILE ENTERY SCREEN 
Server name : lyg114 
1. Retry Count: 10 
2. Retry Delay: 10 
Listener services available: 
Protocol Address Port Name Alias 
rcp scosysv 4114 
注意:Port=4114,此引數為1024--65535為間的4個或5個數字 
Address=scosysv,此引數為UNIX伺服器主機名 
b. MASTER DRVICE CONFIGURATION 
1. Master Device: /usr /sybase/madter.bay 
2. size (Meg) : 30 
c. SYBSYSTEMPROCS DATABASE CONFIGURATION 
1.sybsytemprocs database size (Meg) : 10 
2. sybsystemprocs logical device name: sysprocsdev 
3. create new device for the sybsystemprocs database : yes 
4. physical name of new device: /usr /sybase/sybtemp.dat 
5. size of the new device (Meg) : 10 
d. SET ERRORLOG LOCATION 
1. SQL Server errorlog: /usr/sybase/errorlog 
e. SET THE SQL ERVER'S BACKUP SERVER 
1.SQL Server backup Server mname: SYB-BACKUP 
注意:此備份伺服器名一定要與後面配置的備份伺服器名一致 
f. SONFIGURE LANGUAGES 
選 1. us-english 
g.CONFIGURE CHARACTER SETS 
選 1. SACII, fro use with unsp 及4.ISO 8859-1 (latin-1)-w (4.為預設) 
h. CONFIGURE SORT ORDER 
選 1. Binary ordering ,for the ISO 8859/1 or Latin-1 Charact 
i. ACTIVATE AVDITING 
1. Install auiting: yes 
2. sybsecurity database size (Meg): 5 
3. sybsecuyty logical device name : sybsecurity 
4. dreate new device for the sybsecurity database : yes 
5. sybsecurity physical device name : /usr/sybase/sybsecur.dat 
6. size of the new device (Meg): 5 
9) 引數配置完後,按Ctrl-a 
Execute the SQL Server Configuration now? y 
10)看到下面的資訊表示SQL Server 安裝成功 
Configuration completed successfully. 
Press to continue.(回車) 
11) 按Ctrl-x 退出安裝程式 
12) 要$提示符下執行 
startserver-fRUN-lyg114 啟動SQL Server 
13) 要$提示符下執行 
isql-Usa -P- Slyg114 
螢幕出現:1> 
安裝完畢 
Sybase 11.0.2 For SCO UNIX 5.02C的安裝 
(一)首先建立sybase組,
組號可設為100;再建立sybase使用者,
然後修改/usr/sybase/.profile檔案,
加入一句:SYBASE=“/usr/sybase”;
export SYBASE。 
(二)調整系統核心引數 
a. 共享記憶體: 
# cd /etc/conf/cf.d 
# ./configure選16,shared data 
SHMMAX,輸入新值,如83886080
(越大越好,系統啟動後省下的全部記憶體) 
退出。 
b. 啟用非同步I/O: 
# cd /etc/conf/sdevice.d;進入此目錄 
# Vi aio將“N”改為“Y”;編輯aio檔案 
# Vi suds將“N”改為“Y”;編輯suds檔案 
# Vi /etc/rc2 在最後加入下面一行: 
/etc/suds_ctrl -a 
c. 重建核心: 
# /etc/conf/cf.d/link_unix 
d. 重新啟動openserver 
(三)安裝sybase 
a. 以sybase登入: 
$ ./sybload -D 
依輸入y 、l, 
然後執行”./sybimage“ 
b. 依提示輸入序列號,解完包後: 
Vi /usr/sybase/locales/locales.dat 
在[SCO]中,加入: 
C_C.C.,us-English,ico_1 
然後進入Install,配置SYBASE伺服器。 
※SYBASE 11.0.2 For SCO UNIX 5.0.2安裝補充說明 
目前SCO UNIX 5.0有多種版本,
針對5.0.2,SYBASE 11.0.2的安裝需安裝Kernel Patch: 
a. OSS437a-streams lock timeout and protocal Data 
b. OSS441a-SUDS aio supplement 
c. OSS446a-tape drive unload for nonrewinding devices 
在SCO UNIX 5.0.4C上不需安裝補丁盤。

相關推薦

Sybase資料庫常用命令

一、Sybase資料庫簡介 1.版本 1984年,Mark B. Hiffman和Robert Epstern建立了Sybase公司,並在1987年推出了Sybase資料庫產品。SYBASE主要有三種版本,一是UNIX作業系統下執行的版本,二是Novell Netware環

MySQL資料庫常用命令大全

                                常用命令大全(持續更新) show databases;顯示所有資料庫

資料庫常用命令(部分)

1、建立資料庫 CREATE DATABASE 資料庫名; 2、刪除資料庫 drop database 資料庫名; 3、從命令提示視窗中選擇MySQL資料庫 use 資料庫名; 4、MySQL 建立資料表 CREATE TABLE table_name(表名) (column_name

Ubuntu下資料庫常用命令

登入MySQL $ sudo mysql -u root -p 列舉所有的資料庫 mysql> show databases; (*分號) 建立名叫database_name的資料庫 mysql> create database database_name; 進入某一個數據庫

MongoDB資料庫常用命令

1、檢視命令提示 db.help();  2、切換/建立資料庫 use mydb01;  切換到mydb的資料庫,如果該資料庫不存在,則自動建立。 MongoDB中預設的資料庫為test,如果你沒有建立新的資料庫就會執行集合或者文件操作,資料將存放在

mysql資料庫常用命令(一)

– 資料庫的操作 -- 連結資料庫 mysql -uroot -p mysql -uroot -pmysql -- 退出資料庫 exit/quit/ctrl+d -- sql語句最後需要有分號;結尾 -- 顯示資料庫版本 select version()

Linux下操作MySQL資料庫常用命令

目錄 5.查詢表 9.退出 1.連線資料庫 mysql -u -root -p 輸入密碼 2.檢視資料庫 show databases;  3.開啟資料庫

Redis資料庫常用命令

Redis是一個開源的使用ANSI C語言編寫、支援網路、可基於記憶體亦可持久化的日誌型、Key-Value資料庫,並提供多種語言的API。 Redis 是一個高效能的key-value資料庫。Redis的出現,很大程度補償了memcached這類key/value儲存的不

MYSQL資料庫常用命令

MySQL是一個關係型資料庫管理系統,由瑞典MySQL AB 公司開發,目前屬於 Oracle 旗下產品。MySQL 最流行的關係型資料庫管理系統,在 WEB 應用方面MySQL是最好的 RDBMS (Relational Database Management

SQL資料庫常用命令

建立資料庫 create database student;//建立一個名為student的資料庫 建立資料庫的表 create table student //定義一個名為student的表 ( sno char(9) primary key, sname cha

SYBASE IQ 常用命令

 啟動IQstrat_asiq @database.cfg database.db 停止IQ stop_asiq 清除連結 sp_iqlocks; 檢視當前庫中有那些鎖定 SELECT connection_property( 'number' )檢視當前連線IDDROP

常用資料庫常用命令使用

SQL:Structured Query Language,結構化查詢語言(資料以查詢為主,99% 都是在進行查詢操作)。SQL 主要分為三種:• DDL:Data Definition Language,資料定義語言,用來維護儲存資料的結構(資料庫、表),代表指令為crea

Windows下還原Oracle資料庫常用命令

Windows環境下使用命令的方式還原資料庫: 1   win+R  進入DOS環境; 2   sqlplus /nolog                            進入Oracle命令環境 3   conn /as sysdba              

flask資料庫常用命令

資料庫增加,刪除,修改操作: 增加: user = User(name='laowang') db.session.add(user) db.session.commit() 修改: user.name = 'xiaohua' db.session.commit() 刪除

MySql資料庫常用命令總結(全)

一、資料庫級命令 1. 資料庫連線 命令:mysql -h主機地址 -u使用者名稱 -p使用者密碼 –port=3307 1、找到安裝目錄bin, 進入該工作目錄,鍵入該命令mysql -u root -p,提示輸入密碼,使用者名稱前可以有空格也可以沒

資料庫常用命令和如何刪除資料庫 solaris

1)檢視資料庫完整資訊: srvctl config database -db database dbname 2)重啟資料庫: srvctl  stop/start database -db dbname 3) 檢視資料庫服務是否執行正常在nodes上: srvctl

資料庫 常用命令

1、登陸資料庫 mysql -u root -p 2、高頻指令 檢視資料庫 SHOW DATABASES; 建立資料庫 CREATE DATABASE school_schema; 切換資料庫 USE school_schema

mysql資料庫常用命令總結

本文主要記錄一些mysql日常使用的命令,供以後查詢。 1.更改root密碼 mysqladmin -uroot password 'yourpassword'1 2.遠端登陸mysql伺服器 mysql -uroot -p -h192.168.137.10 -P330

ORACLE資料庫常用命令

 1 監聽器啟動和關閉 1.1 檢視監聽狀態 lsnrctl status 1.2 啟動監聽 lsnrctl start 1.3 停止監聽 lsnrctl stop 2 啟動和關閉資料庫 2.1 確保監聽器處於啟動狀態 2.2 啟動資料庫 sqlplus /nolog; S

MySQL資料庫常用操作命令

接上一篇的操作: 1.查詢相反條件:select   查詢欄位    from   表名    where   not   (查詢條件); 2.範圍查詢: