1. 程式人生 > 其它 >學習筆記12(選做)

學習筆記12(選做)

自學教材第14章,提交學習筆記(10分) 知識點歸納以及自己最有收穫的內容 (3分) 問題與解決思路(2分) 實踐內容與截圖,程式碼連結(3分) ...(知識的結構化,知識的完整性等,提交markdown文件,使用openeuler系統等)(2分)

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

MySQL

MySQL (MySQL2018 )是一個關係資料庫系統(Codd 1970 )c在關係資料庫中,資料 儲存在表中。每個表由多個行和列組成。表中的資料相互關聯。表也可能與其他表有關聯。 關係結構使得可在表上執行查詢來檢索資訊並修改資料庫中的資料。關係資料庫系統的標準 查詢語言是SQL (結構化查詢語言),包括MySQLo

MySQL是一個開源資料庫管理系統,由伺服器和客戶機組成。在將客戶機連線到服 務器後,使用者可向伺服器輸入SQL命令,以便建立資料庫,刪除資料庫,儲存、組織和檢 索資料庫中的資料。MySQL有廣泛的應用。除了提供標準的資料庫系統服務外,MySQL PHP (PHP 2018)已成為大多數資料管理和線上商務網站的主幹網。本章介紹了 MySQLo我們將介紹MySQL的基礎知識,包括如何在Linux中安裝/配置MySQL, 何使用MySQL建立和管理簡單資料庫,以及如何在C語言和PHP程式設計環境中與MySQL 互動。

安裝 MySQL

對於Ubuntu 16.04及以後版本,通過以下操作安裝MySQL

sudo apt-get install mysql-server

mysql-server包包括一個MySQL伺服器和一個客戶機。在安裝MySQL時,它會詢問根用 戶密碼。使用者可以使用與Ubuntu相同的登入密碼。安裝MySQL後,可通過執行指令碼對其 進行配置以獲得更好的安全性:

mysqlsecureinstallation

要得到簡單和標準的安全設定,讀者可以按Y,然後按ENTER,以接受所有問題的預設值。

Slackware Linux預裝了 MySQL,但仍然需要配置。否則,Slackware會在MySQL 據庫啟動時顯示一條錯誤訊息。在Slackware 14.0或更早版本中,可通過以下步驟配置

MySQLo

(I)設定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)安裝所需資料庫:MySQ L需要一個所需資料庫集,用於使用者識別等。要安裝它們, 可使用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守護程序mysqldo

Slackware 14.2 使用 MariaDB 代替 MySQL除了未繫結到 Oracle 之外,MariaDB My- SQL資料庫基本相同。事實上,它仍然使用mysqld作為它的守護程序名。在Slackware 14.2中,MySQL已經有一個預設.cnf檔案,所以不再需要第1步。按照上面列出的第2 步到第4步配置MySQL配置完成後,通過以下操作手動啟動MySQL守護程序mysqld:

/etc/rc.d/rc.mysqld -start

使用 MySQL

假設MySQL伺服器已經設定好並在UbuntuSlackware Linux機器上執行。MySQL 伺服器可以設定為支援不同的使用者。為簡單起見,我們將只假定根使用者。為了使用MySQL, 使用者必須執行一個MySQL客戶機來連線到服務器。MySQL支援來自遠端IP主機的客戶機 連線。為了簡單起見.我們將在同一臺機器(即預設本地主機)上執行伺服器和客戶機。下 面幾節介紹如何使用MySQL管理資料庫。

連線到MySQL伺服器

使用MySQL的第一步是執行MySQL客戶機程式。從X-window終端輸入MySQL 戶機命令mysql,它連線到同一臺計算機上預設本地主機上的MySQL務器。

mysq:! -u root -p # specify the root user with password

Enter password: # enter the MySQL root user password

mysql > # mysql prompt
;連線到MySQL伺服器後,即可訪冋MySQL shell,mysql>提示符所示 MySQL shell類似於普通的shello它會顯示一個mysql>提示符,要求使用者輸入可供MySQL伺服器 執行的SQL命令。與普通sh類似,它還維護一個命令歷史記錄,允許使用者通過箭關鍵冋憶 和修改先前的命令。然而,它只接受MySQL命令或MySQL指令碼,而不接受普通sh命令。 在輸入MySQL命令時,讀者要注意以下幾點。

・所有的MySQL命令列末尾必須是分號。對於長命令,可在單獨行中輸入命令短語 (按下ENTER鍵)。MySQL將會通過-> 符號繼續提示更多的輸入,直到它看到一個 結束分號。

• MySQL命令列不區分大小寫。雖然不是強制要求,但為了清楚和更容易識別,通常 使用大寫編寫MySQL命令,使用小寫編寫資料庫、表、使用者名稱或文字。

顯示資料庫

SHOW DATABASES

命令可顯示MySQL中的當前資料庫。

新建資料庫

如果資料庫dbname還不存在,那麼CREATE DATABASE dbname命令將建立一個名為 dbname的新資料庫。如果資料庫已經存在,則可以使用可選的IF NOT EXISTS子句對該命 令進行限定,以避免出現錯誤訊息。

mysql> CREATE DATABASE testdb

Query OK; 1 row affected (0.02 sec) # mysql response

建立新資料庫後輸入SHOW DATABASES以査看結果。

mysql> SHOW DATABASES;

+ +

I Database

+ +

I information_schema |

I mysql |

I per formance_schema |

I test I

I testdb I

+ +

5 rows in set (0.00 sec)

14.3.4刪除資料庫

DROP DATABASE dbname

會刪除已存在的命名資料庫。該命令可以用一個可選的IF EXISTS子句限定。注意,DROP操作是不可逆的。一旦資料庫被刪除,就無法撤銷或恢復。 因此,須謹慎使用。

mysql> DROP DATABASE testdb;

Query OK; one row affected (0.04 sec)

mysql> SHOW DATABASES;

+ +

I Database

I info rma t i on_s chema |

I mysql I

I performance_schema |

I test I

+ +

4 rows in set (0.01 sec)

選擇資料庫

假設MySQL已經有幾個資料庫。為了操作特定的資料庫,使用者必須通過USE dbname 命令選擇一個數據庫。


修改表

ALTER TABLE

命令用於新增、刪除或修改當前表中的列。它還用於新增和刪除當前表 中的各種約束條件。

修改表名

如需修改表名,可使用以下命令:

ALTER TABLE table_name RENAME TO new_name;
新增列

要在表中新增列,可使用以下命令:

ALTER TABLE table_name ADD column_name datatype;

刪除行

可使用以下命令刪除列:

ALTER TABLE table_name DROP column_name datatype;

更改/修改行

可使用以下命令修改表中某列的資料型別:

ALTER TABLE table_name ALTER COLUMN column_name datatype;
C語言MySQL程式設計

MySQL可以與多種程式語言配合使用,如C語言、JavaPython等。本節介紹如何
進行C語言MySQL程式設計。C語言程式與MySQL之間的介面由mysqlclient庫中的一系列 MySQL C API 函式(C API 2018a, b)支援。

使用C語言構建MySQL客戶機程式

思考以下C程式,它可以列印libmysqlclient庫版本。

// client.c file

#include <stdio.h>

#include <my_global.h>

#include <mysql.h>

int maln(int argc, char *argc[])

printf("MySQL client version is : %s\n", mysql_get_client_info());

若要編譯程式,可輸入

gcc client.c -I/usr/include/mysql/ -Imysqlclient

注意,-I選項將包含檔案路徑指定為/usr/include/mysql, -1選項指定mysqlclient庫。 然後,執行a.out它會列印

MySQL client version is : version_nurober, e.g. 5.5.53

使用C語言連線到MySQL伺服器