SELECT 查詢語句和條件陳述式
INSERT 插入語句
UPDATE 更新語句(修改語句)
DELETE 刪除語句
書寫標準:所有SQL動作陳述式使用大寫字母書寫,其他均為小寫。
練習資料庫:newdb
練習表(表名test)
欄位:
id uid regdate remark
1 張三 NOW() 學生
2 李四 學生
3 王五 工人
4 趙六 學生
1.查詢語句和條件陳述式
注意:SQL語句中的“`” != “'”。
格式:SELECT `查詢欄位` FROM `表名` WHERE `條件`
查詢欄位:可以使用萬用字元“*”、欄位名、欄位別名。
表名:資料庫.表名、表名。
常用條件:= 等於、<> 不等於、IN 包含、NOT IN 不包含、LIKE 匹配、BETWEEN 在範圍、NOT BETWEEN 不在範圍、< 、>
條件運算:AND、OR、( )
執行個體(代表性)
普通查詢:SELECT * FROM `test` WHERE 1 (查詢全部,WHERE也可以省略)
條件查詢:SELECT * FROM `test` WHERE `id` =2 (id=2為條件,可以將條件換為其他條件使用)
SELECT * FROM `test` WHERE `id` IN (1,2,4) (使用條件陳述式IN,輸出包含id為1,2,3的資料,NOT IN反之)
SELECT * FROM `test` WHERE `uid` LIKE "%王%" (應為uid欄位是使用varchar型,所以條件要用“"%王%",匹配查詢這可做模糊查詢”)
SELECT * FROM `test` WHERE `id` BETWEEN 1 and 3 (相當於輸出id=1-3的資料,一個範圍,NOT BETWEEN反之)
SELECT * FROM `test` WHERE `id` =2 and `remark` = "學生" (兩個條件必須滿足才能輸出)
2.排序、分組、指標查詢、計算
分組語句:GROUP BY 欄位
排序語句:ORDER BY 欄位,欄位ASC/DESC
指標查詢:LIMIT 初始值,結束值
執行個體(代表性)
分組查詢:SELECT * FROM `test` GROUP BY `remark` (將remark中的所有不重複的資訊分組輸出)
排序查詢:SELECT * FROM `test` ORDER BY `regdate` ASC [,id] (按最早註冊時間輸出,DESC反之最新註冊,在時間相同時,id來排序)
指標查詢:SELECT * FROM `test` LIMIT 0,3 (自訂取多少條資訊,下標為0,此函數重要,對分頁有用)
注意:三個函數排列順序為以上排列。(優先順序)
計算:
COUNT(*) 統計函數 SELECT COUNT(*) FROM `test` WHERE 1
MAX(*) 最大值函數 SELECT MAX(`id`) FROM `test` WHERE 1
MIN(*) 最小值函數 SELECT MIN(`regdate`) FROM `test` WHERE 1
AVG(*) 平均值函數
SUM(*) 累計值函數
3.INSERT插入語句
格式:INSERT INTO `表名` (欄位...,...) values (值...,...)
執行個體:INSERT INTO `test` (`id`, `uid`, `regdate`, `remark`) VALUES (NULL, '小方', NOW(), '學生') (id欄位自增,插入資料應寫為NULL)
4.UPDATE更新語句(修改語句)
格式:UPDATE `表名` SET `欄位` = 值 WHERE 條件 LIMIT
執行個體:UPDATE `test` SET `uid` = "小方" WHERE `id` =4
5.DELETE刪除語句(慎用)
格式:DELETE FROM `表名` WHERE 條件
執行個體:DELETE FROM `test` WHERE `id` =3
--------------------------------------------------------
PHP+MySQL的基本應用
1.PHP與MySQL建立串連
PHP串連MySQL函數
mysql_connect:開啟MySQL串連
mysql_select_db:開啟一個資料庫
@和or die 隱藏錯誤 和 條件顯示
格式:mysql_connect("主機","使用者名稱","密碼");
mysql_select_db("開啟資料庫",串連標識符);
如果不特別聲明串連標識符,則預設為上一次開啟的串連。
PHP串連MySQL資料庫執行個體:
A.
| 代碼如下 |
複製代碼 |
<?php $conn = @ mysql_connect("localhost", "root", "root"); if ($conn) echo "成功"; ?> B. <?php $conn = @ mysql_connect("localhost", "root", "root") or die("串連錯誤"); ?>
|
PHP開啟MySQL資料庫執行個體
| 代碼如下 |
複製代碼 |
<?php $conn = @ mysql_connect("localhost", "root", "root") or die("串連錯誤"); mysql_select_db("newdb", $conn); ?>
|
2.如何去執行一個SQL語句
格式:mysql_query(SQL語句,串連標識符);
$sql = "SELECT * FROM `test`";
$result = @ mysql_query($sql,$conn) or die (mysql_error());
執行個體(測試後插入成功,但是不能插入中文,應該是編碼問題):
| 代碼如下 |
複製代碼 |
<?php $conn = @ mysql_connect("localhost", "root", "root") or die("串連錯誤"); mysql_select_db("newdb", $conn);
$sql = "INSERT INTO test (id,name,regdate) values (NULL,'haha',now())"; mysql_query($sql, $conn); ?> |
3.兩種查詢(讀取)函數array / row的區別
格式:mysql_fetch_row(result);
執行個體:
| 代碼如下 |
複製代碼 |
<?php $conn = @ mysql_connect("localhost", "root", "root") or die("串連錯誤"); mysql_select_db("newdb", $conn);
$sql = "SELECT * FROM `test`"; $read = mysql_query($sql, $conn); $row = mysql_fetch_row($read); print_r($row); ?> |
格式:mysql_fetch_array(result);
執行個體:
| 代碼如下 |
複製代碼 |
<?php $conn = @ mysql_connect("localhost", "root", "root") or die("串連錯誤"); mysql_select_db("newdb", $conn);
$sql = "SELECT * FROM `test`"; $read = mysql_query($sql, $conn); $row = mysql_fetch_array($read); print_r($row); echo $row['0']; ?> |
迴圈輸出全部資料
| 代碼如下 |
複製代碼 |
<?php $conn = @ mysql_connect("localhost", "root", "root") or die("串連錯誤"); mysql_select_db("newdb", $conn);
$sql = "SELECT * FROM `test`"; $rr = mysql_query($sql, $conn); while ($row = @ mysql_fetch_array($rr)) { echo $row['id'] . "<br>"; //輸出時候請用“''”包含欄位,記住,不管是$_POST[]還是get,session,數組,什麼的,[]裡都要有'' } mysql_close(); ?> |
4.其他常用MySQL函數介紹
mysql_num_rows 用於計算查詢結果中所得行的數目
執行個體:
| 代碼如下 |
複製代碼 |
<?php $conn = @ mysql_connect("localhost", "root", "root") or die("串連錯誤"); mysql_select_db("newdb", $conn);
$sql = "SELECT * FROM `test`"; $rr = mysql_query($sql, $conn); while ($row = @ mysql_fetch_array($rr)) { //echo $row['id']."<br>"; //輸出時候請用“''”包含欄位,記住,不管是$_POST[]還是get,session,數組,什麼的,[]裡都要有'' } echo mysql_num_rows($rr); mysql_close(); ?> |
mysql_insert_id 傳回最後一次使用 INSERT 指令的 ID。
mysql_tablename 取得資料庫名稱
mysql_error 返回錯誤資訊
mysql_close 關閉 MySQL 連結
上面代碼沒有條件,我們可以成一個資料庫操作類
一個PHP+MySQL類
1.鞏固學習常用MySQL函數。
2.使用類封裝常用SQL操作。
3.認識物件導向在開發中的重要作用。
----------------------------------------------
用到的知識:
1.private 私人屬性關鍵字。
2.__construct() 初始化方法。
3.常用MySQL函數。
4.常用SQL知識。
執行個體:
| 代碼如下 |
複製代碼 |
<?php /* 檔案名稱:class_mysql_operating.php * 檔案描述:用於PHP對MySQL資料庫的操作類 * 最後修改時間:18:13 2010-5-15 * 最後修改內容:建立檔案 * 修改人:if0else1 */
class MySQL_Operating { private $mysql_url; //MySQL資料庫 地址 成員屬性。 private $mysql_id; //MySQL資料庫 ID 成員屬性。 private $mysql_password; //MySQL資料庫 密碼 成員屬性。 private $database; //MySQL資料庫 名 成員屬性。 private $ut; //字元編碼。 //初始化資料方法 function __construct($mysql_url, $mysql_id, $mysql_password, $database, $ut) { $this->mysql_url = $mysql_url; $this->mysql_id = $mysql_id; $this->mysql_password = $mysql_password; $this->database = $database; $this->ut=$ut; $this->conn(); } //開啟資料庫連接表方法 function conn() { $database_tab = mysql_connect($this->mysql_url, $this->mysql_id, $this->mysql_password) or die(mysql_error()); mysql_select_db($this->database, $database_tab) or die("資料庫連接錯誤!<br />當前串連資料庫名:<b>" . $this->database . "</b>"); mysql_query("SET NAMES '$this->ut'"); } //執行SQL語句方法 function run_sql($sql) { return mysql_query($sql); } /*以下為功能方法區*/ //SQL插入資料方法 function fn_insert($table, $field, $value) { $this->run_sql("INSERT INTO".$table."(".$field.") VALUES (".$value.")"); } } $mysql_operathing = new MySQL_Operating('localhost', 'root', 'root', 'j001', "GBK"); $mysql_operathing->fn_insert("`gb`","`id`,`user`,`title`,`content`,`update`","NULL,'插','進','去',NOW()"); ?>
|