Mysql增删改查基本操作和PHP嵌入SQL查询语句常用方法

发布于 2016-03-12  2.69k 次阅读


Mysql因为开源和轻量被广泛使用,PHP因为开源和易用也被广泛使用。PHP+Mysql无疑是大部分web项目的最佳选择。

Mysql基本语句

这些语句是可以直接在mysql控制台运行的,也可以嵌入PHP。

建立数据表-CREATE

CREATE TABLE IF NOT EXISTS `think_data`(
`id` int(8)unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`data` varchar(255) NOT NULL COMMENT '数据',
 PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;

一般使用CREATE TABLE IF NOT EXISTS语句来创建表。

id即属性名,int(8)是最多8位整数,unsigned表示无符号(都是正数),NOT NULL表示非空,AUTO_INCREMENT代表自增,也就是说系统会自动给新来的每一条记录的id属性赋值,我们不需要给记录添加这个属性COMMENT是注释,为了让别人和以后的自己一眼就能明白这个属性是干嘛的。注释每一个属性是一个好习惯。

data也是属性名,varchar(255)也就是最多255个字符,其余类似。

PRIMARY KEY代表主键,主键也就是一条数据的“唯一标示符”,可用来特定选出某条数据。一般来说,主键都是自增、非空的整数

一个属性其实就是一列,也可以理解为表头

插入记录-INSERT

INSERT INTO `think_data`(`id`,`data`) VALUES
(1,'thinkphp'),
(2,'php'),
(3,'framework');

`think_data`(`id`,`data`)代表要插入到think_data表中,并且指定了这些数据记录有且仅有iddata属性

VALUES后面跟的就是具体的3条记录了,数字不用加引号,别的类型都需要引号,双引号和单引号都行。

删除记录-DELETE

DELETE FROM `think` WHERE `id` = 1 and `data` = 'thinkphp';

上面那条语句就可以删除某条记录或者多条匹配的记录。因此写删除语句的时候一定要谨慎!建议使用id来确保不会“伤及无辜”。

如果有多个条件,中间用and连接。

查询记录-SELECT

SELECT `id`,`data` FROM `think` WHERE `id` = 1 or `data` = 'php';

这句语句的意思很简单,就是让Mysql从数据库的think表中选出id这个属性,要求id1,或者dataphpWHERE的多个条件用andor来连接。

可以使用通配符*,比如

SELECT * FROM `think` WHERE `id` = 1 and `data` = 'thinkphp';

这句话就是从think表中选择某些记录的所有列,条件是id1datathinkphp

模糊查询-LIKE

下面的语句就是从think表中选出某些记录的所有列,条件是data长得像thinkphp

SELECT * FROM `think` WHERE  `data` LIKE 'thinkphp';

模糊查询多用在搜索中,可以显著提高用户体验。至于模糊度控制,请自行查阅Mysql官方文档。

修改记录-UPDATE

UPDATE `think` SET `id`=`id`*3,`id`=`id`+1 WHERE `data` = 'thinkphp';

这句话就是把think表中的data=thinkphp的那条记录的id先3倍,然后加一。

哇哦,你看到了一个运算

所有的SQL语句中都支持运算式。比如

SELECT 1+1;

会返回2

让结果排序-ORDER BY

SELECT `id`,`data` FROM `think` ORDER BY `id`;

这样返回的结果默认是id升序排列(1在9之前,a在z之前)

SELECT `id`,`data` FROM `think` ORDER BY `id` DESC;

这样就会倒序排列。

PHP中如何嵌入?

推荐使用面向对象的方法,首先定义一个Mysql类

class mysql{
    private $host = 'localhost';
    private $user = 'root';
    private $password = '';
    private $database = 'think';
    private $charset = 'utf8';
    private $conn;
    private $sql;
    private $result;
    public function __construct(){
        $this->conn = new mysqli
}
}