1、資料庫

資料庫管理系統(DBMS)

:用來管理資料庫的計算機系統稱為資料庫管理系統。

DBMS

主要透過資料的儲存格式(資料庫的種類)來進行分類,DBMS主要有5種類型

(1)層次資料庫(HDB)

(2)關係資料庫(RDB)

採用由行和列組成的二維資料表來管理資料,使用專門的SQL(Structured Query Language,結構化查詢語言)對資料進行操作。

這種型別的DBMS稱為關係型資料庫管理系統(Relational Database Management System),較具代表性的RDBMS有如下5種。

Oracle Database: 甲骨文公司的RDBMS

SQL Server: 微軟公司的RDBMS

DB2:IBM公司的RDBMS

PostgreSQL:開源的RDBMS

MySQL:開源的RDBMS

(3)面向物件資料庫(OODB)

(4)XML資料庫(XMLDB)

(5)鍵值儲存系統(KVS)

資料庫的結構

SQL(一、資料庫和SQL)

伺服器指的是用來接收其他程式發出的請求,並對該請求進行相應處理的程式,或者是安裝了此類程式的裝置(計算機)。

客戶端指的是向伺服器發出請求的程式(軟體),或者是安裝了該程式的裝置(計算機)。

RDBMS也是一種伺服器,它能夠從儲存在硬碟上的資料庫中讀取資料並返回,還可以把資料變成指定內容。訪問由RDBMS管理的資料庫,進行資料讀寫的程式稱為RDBMS客戶端。

RDBMS既可以和其客戶端同時安裝在同一臺計算機上,也可以分別安裝在不同的計算機上。這樣一來,透過網路不僅可以使二者相互關聯,還可以實現多個客戶端訪問同一個RDBMS。

SQL(一、資料庫和SQL)

表儲存在RDBMS管理的資料庫中,一個數據庫中可以儲存多個表。

SQL(一、資料庫和SQL)

表的列稱為欄位,表的行稱為記錄。

2、SQL語句及其種類(後續均以適用於MySQL資料庫的語句為標準)

SQL語句可以分為以下三類:

(1)DDL(data definition language,資料定義語言)用來建立或刪除儲存資料用的資料庫以及資料庫中的表等物件。

CREATE:建立資料庫和表等物件

DROP:刪除資料庫和表等物件

ALTER:修改資料庫和表等物件的結構

(2)

DML(data manipulation language, 資料操作語言)用來查詢或者變更表中的記錄。

SELECT:查詢表中的資料

INSERT:向表中插入新資料

UPDATE:變更表中的資料

DELETE:刪除表中的資料

(3)DCL(data control language,資料控制語言)用來確認或取消對資料庫中的資料進行的變更。此外,還可以對RDBMS的使用者是否有許可權操作資料庫中的物件(資料庫表等 )進行設定。

COMMIT:確認對資料庫中的資料進行的變更

ROLLBACK:取消對資料庫中的資料進行的變更

CRANT:賦予使用者操作許可權

REVOKE:取消使用者的操作許可權

SQL的基本書寫規則:

(1)SQL語句要以分號(;)結尾

(2)SQL語句不區分大小寫

(3)常數的書寫方式是固定的

字串和日期常數需要使用(‘)括起來。例如,’abc‘, ’2010-01-26‘。

資料常數無需加註單引號(直接書寫數字即可)。例如:1。

(4)SQL語句的單詞間需使用半形空格或換行符來進行分隔。

3、表的建立

(1)建立資料庫

CREATE DATABASE 資料庫名稱;

例:CREATE DATABASE shop;

(2)建立表

SQL(一、資料庫和SQL)

資料庫名稱、表名和列名可以使用以下三種字元。

1)半形英文字母;2)半形數字;3)下劃線(_)

名稱必須以半形英文開頭。

資料型別的指定:

資料型別表示資料的種類,包括數字型、字元型和日期型。

四種基本的資料型別:

INTEGER型:用來指定儲存整數的列的資料型別(數字型),不能儲存小數。

CHAR型:CHAR(M),M為指定該列可以儲存的字串的最大長度。字串以

定長字串

的形式儲存在被指定的CHAR型的列中,當該列中儲存的字串長度達不到最大長度的時候,使用半形空格進行補足。

VARCHAR型:VARCHAR(M),M為指定該列可以儲存的字串的最大長度,字串以

可變長字串

的形式來儲存字串的。

DATA型:用來指定儲存日期(年月日)的列的資料型別(日期型)。

約束的設定

約束是指除了資料型別之外,對列中儲存的資料進行限制或者追加條件的功能。表中設定了兩種約束。

(1)NOT NULL:該列設定不能輸入空白,設定在該列資料型別的右側。

(2)PRIMARY KEY(column):該列設定主鍵,設定在該列CREAT TABLE語句的後面。

鍵:在指定資料時使用的列的組合。

主鍵:可以特定一行資料的列。

CREATE TABLE Product

(product_id CHAR(4) NOT NULL,

product_name VARCHAR(100) NOT NULL,

product_type VARCHAR(32) NOT NULL,

sale_price INTEGER,

purchase_price INTEGER,

regist_date DATE,

PRIMARY KEY(product_id));

其中,上面每行均為對列的定義。

4、表的刪除和更新

刪除表:

DROP TABLE 表名;

表定義的更新:

新增列:ALTER TABLE 表名 ADD COLUMN 列的定義;

ALTER TABLE Product ADD COLUMN product_name_ pinyin VARCHAR(100);

刪除列:ALTER TABLE 表名 DROP COLUMN 列名;

ALTER TABLE Product ADD COLUMN product_name_ pinyin;

向表中插入資料(Product)

注:MySQL使用START TRANSACTION;

SQL(一、資料庫和SQL)

更改表名:RENAME TABLE Poduct to Product;