1. 程式人生 > 其它 >資訊安全系統實現與設計第十四周——《Unix/Linux系統程式設計》第十四章自學

資訊安全系統實現與設計第十四周——《Unix/Linux系統程式設計》第十四章自學

第十四章 MySQL資料庫系統

這一章討論了MySQL關係資料庫系統;介紹了 MySQL並指出了它的重要性;展示瞭如何在Linux機器上安裝和執行MySQL;演示瞭如何使用MySQL在命令模式和批處理模式 下使用SQL指令碼建立和管理資料庫,如何將MySQL與PHP整合,通過動態Web頁面建立和管理資料庫。

14.1 MySQL簡介

MySQL是一個關係資料庫系統在關係資料庫中,資料儲存在表中。每個表由多個行和列組成。表中的資料相互關聯。表也可能與其他表有關聯。關係結構使得可在表上執行查詢來檢索資訊並修改資料庫中的資料。

MySQL是一個開源資料庫管理系統,由伺服器和客戶機組成。在將客戶機連線到伺服器後,使用者可向伺服器輸入SQL命令,以便建立資料庫,刪除資料庫,儲存、組織和檢索資料庫中的資料。MySQL有廣泛的應用。除了提供標準的資料庫系統服務外,MySQL 和PHP已成為大多數資料管理和線上商務網站的主幹網。

14.2 安裝與使用MySQL

(1)Ubuntu Linux

可通過以下命令安裝

sudo apt-get install mysql-server
mysql_secure_installation

(2)Slackware Linux

在Slackware 14.0或更早版本中,可通過以下步驟配置MySQL:

1.設定my.cnf : MySQL在啟動時載入一個名為my.cnf的配置檔案。該檔案要在首次設定MySQL時建立。在/etc目錄中,有幾個示例my.cnf檔案,檔名分別是my-small. cnf. my-large.cnf等。選擇所需的版本來建立my.cnf檔案,如cp /etc/my-small.cnf /etc/my.cnf


2.安裝所需資料庫:MySQL需要一個所需資料庫集,用於使用者識別等。要安裝它們, 可使用mysql使用者作為超級使用者,並使用以下命令安裝所需的初始資料庫。
mysql_install_db
3.設定所需的系統許可權:該步驟確保mysql使用者擁有mysql系統的所有權。
chown -R inysql.mysql /var/lib/mysql
4.通過以下操作使Zetc/rc.d/rc.mysqld可執行:
chmod 7S5 /etc/rc.d/rc.mysqld

這將在後續系統引導上自動啟動MySQL守護程序mysqld。

(3)資料庫操作

連線MYSQL伺服器:

mysql -u root -p

Enter password:

mysql>

顯示資料庫:SHOW DATABASES命令可顯示MySQL中的當前資料庫
新建資料庫:CREATE DATABASE dbname 建立一個名為dbname的資料庫,如果資料庫已經存在,則可以使用IF NOT EXISTS子句對命令限定。
刪除資料庫:DROP DATABASE dbname 刪除已存在的命名資料庫,該命令可以用一個可選的IF EXISTS 子句限定。
選擇資料庫:USE dbname命令選擇一個數據庫
建立表:CREATE TABLE table_name 命令回在當前資料庫中建立一個表;DESCRIBE 命令顯示錶格式和列屬性。
刪除表:DROP TABLE table_name 命令刪除表

(4)Mysql中的資料型別

數值型別:

INT:整數(4位元組),TINYINT:(1位元組)S,MALLINT:(2位元組)等。
FLOAT:浮動指標數。

字串型別:

CHAR(size):固定長度字串,長度為1~255字元。
VARCHAR(size):可變長度字串,但不能使用任何空格。
TEXT:可變長度的字串。

日期和時間型別:

DATE:日期格式為YYYYMM-DD。
TIME:以HHMMSS格式儲存時間.

(5)Mysql中的資料操作

插入行:

要在表中新增行,可使用INSERT命名,具有語法形式:
INSERT INTO table_name VLAUES(columnValuel,columnValue2,....);
刪除行:

使用DELETE命令從表中刪除行
DELETE FROM table_name;
DELETE FROM table_name WHERE condition;
更新表:

UPDATE命令用於修改表中的現有記錄(列)
UPDATE table_name SET coll = value1, col2 = value2,…… WHERE condition;
修改表:

ALTER TABLE命令用於新增、刪除或修改當前表中的列。它還用於新增和刪除當前表中的各種約束條件。
1.修改表名
如需修改表名,可使用以下命令:
ALTER TABLE table name renAme To new_name; 2.新增列 要在表中新增列,可使用以下命令: ALTER TABLE table name ADD column name datatype;3.刪除行 可使用以下命令刪除列:ALTER TABLE table name DROP column name datatype;4.更改/修改行 可使用以下命令修改表中某列的資料型別:ALTER TABLE table name ALTER COLUNN column_name datatype;`
關聯表

一個真正的資料庫可以能包含多個相互關聯的表,使用主鍵-外來鍵約束條件來定義表關係。
1.一對一
2.一對多
3.多對多
4.自引用
連線操作

在MySQL中,可使用連線操作在多個表中檢索資料。連線操作有4種不同的型別。

(INNER)JOIN tablel,table2:檢索兩個表中共有的項。
LEFT JOIN tablel,table2:檢索表1中的項以及兩個表中共有的項。
RIGHT JOIN tablel,table2:檢索表2中的項以及兩個表中共有的項。
OUTER JOIN tabell, table2:檢索兩個表中非共有以及沒有用的項。
對於正則集運算,MySQL中的連線操作可以解釋如下。+表示兩個集合的並集,^表示兩個集合的交集。則有

(INNER) JOIN t1, t2 = t1 ^ t2
LEFT JOIN t1, t2 m t1 + (t1 ^ t2)
RIGHT JOIN t1, t2 = t2 +(t1 ^ t2)

OUTER JOIN t1, t2 = t1 + t2;

(5)資料庫關係圖

在MySQL和所有關係資料庫系統中,用資料庫關係圖來描述表之間的關係非常有用。這類關係圖通常稱為ERD(實體關係圖)或EERD(增強/擴充套件 ERD)。它們可以直觀地表示資料庫中的各個元件及其關係。對於本章中使用的簡單cs360資料庫,可以用如下所示的資料庫關係圖表示。

在資料庫關係圖中,箭頭線通過將一個表中的外來鍵與另一個表中引用的主鍵連線來描述表之間的關係。兩端都有一個箭頭標記的線表示1-1關係,一端有多個箭頭標記的線表示1-M關係。

14.3 實踐

Ubuntu安裝MYSQL


新建資料庫