PHP开发基础教程之数据库增删改查
插入记录
插入记录有两种个基本语法
插入基本语法一
类别 | 详细解示 |
基本语法 | insert into 表 values(值1,值2,值n); |
示例 | insert into user values(2,'小明','男') |
示例说明 | 向user表中插入值id为2,姓名为小明,性别为男 |
插入基本语法二
类别 | 详细解示 |
基本语法 | insert into 表(字段1,字段2,字段n) values(值1,值2,值n); |
示例 | insert into user(id,username,sex) values(213,'小方',1); |
示例说明 | 向user表中插入id为213,username为小方,性别为1 |
说明
基本语法1和基本语法2的区别是:
基本语法1的插入语句,表中有多少个字段就必须要插入多少个值。一个不能多,一个也不能少。若有默认值,不想传,可以写上null。
基本语法2中,除非有必填字段必须要写入值外。如果有默认值的不想写可以忽略不写。mysql会自动补主默认值。
基本语法2中,以user(id,username,sex)字段顺序为值的顺序。
假设有一张表为user表,我们对字段、字段说明、类型和字段选填和必须状态进行说明,表结构如下:
字段 | id | username | email | password | sex |
中文说明 | 编号 | 用户名 | 邮箱 | 密码 | 性别 |
类型说明 | int | varchar(50) | varchar(60) | varchar(32) | tinyint |
默认值说明 | 自增 | 必填 | 选填字段,默认值为123@php.com | 选填字段 | 必填字段 |
按照基本语法一写上表中的插入语句:
insert into user values(null,'小明','xiaoming@php.com',null ,1);
注意
可以不指定字段名称,但是 values 后面的顺序应该和表字段的排序一致。
有默认值的字段可以不写,则为默认值。
如果有默认值或者可空字段不想传入具体值,可写入null。
数据格式必须要与表规定的数据格式一致。
按照基本语法二写上表中的插入语句:
insert into user(username,sex) values('小明',1);
注意
ID为自增的自段可以不用传入值,每插入一次这个字段的值会自动向上加1。
有默认值和可为空的字段可不传
以表user(username,sex)的插入顺序为准
基本语法二为更常用的用法
基本语法变形:一次插入多条记录
insert into user(username,password,sex) values('黄晓明', 'abcdef', 1), ( 'angelababy', 'bcdeef', 0), ( '陈赫', '123456', 1), ('王宝强', '987654', 1);
查询记录
在讲解查询前,我为大家准备了一个数据表。这个表中存放着银行的余额和用户的基本信息。
我们定义了一个表结构,表名为php。
创建表的语句如下:
CREATE TABLE money ( id INT NOT NULL AUTO_INCREMENT , username VARCHAR(50) NOT NULL , balance FLOAT NOT NULL , province VARCHAR(20) NOT NULL , age TINYINT UNSIGNED NOT NULL , sex TINYINT NOT NULL , PRIMARY KEY (id(10)) ) ENGINE = InnoDB CHARACTER SET utf8;
表结构和数据展示如下:
id | 用户名 | 余额 | 省份 | 年龄 | 性 |
1 | 小明 | 1500 | 安徽 | 30 | 1 |
2 | 小方 | 532 | 山东 | 18 | 1 |
3 | 小红 | 543 | 浙江 | 14 | 0 |
4 | 小白 | 8764 | 北京 | 27 | 1 |
注:
balance 是指余额
province 是指省份
基础查询
类别 | 详细解示 |
基本语法 | select * from 表; |
示例 | select * from php; |
|
示例说明 查询php表中所有字段中的所有结果
注:”*” 是一种正则表达式的写法,表示匹配所有,上面的查询语句和下面的是等价:
指定字段查询
类别 | 详细解示 |
基本语法 | select 字段 from 表; |
示例 | select id,username, balance from php; |
示例说明 | 查询money表中id,username, balance字段中的所有结果 |
条件查询 where
类别 | 详细解示 |
基本语法 | select 字段 from 表 where where条件; |
示例 | select * from php where age = 30; |
示例说明 | 查询php表中年龄为30的所有结果 |
where后可接的条件
比较运算符 结果集中将符合条件的记录列出来。上面的例子中,where 后面的田间是一个字段的 ‘=’。
除此之外,还可以使用>、<、>=、<=、!=等比较运算符;
符号 | 说明 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
!= | 不等于 |
= | 等于 |
逻辑运算符
多个条件还可以使用 or 、 and 等逻辑运算符进行多条件联合查询
符号 | 说明 |
or | 或者 |
and | 并且 |
我们来看一下多个条件的例子:
类型 | 详细内容 |
示例 | select * from php where id <10 and province='安徽'; |
说明 | 查询所有字段 要求id小于10 并且province='安徽' |
结果集排序
类别 | 详细解示 |
基本语法 | select 字段 from 表 order by 字段 排序关键词 |
示例 | select id,username, balance from php order by balance desc; |
示例说明 | 查询php表中的id,username,balance字段,按照余额进行降序排序 |
排序用到的关键词:
关键词 | 说明 |
asc | 升序排列,从小到大(默认) |
desc | 降序排列,从大到小 |
在 select 出来之后的结果集中排序使用 order by ,其中 desc 和 asc 是排序顺序中的关键字。desc 表示按照字段进行降序排列,asc 表示升序排列,如果不写关键字默认升序排列。
更新记录
更新数据我们已经说过。需要修改内容,修改银行卡余额,修改装备信息的时候都需要使用到update,修改语句。
修改(也叫更新)语句的基本语语法如下:
类别 | 详细解示 |
基本语法 | update 表名 set 字段1=值1,字段2=值2,字段n=值n where 条件 |
示例 | update php set balance=balance-500 where id =1; |
示例说明 | 修改php表,将balance余额减500。要求user id为15 |
原先记录为
执行SQL语句 update php set balance=balance-500 where id =1;
删除记录
类别 | 详细解示 |
基本语法 | delete from 表 [where 条件]; |
示例 | delete from php where id =1; |
示例说明 | 删除掉用户表中id等于1的那条数据 |
删除掉id=1的那一行,删除之前表内容:
执行SQL语句 delete from php where id =1;