Mysql介紹
數據庫是什麼?
1.數據庫分類:層級數據庫、網狀數據庫、關係數據庫
2.主流數據庫:SQLSever、Mysql、Oracle等
Mysql是一種關係數據庫管理系統
1.SQL:這是關係數據庫的“語言標準”,STRUCT QUERY LANGUAGE(結構化查詢語言)
2.關係數據庫特點:表跟表之間的數據可以建立一定的對應關係
3.數據存儲的本質:將大量的數據值通過數據管理系統進行某種複雜但是邏輯結構上清晰有序的存儲
Mysql數據庫各層次之間的關係:
數據庫系統-----數據庫------表-------數據行(記錄)------字段(數據項)(1------n的關係)
4.數據存儲的表現
通過代碼,可以對各種數據進行各種操作,但其實,在文件表現,其實只是幾個文件名,具體在數據庫的存儲目錄中:
(1)每個數據庫對應一個文件夾
(2)每個數據表對應一個或幾個文件
5.常用基本術語
數據data
數據庫database
數據庫管理dbms:一個具體的數據庫軟件產品database management system
數據表table
字段field 列column
行row 記錄record
Mysql數據操作的基本模式(流程):
建立連接(認證身份)
客戶端向服務器端發送sql命令
服務器端執行命令,並返回執行的結果
客戶端接受結果(並顯示)
斷開連接
Mysql系統級操作及基本語法規定
啓動/停止mysql數據庫服務
(1)命令行模式(需管理員身份):
啓動:net start mysql 停止:net stopmysql
(2)服務模式:控制面板》管理工具》服務》mysql》啓動/停止
登錄/推出mysql數據庫系統
登錄:mysql –h服務器地址 –u登錄名 【–P端口號】 –p
或:mysql——host=服務器地址——user=登錄名——port=端口號——password
退出:quit或exit
注意:登錄數據庫系統後,需要使用“set names 編碼名;”來設定當前連接數據庫的“環境編碼名”,即當前數據庫打交道的“客戶端”本身的編碼。Cmd客戶端是固定的gbk編碼,php網頁中,爲網頁文件的編碼(主流爲utf8)
備份/恢復數據
備份:就是講一個數據庫,完整地“轉換成”一個可以隨時“攜帶和傳送”的文件。
語法:mysqldump –h服務器地址–u登錄名–p 數據庫名>文件名
恢復:就是將一個備份的數據庫,完整地還原爲一個可以使用的數據庫
語法:mysql–h服務器地址–u登錄名–p 數據庫名<文件名
注意:
1.這兩個命令,都是在“沒有登錄進入”的時候使用
2.其中mysqldump命令還要求爲管理員身份
3.恢復指恢復原來數據庫中的所有表數據信息及其他信息,而數據庫名可以是原來的名字或新的名字。
基礎語法規定
註釋:3種形式
單行註釋:#註釋內容 --註釋內容(--後面有一個空格)
多行註釋: /* 註釋內容*/
語句行
大小寫:mysql語言本身不區分大小寫,但,mysql的某些命令執行會生成文件(夾),此時他們就可能區分大小。在文件名稱區分大小寫的系統(unix,linux)中,會區分大小寫;在不區分大小寫的系統(window)中,不區分
命名(標識符)規則:建議使用小寫,並採用下劃線分割法
php操作mysql數據庫基本函數
$link=mysql_connect("數據庫服務器地址","用戶名","密碼"); // 連接數據庫
mysql_query("set names 網頁文件編碼");//設定連接編碼,相當於mysql_set_charset("網頁文件編碼");
mysql_query("use 數據庫名");//選定要使用的數據庫名,相當於mysql_select_db("數據庫名");
數據庫操作語句:
$result=mysql_query("select/delect/update/insert/desc/showtables/drop...");
mysql_error():獲取mysql執行失敗時的錯誤信息
示例:
If($result==false){echo “語句執行失敗,請參考提示:”mysql_error();}
else{……}
mysql_query()函數,可以執行“幾乎任何sql語句”。在應用中,分兩種情況:
(1)無數據返回,如insert、update、delete、create、drop.執行結果爲true或false
(2)有數據返回,如select、show tables、show database、desc 表名(顯示錶結構);
執行結果:false或結果集(即數據集,一個有字段的表結構)
fetch函數的3種形式:
$result=mysql_query("select id,age,name");
mysql_fetch_assoc($result) //字段名作爲下標
結果:array(”id“=>1, ”age”=>18, ”name”=>”user1”);
mysql_fetch_row($result) //數字作爲下標
結果:array(0 =>1, 1=>18, 2=>”user1”);
mysql_fetch_array($result) //字段名、數字作爲下標(兩種)
結果:array(”id“=>1, ”age”=>18, ”name”=>”user1”, 0 =>1, 1=>18, 2=>”user1”);
示例:
$result=mysql_query("select...");
While($rec=mysql_fetch_array($result)){
// mysql_fetch_array()取出該結果中的一行數據,並賦值給$rec; $rec是一個數組,下標是字段名;此while循環會一次次取出結果中的所有數據
}
擴展函數:
$n1=mysql_num_rows(結果集); //獲得結果集中的數據行
$n2=mysql_num_fields(結果集); //獲得結果集中的數據列數
$name=mysql_field_name(結果集,$i); //獲得結果集中的第i個字段的名字!i從0開始算起