我使用的環境是Win7,開始學習PHP和MySQL,並且買了本《Head First PHP & MySQL》,可以從Head First Labs官網獲得HeadFirst系列書籍的相關資訊和原始碼。
1、下載XAMPP開發包
從XAMPP中文官網下載目前比較流行的PHP開發包,XAMPP是完全免費且易於安裝的Apache發行版,其中包含MySQL、PHP和Perl。XAMPP適用於Windows、Mac OS X和Linux,XAMPP開放源碼包的設定讓安裝和使用出奇容易。我下載的版本是:xampp-win32-1.8.3-4-VC11-installer.exe
2、開始學習MySQL
有一定的SQL基礎後,比如我在以前學校的學習的是Microsoft SQLSever,大部分的SQL基礎語句都學過實踐過,所以學習MySQL就很順暢了,畢竟除了特別的不同之處意外基本的概念是一致的。不過相比較其他關係型資料庫如Oracle、SQLServer,MySQL算是比較輕量級的資料庫引擎了。
學習MySQL最好的方式就是從官網下載MySQL 5.7 Reference Manual,就是英文的最新版MySQL 5.7參考手冊,目前我還沒找到中文版。另外遇到不會的MySQL問題Google也是不錯的學習方式。
學習MySQL的2種方式:
(1)MySQL命令列終端
安裝好XAMPP安裝包後(當然也可以單獨下載安裝MySQL安裝包),有一個XAMPP Control Panel面板,開啟後單擊Apace、MySQL的Start按鈕啟動Apache、MySQL,然後單擊最右側的shell按鈕,如所示:
在彈出的MySQL shell視窗輸入如下的MySQL命令串連到root賬戶
mysql -uroot -p
如:
然後就可以正常使用MySQL資料庫了。
下面是我使用的MySQL資料庫的過程:
Setting environment for using XAMPP for Windows.Administrator@CCF-PC d:\programs\xampp# mysql -uroot -pEnter password: ********Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 17Server version: 5.6.16 MySQL Community Server (GPL)Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> SHOW DATABASES;+--------------------+| Database |+--------------------+| information_schema || 中國 || aliendb || cdcol || elvis_store || finanace_project2 || malan_lecture || mysql || performance_schema || php_test || phpmyadmin || testdemo || webauth |+--------------------+13 rows in set (0.02 sec)mysql> USE elvis_storeDatabase changedmysql> SHOW TABLES;+-----------------------+| Tables_in_elvis_store |+-----------------------+| email_list |+-----------------------+1 row in set (0.00 sec)mysql> DESCRIBE email_list;+------------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+------------+-------------+------+-----+---------+-------+| first_name | varchar(20) | NO | PRI | | || last_name | varchar(20) | NO | PRI | | || email | varchar(60) | NO | | NULL | |+------------+-------------+------+-----+---------+-------+3 rows in set (0.02 sec)mysql> ALTER TABLE email_list DROP PRIMARY KEY;Query OK, 13 rows affected (3.51 sec)Records: 13 Duplicates: 0 Warnings: 0mysql> DESCRIBE email_list;+------------+-------------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+------------+-------------+------+-----+---------+-------+| first_name | varchar(20) | NO | | | || last_name | varchar(20) | NO | | | || email | varchar(60) | NO | | NULL | |+------------+-------------+------+-----+---------+-------+3 rows in set (0.03 sec)mysql> ALTER TABLE email_list ADD id INT NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY(id);Query OK, 0 rows affected (1.64 sec)Records: 0 Duplicates: 0 Warnings: 0mysql> DESCRIBE email_list;+------------+-------------+------+-----+---------+----------------+| Field | Type | Null | Key | Default | Extra |+------------+-------------+------+-----+---------+----------------+| id | int(11) | NO | PRI | NULL | auto_increment || first_name | varchar(20) | NO | | | || last_name | varchar(20) | NO | | | || email | varchar(60) | NO | | NULL | |+------------+-------------+------+-----+---------+----------------+4 rows in set (0.01 sec)mysql>
(2)使用phpMyAdmin等命令列介面
phpMyAdmin是一個使用PHP編寫的、基於Web的MySQL管理工具,可以通過互連網控制和操作MySQL。
安裝好XAMPP並且在XAMPP Control Panel面板啟動Apache伺服器和MySQL之後,登入瀏覽器鍵入http://localhost,修改安全設定如MySQL密碼後,開啟Tools下的phpMyAdmin連結,輸入帳號和密碼進入phpMyAdmin管理介面如所示:
然後進行資料庫和表的操作時,此時有兩種方式,一種是通過SQL欄採用類似命令列的方式編寫SQL指令碼,另外一種是採用很簡單的手動操作建立資料庫和表,修改資料庫表等方式。
3、MySQL命令小結
對學習到的MySQL命令做下總結吧
(1)MySQL命令串連到伺服器
mysql -uroot -p
(2)建立、刪除、顯示資料庫
CREATE DATABASE elvis_store;
DROP DATABASE elvis_store;
SHOW DATABASES;
(3)選擇某個資料庫
比如我現在資料庫裡面有一個名為elvis_store的資料庫,現在在操作裡面的表時需要選擇它,可以採用如下命令:
USE elvis_store;
(4)使用CREATE TABLE_NAME命令建立一個名為email_list的表,SQL指令碼如下:
CREATE TABLE IF NOT EXISTS `email_list` ( `first_name` varchar(20) NOT NULL DEFAULT '', `last_name` varchar(20) NOT NULL DEFAULT '', `email` varchar(60) NOT NULL, PRIMARY KEY (`first_name`, `last_name`)) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=14 ;
注意:上面的符號是鍵盤上的~對應的重音符號`,而不是單引號'
(5)顯示資料庫elvis_store中的所有表
使用SHOW TABLES;命令
從可以看出elvis_store資料庫中有了一個名為email_lsit的表。
(6)顯示表email_list結構
使用DESCRIBE TABLE_NAME命令,如:
(7)刪除、建立主鍵
假如我現在有遮掩一個需求,需要刪除email_list表中的聯合主鍵(first_name,last_name),需要添加一個id欄位並且將其設定為主鍵,可以按照下面的SQL指令碼操作:
ALTER TABLE email_list DROP PRIMARY KEY;ALTER TABLE email_list ADD id INT NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY(id);
整個操作過程如所示:
在修改email_list表結構的過程中,可以使用DESCRIBE命令隨時查看email_list表的結構,看是不是按照自己的意圖修改了,以便進行下一步操作。