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()");
?>