天天看點

資料庫内容簡介

簡介:

  資料庫就是存放資料的倉庫,隻是這個倉庫是存儲在計算機儲存設備上的,而且是按一定的格式存儲的。

  資料庫管理系統:

DBMS: 資料庫管理系統Database Management System是一種操縱和管理資料庫的大型軟體,是用于建立、使用和維護資料庫,簡稱DBMS。它對資料庫進行統一的管理和控制,以保證資料庫的安全性和完整性。能過戶通過DBMS通路資料庫中的資料,資料庫管理者餓通過DBMS進行資料庫的維護工作。它提供多種功能,可使多個應用程式和使用者不同的方法在同時或不同時刻去建立,修改和詢問資料庫。

按功能劃分,資料庫管理系統大緻可分為6個部分:

  模式翻譯:提供資料定義語言(DDL)。用它書寫的資料庫模式被翻譯為内部表示。資料庫的邏輯結構、完整限制和實體儲存結構儲存在内部的資料字典中。資料庫的各種資料操作(如查找、修改、插入和删除等)和資料庫的維護管理都是以資料庫模式為依據的。

  應用程式的編譯:把包含着通路資料庫語句的應用程式,編譯成在DBMS支援下可運作的目标程式。

  互動式查詢:提供易使用的互動式查詢語言,如SQL.DBMS負責執行查詢指令,并将查詢結果顯示在螢幕上。

  資料的組織與存取:提供資料在外為儲存設備上的實體組織與存取方法。

  事務運作管理:提供事務運作管理及運作日志,事務運作的安全性監控和資料完整性檢查

事務的并發控制及系統恢複等功能。

  資料庫的維護:為資料庫管理者提供軟體支援,包括資料安全控制、完整性保障、資料庫

備份、資料庫重組以及性能監控等維護工具。

計算機資料管理技術大緻經曆了送你個發展階段:

自由管理階段:使用者以檔案形式将資料組織起來,并附屬在各自的應用程式下。

檔案管理階段:作業系統中的檔案系統給出了統一的檔案結構和共同存取的方法,使用者可以把資料和資訊作為檔案長期地儲存在計算機中,并可以友善地進行查詢和處理。

資料庫管理階段:為了适應大量資料的集中存儲,并提供給多個使用者共享的要求,是資料與程式完全獨立,最大限度地減少資料的備援度,出現了資料庫管理系統。

DBMS提供五種功能:

  資料定義功能。

  資料管理功能。

  對資料庫進行保護。

  資料庫的建立和維護。

  資料庫的傳輸。

 RDBMS(relational database management system):是基于資料模型(關系系統)的資料庫管理系統,在資料庫市場已經占據了主導地位。它通過資料、關系和對資料的限制三者組成的資料模型來存放和管理資料。

    RDBMS的特點:

1、資料以表格的形式出現

2、每行為各種記錄名稱

3、每列各種記錄名稱所對應的資料域

4、許多的行和列組成一張表單

5、若幹的表單組成database

  ODBC(OpenDatabaseConnectivity,開放資料庫互連)是微軟公司開放服務結構(WOSA,WindowsOpenServiceArchitecture)中有關資料庫的一個組成部分,它建立了一組規範,并提供了一組對資料庫通路的标準API(應用程式程式設計接口)。這些API利用SQL來完成大部分任務。ODBC本身也提供了對SQL語言的支援,使用者可以直接将SQL語句送給ODBC.。

  實作:

  ODBC的運用形态通常是應用程式經過一個稱之為ODBCA管理器的工具,間接用ODBC驅動程式,從資料庫對于使用者的應用程式而言,ODBC驅動程式是相對不可見的。使用者隻需要在ODBC管理器中配置相應的資料庫的資料源資訊,并登陸相應的ODBC驅動即可。

資料庫管理的特點:

1、  互相關聯的資料集合;

2、  較少的資料備援;

3、  程式與資料互相獨立;

4、  保證資料的安全的可靠;

5、  最大限度地保證資料的正确性;

6、  資料可以共享并能保證資料的一緻性。

資料庫系統組成:

1、  硬體

2、  軟體

3、  人員

資料庫關系模型是由實體和聯系構成,即通常所說的E-R圖。實體通常儀表的形式表現,

表每一行描述實體的一個執行個體,表的每一列描述實體的一個特征或屬性。聯系指實體間的對應關系,聯系分為三種:一對一的聯系,一對多的聯系,多對一的聯系。

  關系資料庫:基于關系模型的資料庫,關系資料庫中的資料結構是關系,關系是有行與列構成的二維表。在關系模型中,實體和實體間的關系都是用關系表示的。關系不但可以表示實體間一堆多的聯系,通過建立關系間一對多的聯系,通過建立關系的關聯,也可以表示多對多的聯系

  主關鍵字(Primary Key)

主關鍵字是被挑選出來,作表的行的惟一辨別的候選關鍵字。一個通常隻有主關鍵字。主關鍵字又可以稱為主鍵。特點:不為空,不能有相同值,一張表中隻能有一個逐漸

    外關鍵字(Foreign Key)

外關鍵字表示了兩個關系之間的聯系。以另一個關系的外關鍵字作主關鍵字的表被稱為主表,具有此外關鍵字的表被稱為主表的從表。外關鍵字又稱作外鍵。外鍵的選擇展現了表(實體)之間的聯系。特點:在表之間建立限制(引用性限制)可為空,如果不空則值不能相同,一個表可有多個惟一性。

  表(Table)

資料庫中主要的對象。

指關系資料庫系統的二維表,也即關系。

一般來說,關系資料庫表的結構包含三個基本組成元素:字段名、資料類型和長度。

  CREATE TABLE Employee

(

  Employee_Id varchar(20),

  Employee_Name varchar(50),

  Employee_Depart varchar(100),

  Job_Id varchar(20),

  Employee_Salary decimal(18,2)

)

  索引(Index)和視圖(View)

索引(Index):是根據指定的資料庫表列建立起來的順序,它提供了快速通路資料的途徑。

視圖(View):視圖看上去同表似乎一模一樣,具有一組命名的、不重複的字段和資料項,但它其實是一個虛拟的表,在資料庫中并不實際存在。它是資料庫預編譯好的一段查詢語句。

  存儲過程(Procedure)

存儲過程是為完成特定的功能而彙集在一起的一組SQL程式語句,經編譯後存儲在資料庫中的SQL程式。

CREATE PROCEDURE P_GET_EMPLOYEE_INFO_BY_ID

       @employee_id INT

AS

BEGIN

       SELECT * FROM Employee WHERE Employee_Id=@employee_id

END

GO

    函數(Function)

與存儲過程相比,函數必須具有傳回值,并且使用的SQL語句也有諸多限制建立函數(傳回varchar類型的值)

create function test(@Num varchar(20))--@Num 參數

returns varchar(50) --傳回值類型

as

begin

declare @MSG varchar(20)

if(@Num =1)

select @MSG ='正确'

else

select @MSG ='錯誤'

return @MSG

end

  調用函數

select dbo.test(2)--傳遞參數2

傳回結果:錯誤

  聚合函數

COUNT

SELECT COUNT(*) FROM Employee WHERE Job_Id = ‘0001’

SUM

AVG

MAX

MIN

  簡單的SELECT

簡單的SELECT語句的文法如下;

SELECT [DISTINCT]<目标表達式>[,<目标表達式>]…

FROM <表或視圖名>[, <表或視圖名>]…

[WHERE <條件表達式>]

[GROUP BY <列名1> [HAVING <條件表達式>]]

[ORDER BY [列名2> [ASC | DESC]]

Select * from employee where fname=‘Paolo’

  使用函數:

Select convert(char(10),getdate(),121);

Select upper(lname)from employee where fname=’Paolo’;

Select dataDiff(DAY,’2008-12-12’,’2008-12-25’)

  判斷分支:

select case when fname='Anabela' then '1'

when fname='Ann' then '2'

else 'name'

end 

from employee

order by fname

  select嵌套:

Select * from employee where job_id in (select job_id from jobs where min_lvl between 0 and 10);

  别名定義:

Select upper(lname) Uname from employee a where fname='Paolo';

  表連接配接(多表查詢)

select * from employee a,jobs b where a.job_id=b.job_id;

以a表為主表:select * from employee a,jobs b where a.job_id *= b.job_id;

以b表為主表:select * from employee a,jobs b where a.job_id =* b.job_id;

Oracle的寫法是:

以a表為主表:select * from employee a,jobs b where a.job_id = b.job_id(+);

以b表為主表:select * from employee a,jobs b where a.job_id(+) = b.job_id;

通用的寫法:

select * from employee a inner join jobs b on a.job_id = b.job_id;

select * from employee a left join jobs b on a.job_id = b.job_id;

select * from employee a right join jobs b on a.job_id = b.job_id;

  簡單的update語句:

UPDATE Student SET Student_Name=‘保羅’ WHERE Student_Id=‘0001’;

  表聯合更新:

Update  B   set   B.字段=A.字段   from   A,B   where   B.條件字段=A.條件字段

  Insert語句:

INSERT INTO tb1 (Name) VALUE (‘Jerry Obama‘);

  檢視資料庫表結構:

SELECT User,host,password FROM user;

    建立資料庫

CREATE DATABASE mysql;

CREATE DATABASE IF NOT EXISTS mysql;

CREATE DATABASE IF NOT EXISTS mysdb;

修改表内容:

UPDATE tb1 SET Age=38 WHERE Name=‘Jerry Obama‘;

  檢視表:

SELECT * FROM tb1;

  删除表内容:

DELETE FROM tb1 WHERE Name‘Jerry Obama’;

  檢視表的結構:

DESC tb1;

  删除表:

DROP TABLE IF EXISTS (表名);

  删除資料庫:

DROP DATABASE mydb;

  資料庫引擎:

MyISAM 預設存儲引擎它基于更老的ISAM代碼,有很多有用的擴充

InnDBM 支援事務

NDB 叢集

Archive 叢集中專用存儲引擎

Federated 聯合存儲引擎

Memory 記憶體資料庫 不能長久存儲資料

Merge 合并 将兩個MyISAM表合并成一個表中的數