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表
中,并且指定了这些数据记录有且仅有id
和data
属性
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
这个属性,要求id
是1
,或者data
是php
。WHERE
的多个条件用and
、or
来连接。
可以使用通配符*
,比如
SELECT * FROM `think` WHERE `id` = 1 and `data` = 'thinkphp';
这句话就是从think表
中选择某些记录的所有列,条件是id
是1
,data
是thinkphp
。
模糊查询-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
}
}
Comments | 1 条评论
_5233098914 博主
orz