第十二章 MySQL
簡 介
MySQL是一個真正的多用戶、多線程SQL數據庫服務器。SQL(結構化查詢語言)是世界上最流行的和標准化的數據庫語言。MySQL是以一個客戶機/服務器結構的實現,它由一個服務器守護程序mysqld和很多不同的客戶程序和庫組成。
SQL是一種標准化的語言,它使得存儲、更新和存取信息更容易。例如,你能用SQL語言為一個網站檢索產品信息及存儲顧客信息,同時MySQL也足夠快和靈活以允許你存儲記錄文件和圖像。
MySQL 主要目標是快速、健壯和易用。最初是因為我們需要這樣一個SQL服務器,它能處理與任何可不昂貴硬件平台上提供數據庫的廠家在一個數量級上的大型數據庫,但速度更快,MySQL就開發出來。自1996年以來,我們一直都在使用MySQL,其環境有超過 40 個數據庫,包含 10,000個表,其中500多個表超過7百萬行,這大約有100 個吉字節(GB)的關鍵應用數據。
MySQL建立的基礎是業已用在高要求的生產環境多年的一套實用例程。盡管MySQL仍在開發中,但它已經提供一個豐富和極其有用的功能集。
MySQL的官方發音是"My Ess Que Ell"(不是 MY-SEQUEL )。
第一節 MySQL的安裝
1.1 所需資源
MySQL-3.22.32-1.i386.rpm
MySQL-client-3.22.32-1.i386.rpm
1.2 安裝方法
第一步:rpm -ivh MySQL-3.22.32-1.i386.rpm
第二步:rpm -ivh MySQL-3.22.32-1.i386.rpm
第三步:執行mysql,啟動MySQL monitor就可以使用mysql數據庫了。
第二節 MySQL的使用
2.1 啟動MySQL守護進程
/etc/rc.d/init.d/mysql start
2.2 關閉MySQL守護進程
/etc/rc.d/init.d/mysql stop
2.3 檢查MySQL服務器是否已經運行
2.3.1 檢查MySQL的屬性
/usr/bin/mysqladmin variables
2.3.2 檢查MySQL的版本信息
/usr/bin/mysqladmin version
2.3.3 檢查MySQL的運行狀態
/usr/bin/mysqladmin status
2.3.4 檢查MySQL服務器此時正運行的線程信息
/usr/bin/mysqladmin processlist
2.4 連接和斷開服務器
2.4.1 連接服務器
mysql -h host -u user -p
#要求輸入口令
2.4.2 斷開服務器
quit
#進入MySQL之後可以敲help來獲取幫助信息
2.5 MySQL存取權限的控制
MySQL的存取控制技術功能強大,比Postgres更加具有靈活性。MySQL采用的用戶名和密碼的加密算法與Unix系統不盡相同,其用戶名可以長達16個字符。
先以root登陸MySQl,然後在MySQL的提示符下鍵入grant all privileges on *.* to thj@localhost identified by 'thj' with grant option; 這樣,無論用戶thj從什麼地方登陸到這台服務器都可以使用MySQL。
第三節 MySQL數據庫的簡單操作語句
3.1 對數據庫的操作
MySQL的數據庫實際上對應的是一個目錄,它被系統存儲在/var/lib/mysql 中。
3.1.1 創建數據庫
命令:create database 數據庫名;
3.1.2 刪除數據庫
命令:drop database 數據庫名;
3.1.3 查詢MySQL中都有什麼數據庫
命令:show databases;
3.1.4 更改當前使用的數據庫
命令:use tbl_name
3.2 對數據表的操作
MySQL中的TABLE才是真正的數據庫。
3.2.1 創建數據表
命令:create table tbl_name ( column_specs );
說明:tbl_name 數據表名 column_specs 表中列的說明
3.2.2查詢指定的數據表的結構
命令:describe tbl_name;
3.2.3 查詢數據庫中都有什麼數據表
命令:show tables;
3.3 對數據記錄的操作
3.3.1 增加新記錄
命令:insert into tbl_name (col_name1,col_name2,…) values(values1,values2,….)
說明:insert語句簡單易用,但是它也有一個缺陷,就是每次只能插入一條記錄。
3.3.2 批量裝載數據
命令:load data local infile "filename.txt" into table tbl_name;
說明:MySQl的版本不得低於3.22.15,否則load data local不起作用。該語句實際上是調用了/usr/bin/mysqlimport。
3.3.3 檢索信息
命令:select 要選擇的東西 from 一個或多個表 where 數據必須滿足的條件
注:在MySQL中,每鍵入一條命令之後,在命令行的結尾都要敲入";",標志是一條命令,或者敲回車之後再敲go,提示系統執行上邊的命令;另外,在多數關於MySQL的參考書中,命令都為大寫,實際上小寫也可以;還有,use語句可以不加";",這是所有MySQL語言中唯一一個不需要加";"就可以執行的語句。