應該是把C語言和資料庫結合起來,就是連接資料庫啦
⑵ 關於sql作業
MS SQL SERVER,只一條命令即可完成更新和判斷操作:
UPDATE TABLENAME SET FIELDNAME='值'
where (其它更新條件沒有可不寫)
and cast (DAY(GETDATE()) as varchar) like '%6%'--判斷當日日期中的日是否含6
⑶ sql server2008中的作業有何用途
作業可以執行一系列活動,包括運行 Transact-SQL 腳本、命令行應用程序、Microsoft ActiveX 腳本、Integration Services 包、Analysis Services 命令和查詢或復制任務。 作業可以運行重復任務或那些可計劃的任務,它們可以通過生成警報來自動通知用戶作業狀態,從而極大地簡化了 SQL Server 管理。
⑷ 怎樣理解SQL資料庫中的,事務,作業,!希望附上例子助於理解
當你對資料庫進行操作的時候,例如插入語句,知道吧?
當你使用了一條插入語句插入數據的時候,並沒有真正的把數據放到資料庫,只是把這些數據放到了內存中。
舉個例子:你要從北京到上海,當你用了一條插入語句的時候,就代表你坐上了車,但並沒有出發。
當你插入了之後,再使用COMMIT語句,就代表你出發了。
如果使用了ROLLBACK語句,就代表你下車了。
那麼問題來了?這樣有什麼用?
當你要進行一系列的操作,例如連續執行幾條插入語句,你要求這幾條插入語句要麼全部成功。要麼全部失敗。即使錯了一條也回到執行之前。
這種情況就要用到事務啦。
同行看到,有誤請指出,謝謝。
⑸ sql server 裡面的作業格式是什麼,應該怎麼寫,怎麼使用
sql server作業用法
一.作業的運用(自動更新db)
1、 打開sql server的企業管理器,找到管理中的作業
2、 新增一個作業,將具體的設置進行設定,新增步驟以確定要處理的sp及sql語句
新增調度以確定要執行的頻率!
3、例子
二.處理SP及其它sql語句以進行作業處理(運用數據倉庫的模式)
1、 創建要進行保存數據的空間(一般為表)
2、 運用作業進行數據填充
3、 通過存的數據進行數據呈現
三.具體示例
1、 創建表
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[r_Count1]')
and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[r_Count1]
GO
CREATE TABLE [dbo].[r_Count1] (
[UnitCoding] [varchar] (15) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[StatDate] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[Field1] [int] NOT NULL ,
[Field2] [int] NOT NULL ,
[Field3] [int] NOT NULL ,
[Field4] [int] NOT NULL ,
[Field5] [int] NOT NULL ,
[Field6] [int] NOT NULL ,
[Field7] [int] NOT NULL ,
[Field8] [int] NOT NULL ,
[Field9] [int] NOT NULL ,
[Field10] [int] NOT NULL ,
[Field11] [int] NOT NULL ,
[Field12] [int] NOT NULL ,
[Field13] [int] NOT NULL ,
[Field14] [int] NOT NULL ,
[Field15] [int] NOT NULL ,
[Field16] [int] NOT NULL ,
[Field17] [int] NOT NULL ,
[Field18] [int] NOT NULL
) ON [PRIMARY]
GO
2、 處理數據(運用作業的sp)
ALTER PROCEDURE AutoExec_Count1
(
@UnitCoding varchar(20),
@StatDate datetime
)
AS
/* 向臨時表中插入要變更單位的新舊單位代碼 */
Declare @i_SFirstdate varchar(10)
Declare @i_EFirstdate varchar(10)
Declare @i_SSeconddate varchar(10)
Declare @i_ESeconddate varchar(10)
Declare @i_getdate datetime
Select @i_getdate = @StatDate
Select @i_SFirstdate=dbo.u_Date2Char(DATEADD(mm,DATEDIFF(mm,0,@i_getdate),0))--當月第1天
Select @i_EFirstdate=dbo.u_Date2Char(DATEADD(dd,14,DATEADD(mm,DATEDIFF(mm,0,@i_getdate),0))) --當月第15天
Select @i_SSeconddate=dbo.u_Date2Char(DATEADD(dd,15,DATEADD(mm,DATEDIFF(mm,0,@i_getdate),0))) --當月第16天
Select @i_ESeconddate=dbo.u_Date2Char(DATEADD(ms,-3,DATEADD(mm,DATEDIFF(m,0,@i_getdate)+1,0))) --當月最後1天
/* 啟動事務 */
Begin transaction
/* 創建用於保存單位代碼和報表周期的臨時表 */
Create Table #TblUnitDateSwap
(
NumberID int IDENTITY (1, 1) NOT NULL ,
UnitCoding varchar(20),
startdate varchar(10),
enddate varchar(10)
)
/* 向臨時表中插入單位數據 */
Select @UnitCoding = RTrim(@UnitCoding) + '%' --
--插入上半月統計日期(例:2004-1-1~2004-1-15)
Insert Into #TblUnitDateSwap(UnitCoding,startdate,enddate)
Select UnitCoding,@i_SFirstdate,@i_EFirstdate
From m_Units Where Len(UnitCoding)=12 And (UnitCoding Like @UnitCoding)
--插入下半月統計日期(例:2004-1-16~2004-1-31)
Insert Into #TblUnitDateSwap(UnitCoding,startdate,enddate)
Select UnitCoding,@i_SSeconddate,@i_ESeconddate
From m_Units Where Len(UnitCoding)=12 And (UnitCoding Like @UnitCoding)
--插入整月統計日期(例:2004-1-1~2004-1-31)
Insert Into #TblUnitDateSwap(UnitCoding,startdate,enddate)
Select UnitCoding,@i_SSeconddate,@i_ESeconddate
From m_Units Where Len(UnitCoding)=12 And (UnitCoding Like @UnitCoding)
/*插入存儲過程開始執行時間(正式執行時屏蔽此功能)*/
INSERT INTO r_ExecTime(UnitCoding,ExecName) VALUES(@UnitCoding,'START')
Declare @errorcode int
Declare @i_UnitCoding varchar(20)
Declare @i_startdate varchar(10)
Declare @i_enddate varchar(10)
/* 統計插入臨時表中的記錄數 */
Declare @v_TempTableCount int
Select @v_TempTableCount = count(*) From #TblUnitDateSwap
Declare @i integer -- 定義一個臨時循環變數
Select @i=1 -- 初始化臨時變數為1
--循環每個基層單位(單位代碼長度為12),將統計值保存到r_Count對應表中
While(@i <= @v_TempTableCount) -- 執行循環的條件為臨時變數<=臨時表記錄數
Begin -- w01
Select @i_UnitCoding = UnitCoding,@i_startdate = startdate,@i_enddate = enddate
From #TblUnitDateSwap
Where NumberID = @i
If Not Exists (Select * From r_Count1 Where UnitCoding = @i_UnitCoding And StatDate = @i_startdate)
Begin
INSERT INTO r_Count1
EXEC ('dbo.sp_Count1_Auto_New '+@i_UnitCoding+','+@i_startdate+','+@i_enddate)
End
Else--如果存在已統計的記錄,則刪除該記錄,重新插入最新統計記錄(為提高效率,可以屏蔽此功能)
Begin
Delete From r_Count1 Where UnitCoding = @i_UnitCoding And StatDate = @i_startdate
INSERT INTO r_Count1
EXEC ('dbo.sp_Count1_auto '+@i_UnitCoding+','+@i_startdate+','+@i_enddate)
End
--獲得錯誤代碼值
Select @errorcode=@@error
/*** 臨時循環變數自增1*/
Select @i=@i+1
End -- w01
/*插入存儲過程開始執行時間(正式執行時屏蔽此功能)*/
INSERT INTO r_ExecTime(UnitCoding,ExecName) VALUES(@UnitCoding,'END')
/*
--調試執行循環次數
Declare @jj varchar(10)
Select @jj = convert(varchar(10),@i)
Print '執行次數:'+@jj
*/
/* 刪除臨時表 */
Drop Table #TblUnitDateSwap
If(@errorcode = 0)
Begin
Commit Transaction
End
Else
Begin
Rollback Transaction
End
RETURN
3、 挖掘數據
Create PROCEDURE dbo.sp_Count1_Auto_New
(
@Unitcoding varchar(20),
@startdate char(8) ,
@enddate char(8)
)
AS
declare @length integer
declare @len integer
select @length=len(@Unitcoding)
if @length = 4 or @length = 2
begin
select @len=2
end
else if @length = 12
begin
select @len=0
end
else
begin
select @len=3
end
select @Unitcoding As UnitCoding,
@startdate As StatDate,
dbo.getFCount_inout(Unitcoding,'19000101',@enddate,99,99,99,0,99,99,99,0),
dbo.getFCount_inout(Unitcoding,@startdate,@enddate,99,99,99,0,99,99,99,0),
dbo.getFCount_inout(Unitcoding,'19000101',@enddate,1,99,99,0,99,0,99,0),
dbo.getFCount_inout(Unitcoding,'19000101',@enddate,1,99,99,0,1,0,99,0),
dbo.getFCount_inout(Unitcoding,'19000101',@enddate,0,99,99,0,99,0,99,0),
dbo.getFCount_inout(Unitcoding,'19000101',@enddate,0,99,99,0,1,0,99,0),
dbo.getFCount_inout(Unitcoding,'19000101',@enddate,1,99,99,0,99,1,0,0),
dbo.getFCount_inout(Unitcoding,'19000101',@enddate,1,99,99,0,1,1,0,0) ,
dbo.getFCount_inout(Unitcoding,'19000101',@enddate,0,99,99,0,99,1,0,0),
dbo.getFCount_inout(Unitcoding,'19000101',@enddate,0,99,99,0,1,1,0,0),
dbo.getFCount_inout(Unitcoding,'19000101',@enddate,1,99,99,0,99,1,1,0),
dbo.getFCount_inout(Unitcoding,'19000101',@enddate,1,99,99,0,1,1,1,0) ,
dbo.getFCount_inout(Unitcoding,'19000101',@enddate,0,99,99,0,99,1,1,0),
dbo.getFCount_inout(Unitcoding,'19000101',@enddate,0,99,99,0,1,1,1,0),
dbo.getFCount_inout(Unitcoding,'19000101',@enddate,99,99,99,1,99,99,99,0),
dbo.getFCount_inout(Unitcoding,@startdate,@enddate,99,99,99,1,99,99,99,0),
dbo.getFCount_inout(Unitcoding,'19000101',@enddate,0,1,1,1,99,99,99,0),
dbo.getFCount_inout(Unitcoding,'19000101',@enddate,0,1,1,1,1,99,99,0)
from m_units
where Unitcoding like @Unitcoding + '%' and len(Unitcoding) = len(@Unitcoding) + @len
RETURN
4、 數據分析顯示
Select dbo.getUnitName(Left(UnitCoding,@v_Len)) As '單位名稱',
Sum(Field1),
Sum(Field2),
Sum(Field3),
Sum(Field4),
Sum(Field5),
Sum(Field6),
Sum(Field7),
Sum(Field8),
Sum(Field9),
Sum(Field10),
Sum(Field11),
Sum(Field12),
Sum(Field13),
Sum(Field14),
Sum(Field15)
From dbo.u_Count1_Report_New(@Unitcoding,@startdate,@enddate)
Group By Left(UnitCoding,@v_Len),dbo.getUnitName(Left(UnitCoding,@v_Len))
Order By Left(UnitCoding,@v_Len),dbo.getUnitName(Left(UnitCoding,@v_Len))
/*function表
Create FUNCTION dbo.u_Count1_Report_New
(
@Unitcoding varchar(20),
@startdate char(8) ,
@enddate char(8)
)
RETURNS @r_Count1 TABLE
(
UnitCoding varchar (20),
--StatDate varchar(10),
Field1 int NOT NULL ,
Field2 int NOT NULL ,
Field3 int NOT NULL ,
Field4 int NOT NULL ,
Field5 int NOT NULL ,
Field6 int NOT NULL ,
Field7 int NOT NULL ,
Field8 int NOT NULL ,
Field9 int NOT NULL ,
Field10 int NOT NULL ,
Field11 int NOT NULL ,
Field12 int NOT NULL ,
Field13 int NOT NULL ,
Field14 int NOT NULL ,
Field15 int NOT NULL ,
Field16 int NOT NULL ,
Field17 int NOT NULL ,
Field18 int NOT NULL
)
AS
BEGIN
declare @length integer
declare @v_Len integer
select @length=len(@Unitcoding)
Select @v_Len = 12
INSERT @r_Count1
Select Left(UnitCoding,@v_Len) As UnitCoding,
--StatDate,
Max(Field1) As Field1,
max(dbo.GetOneMonth1(Left(UnitCoding,@v_Len),@startdate,@enddate,0)) As Field2,
Max(Field3) As Field3,
Max(Field4) As Field4,
Max(Field5) As Field5,
Max(Field6) As Field6,
Max(Field7) As Field7,
Max(Field8) As Field8,
Max(Field9) As Field9,
Max(Field10) As Field10,
Max(Field11) As Field11,
Max(Field12) As Field12,
Max(Field13) As Field13,
Max(Field14) As Field14,
Max(Field15) As Field15,
max(dbo.GetOneMonth1(Left(UnitCoding,@v_Len),@startdate,@enddate,1)) As Field16,
Max(Field17) As Field17,
Max(Field18) As Field18
From r_Count1
Where StatDate >=@startdate And StatDate <=@enddate
And UnitCoding Like @Unitcoding + '%'
Group By Left(UnitCoding,@v_Len)
Order By Left(UnitCoding,@v_Len)
RETURN
END
⑹ SQL SERVER的維護計劃和作業的區別
維護計劃包括了各類作業管理。在維護計劃的各個步驟中其實就是調用具體的一些作業。作業是實際要乾的事情。可以理解為維護計劃是用來管理作業的。
「我想定期某些表做更新操作,在維護計劃中卻無法實現」當然可以實現啊,選擇維護計劃中「執行SQL SERVER代理作業」就可以
⑺ 請問sql中的 警報,操作員,作業之間到底什麼關系啊。
這幾個都是常見的SQL Server自動化功能
操作員只是一種通知方式而已,可以為操作員建立郵件、尋呼、net send三種通知方式,這樣在需要通知給資料庫管理員某些信息時,就可以使用操作員了。
作業是一種自動化任務,主要包含作業步驟和時間計劃。作業執行過後,為了讓管理員知道作業執行的情況,可以發送消息給操作員,也可以去觸發一個警報。
警報是一種監視機制,可以監視SQL Server的事件或性能條件。一旦監視的事情發生,或者監視的性能數據達到預設的閾值,就會觸發警報。警報觸發後執行什麼工作,取決於警報中響應的定義。一般是執行作業和發消息給操作員。
舉個例子吧:
我們擔心資料庫的日誌填滿,需要進行監視。我們就先建立一個操作員admin,設置net send地址為某個管理員的IP地址。然後建立一個作業trunclog來截斷日誌,作業的內容是:backup log dbname with no_log
然後建立一個警報,類型為性能條件警報,對象是SQL Server:Databases,選擇你的資料庫,並選擇Percent log used,數值設置為80。也就是說某個資料庫的日誌使用率一旦達到80%就要激活警報,至於警報的響應設置為運行作業trunclog,並發消息給admin操作員。
這樣一旦日誌使用率達到80%,就會發消息給管理員,同時日誌會被自動截斷。
⑻ SQL作業
1.
declare @cj int
declare @c cursor
set @c=cursor forward_only for select chengji from biao where zhuanye='電子信息'
open @c
fetch next from @c into @cj
while @@fetch__status=0
begin
print @cj
fetch next from @c into @cj
end
close @c
2.
declare @min int,@max int,@diff int
select @min=min(chengji),@max=max(chengji) from biao where kechenghao='206'
select @diff=@max-@min
3.
create function getscore(@kcm nvarchar(10))
return int
as
declare @r int
select @r=cast(round(avg(chengji),0) as int) from biao where kechengming=@kcm
return @r
4.
create function getscores(@zy nvarchar(10))
return table
as
return (select * from CJ_VIEW where zhuanye='電子信息')
⑼ sql server資料庫里的作業有什麼用
你應該先了解什麼是資料庫概念。
SQL SERVER資料庫只是其中的一種,是微軟的產品。
資料庫
資料庫發展階段大致劃分為如下幾個階段:
人工管理階段;
文件系統階段;
資料庫系統階段;
高級資料庫階段。
當人們從不同的角度來描述這一概念時就有不同的定義(當然是描述性的)。例如,稱資料庫是一個「記錄保存系統」(該定義強調了資料庫是若干記錄的集合)。又如稱資料庫是「人們為解決特定的任務,以一定的組織方式存儲在一起的相關的數據的集合」(該定義側重於數據的組織)。更有甚者稱資料庫是「一個數據倉庫」。當然,這種說法雖然形象,但並不嚴謹。
嚴格地說,資料庫是「按照數據結構來組織、存儲和管理數據的倉庫」。在經濟管理的日常工作中,常常需要把某些相關的數據放進這樣「倉庫」,並根據管理的需要進行相應的處理。例如,企業或事業單位的人事部門常常要把本單位職工的基本情況(職工號、姓名、年齡、性別、籍貫、工資、簡歷等)存放在表20.6.3中,這張表就可以看成是一個資料庫。有了這個"數據倉庫"我們就可以根據需要隨時查詢某職工的基本情況,也可以查詢工資在某個范圍內的職工人數等等。這些工作如果都能在計算機上自動進行,那我們的人事管理就可以達到極高的水平。此外,在財務管理、倉庫管理、生產管理中也需要建立眾多的這種"資料庫",使其可以利用計算機實現財務、倉庫、生產的自動化管理。
J.Martin給資料庫下了一個比較完整的定義:資料庫是存儲在一起的相關數據的集合,這些數據是結構化的,無有害的或不必要的冗餘,並為多種應用服務;數據的存儲獨立於使用它的程序;對資料庫插入新數據,修改和檢索原有數據均能按一種公用的和可控制的方式進行。當某個系統中存在結構上完全分開的若干個資料庫時,則該系統包含一個「資料庫集合」。
· 資料庫的優點
使用資料庫可以帶來許多好處:如減少了數據的冗餘度,從而大大地節省了數據的存儲空間;實現數據資源的充分共享等等。此外,資料庫技術還為用戶提供了非常簡便的使用手段使用戶易於編寫有關資料庫應用程序。特別是近年來推出的微型計算機關系資料庫管理系統dBASELL,操作直觀,使用靈活,編程方便,環境適應廣泛(一般的十六位機,如IBM/PC/XT,國產長城0520等均可運行種軟體),數據處理能力極強。資料庫在我國正得到愈來愈廣泛的應用,必將成為經濟管理的有力工具。
資料庫是通過資料庫管理系統(DBMS-DATA BASE MANAGEMENT SYSTEM)軟體來實現數據的存儲、管理與使用的dBASELL就是一種資料庫管理系統軟體。
· 資料庫結構與資料庫種類
資料庫通常分為層次式資料庫、網路式資料庫和關系式資料庫三種。而不同的資料庫是按不同的數據結構來聯系和組織的。
1.數據結構模型
(1)數據結構
所謂數據結構是指數據的組織形式或數據之間的聯系。如果用D表示數據,用R表示數據對象之間存在的關系集合,則將DS=(D,R)稱為數據結構。例如,設有一個電話號碼簿,它記錄了n個人的名字和相應的電話號碼。為了方便地查找某人的電話號碼,將人名和號碼按字典順序排列,並在名字的後面跟隨著對應的電話號碼。這樣,若要查找某人的電話號碼(假定他的名字的第一個字母是Y),那麼只須查找以Y開頭的那些名字就可以了。該例中,數據的集合D就是人名和電話號碼,它們之間的聯系R就是按字典順序的排列,其相應的數據結構就是DS=(D,R),即一個數組。(2)數據結構種類
數據結構又分為數據的邏輯結構和數據的物理結構。數據的邏輯結構是從邏輯的角度(即數據間的聯系和組織方式)來觀察數據,分析數據,與數據的存儲位置無關。數據的物理結構是指數據在計算機中存放的結構,即數據的邏輯結構在計算機中的實現形式,所以物理結構也被稱為存儲結構。本節只研究數據的邏輯結構,並將反映和實現數據聯系的方法稱為數據模型。
目前,比較流行的數據模型有三種,即按圖論理論建立的層次結構模型和網狀結構模型以及按關系理論建立的關系結構模型。
2.層次、網狀和關系資料庫系統
(1)層次結構模型
層次結構模型實質上是一種有根結點的定向有序樹(在數學中"樹"被定義為一個無回的連通圖)。例如圖20.6.4是一個高等學校的組織結構圖。這個組織結構圖像一棵樹,校部就是樹根(稱為根結點),各系、專業、教師、學生等為枝點(稱為結點),樹根與枝點之間的聯系稱為邊,樹根與邊之比為1:N,即樹根只有一個,樹枝有N個。這種數據結構模型的一般結構見圖20.6.5所示。
圖20.6.4 高等學校的組織結構圖 圖20.6.5 層次結構模型
圖20.6.5中,Ri(i=1,2,…6)代表記錄(即數據的集合),其中R1就是根結點(如果Ri看成是一個家族,則R1就是祖先,它是R2、R3、R4的雙親,而R2、R3、R4互為兄弟),R5、R6也是兄弟,且其雙親為R3。R2、R4、R5、R6又被稱為葉結點(即無子女的結點)。這樣,Ri(i=1,2,…6)就組成了以R1為樹根的一棵樹,這就是一個層次數據結構模型。
按照層次模型建立的資料庫系統稱為層次模型資料庫系統。IMS(Information Manage-mentSystem)是其典型代表。
(2)網狀結構模型
在圖20.6.6中,給出了某醫院醫生、病房和病人之間的聯系。即每個醫生負責治療三個病人,每個病房可住一到四個病人。如果將醫生看成是一個數據集合,病人和病房分別是另外兩個數據集合,那麼醫生、病人和病房的比例關系就是M:N:P(即M個醫生,N個病人,P間病房)。這種數據結構就是網狀數據結構,它的一般結構模型如圖20.6.7所示。在圖中,記錄Ri(i=1,2,8)滿足以下條件:
①可以有一個以上的結點無雙親(如R1、R2、R3)。
②至少有一個結點有多於一個以上的雙親。在"醫生、病人、病房"例中,"醫生集合有若干個結點(M個醫生結點)無"雙親",而"病房"集合有P個結點(即病房),並有一個以上的"雙親"(即病人)。
圖20.6.6 醫生、病房和病人之間的關系
圖20.6.7 網狀結構模型
按照網狀數據結構建立的資料庫系統稱為網狀資料庫系統,其典型代表是DBTG(Data Base Task Group)。用數學方法可將網狀數據結構轉化為層次數據結構。
(3)關系結構模型
關系式數據結構把一些復雜的數據結構歸結為簡單的二元關系(即二維表格形式)。例如某單位的職工關系就是一個二元關系(見表20.6.8)。這個四行六列的表格的每一列稱為一個欄位(即屬性),欄位名相當於標題欄中的標題(屬性名稱);表的每一行是包含了六個屬性(工號、姓名、年齡、性別、職務、工資)的一個六元組,即一個人的記錄。這個表格清晰地反映出該單位職工的基本情況。
表20.6.8 職工基本情況
通常一個m行、n列的二維表格的結構如表20.6.9所示。
表中每一行表示一個記錄值,每一列表示一個屬性(即欄位或數據項)。該表一共有m個記錄。每個記錄包含n個屬性。
作為一個關系的二維表,必須滿足以下條件:
(1)表中每一列必須是基本數據項(即不可再分解)。(2)表中每一列必須具有相同的數據類型(例如字元型或數值型)。(3)表中每一列的名字必須是唯一的。(4)表中不應有內容完全相同的行。(5)行的順序與列的順序不影響表格中所表示的信息的含義。
由關系數據結構組成的資料庫系統被稱為關系資料庫系統。
在關系資料庫中,對數據的操作幾乎全部建立在一個或多個關系表格上,通過對這些關系表格的分類、合並、連接或選取等運算來實現數據的管理。dBASEII就是這類資料庫管理系統的典型代表。對於一個實際的應用問題(如人事管理問題),有時需要多個關系才能實現。用dBASEII建立起來的一個關系稱為一個資料庫(或稱資料庫文件),而把對應多個關系建立起來的多個資料庫稱為資料庫系統。dBASEII的另一個重要功能是通過建立命令文件來實現對資料庫的使用和管理,對於一個資料庫系統相應的命令序列文件,稱為該資料庫的應用系統。因此,可以概括地說,一個關系稱為一個資料庫,若干個資料庫可以構成一個資料庫系統。資料庫系統可以派生出各種不同類型的輔助文件和建立它的應用系統。
· 資料庫的要求與特性
為了使各種類型的資料庫系統能夠充分發揮它們的優越性,必須對資料庫管理系統的使用提出一些明確的要求。
1.建立資料庫文件的要求
(1)盡量減少數據的重復,使數據具有最小的冗餘度。計算機早期應用中的文件管理系統,由於數據文件是用戶各自建立的,幾個用戶即使有許多相同的數據也得放在各自的文件中,因而造成存儲的數據大量重復,浪費存儲空間。資料庫技術正是為了克服這一缺點而出現的,所以在組織數據的存儲時應避免出現冗餘。
(2)提高數據的利用率,使眾多用戶都能共享數據資源。
(3)注意保持數據的完整性。這對某些需要歷史數據來進行預測、決策的部門(如統計局、銀行等)特別重要。
(4)注意同一數據描述方法的一致性,使數據操作不致發生混亂。如一個人的學歷在人事檔案中是大學畢業,而在科技檔案中卻是大學程度,這樣就容易造成混亂。
(5)對於某些需要保密的數據,必須增設保密措施。
(6)數據的查找率高,根據需要數據應能被及時維護。
2.資料庫文件的特徵
無論使用哪一種資料庫管理系統,由它們所建立的資料庫文件都可以看成是具有相同性質的記錄的集合,因而這些資料庫文件都有相同的特性:
(1)文件的記錄格式相同,長度相等。
(2)不同的行是不同的記錄,因而具有不同的內容。
(3)不同的列表示不同的欄位名,同一列中的數據的性質(屬性)相同。
(4)每一行各列的內容是不能分割的,但行的順序和列的順序不影響文件內容的表達。
3.文件的分類
對文件引用最多的是主文件和事物文件。其他的文件分類還包括表文件、備份文件、檔案的輸出文件等。下面將講述這些文件。
(1)主文件。主文件是某特定應用領域的永久性的數據資源。主文件包含那些被定期存取以提供信息和經常更新以反映最新狀態的記錄。典型的主文件有庫存文件、職工主文件和收帳主文件等。
(2)事務文件。事務文件包含著作為一個信息系統的數據活動(事務)的那些記錄。這些事務被分批以構成事務文件。例如,從每周工資卡上錄制下來的數分批存放在一個事務文件上,然後對照工資清單文件進行處理以便列印出工資支票和工資記錄簿。
(3)表文件。表文件是一些表格。之所以單獨建立表文件而不把表設計在程序中是為了便於修改。例如,一個公用事業公司的稅率表或國內稅務局的稅率就可以存儲在表中文件。
(4)備用文件。備用文件是現有生產性文件的一個復製品。一旦生產性文件受到破壞,利用備用文件就可以重新建立生產性文件。
(5)檔案文件。檔案文件不是提供當前處理使用的,而是保存起來作為歷史參照的。例如,國內稅務局(IRS)可能要求檢查某個人最近15年的歷史。實際上,檔案文件恰恰是在給定時間內工作的一個"快照"。
(6)輸出文件。輸出文件包含將要列印在列印機上的、顯在屏幕上的或者繪制在繪圖儀上的那些信息的數值映象。輸出文件可以是"假離線的"(存儲在輔存設備上),當輸出設備可用時才進行實際的輸出。
⑽ 關於sql 作業
很容易做到的..在企業管理器里,你的資料庫=>管理=>SQL代理=>在作業上右鍵,所有任務 生成SQL腳本. 這樣你的所有作業都會變成腳本
然後在你的新資料庫里 打開查詢分析器 把你剛才生成的腳本打開 執行就OK了..