对mysql数据库操作包括有,数据查询,保存数据,更新数据,删除数据,这些都是数据库最基本也是最常用的语句了,下面我给大家一一介绍一下,希望给我带来好运.
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数据库实例:
-
- <?php
- $conn = @ mysql_connect("localhost", "root", "root");
- if ($conn)
- echo "成功";
- ?>
-
- <?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>";
- }
- 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 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 {
- private $mysql_url;
- private $mysql_id;
- private $mysql_password;
- private $database;
- 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'");
- }
-
- function run_sql($sql) {
- return mysql_query($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()");
-
- ?>
|