目录
多条数据查询 不存在返回空数组,否则返回二维数组 可排序查询
field 方法主要作用是标识要返回或者操作的字段,可以用于查询和写入操作
order 方法用于对操作的结果排序或者优先级限制(desc->倒序,asc->正序 ,默认asc)
说明:
这些都是我再上网课的过程中做的笔记,可能有不足的地方,还请大神指出!
这是基于ThinkPHP6的代码!
使用 MySQL 语句操作
## 原生查询
$data = Db::query('select * from `user`');
## 原生新增和修改
$data = Db::execute("insert into user set `uid`='123',`name`='张三'"); //注意单引号和双引号 (新增)
$data = Db::execute("update user set `age`='23',`name`='张三' where `uid`=10"); //注意单引号和双引号 (修改)
查询单个数据 不存在返回null,否则返回数组 可排序查询
$data = Db::table('user')->find(); //无条件查询默认第一个
$data = Db::table('user')->where('uid',12)->find(); //查询uid=12的数据
多条数据查询 不存在返回空数组,否则返回二维数组 可排序查询
$data = Db::table('user')->select(); //查询user表内所有数据
$data = Db::table('user')->where('uid',12)->select(); //查询uid=12的数据
查询某个字段的值 value
$data = Db::table('user')->where('uid',1)->value('name'); //查询user表下uid=1的那么字段值 返回字符串 不存在返回null
查询某一列的值 column 可多列查询 返回数组
$data = Db::table('user')->column('name'); //查询整张表
$data = Db::table('user')->where('uid',1)->column('name');
$data = Db::table('user')->where('uid',1)->column('name','age'); //此处age为数组下标
链式查询
## 字符串查询
$data = Db::table('user')->where('uid','>',5)->select();
## 表达式查询
$data = Db::table('user')
->where('uid','>',5)
->where('age','<',18)
->select();
## 数组条件
$data = Db::table('user')
->where([
'uid' => '10',
'age' => '18'
])
->select();
table 方法主要用于指定操作的数据表
## 单表查询
$data = Db::table('user')->where('uid','>',5)->select();
## 多表查询
$data = Db::table('user u,admin a') //查询user和admin两个表 分别这是别名 u 、a
->where('u.uid = a.id') //设置查询条件u.uid表示user表下的uid字段,a.id表示admin表下的id字段,可多条件查询
->select(); //查询后的数据会拼接在一起
## 数组多表查询
$data = Db::table([
'user'=>'u',
'admin'=>'a'
])
->where('uid','>',5) //效果同上
->select();
field 方法主要作用是标识要返回或者操作的字段,可以用于查询和写入操作
## 返回两个字段
$data = Db::table('user')->field('uid,name')->select(); //查询结果只会显示uid和name两个字段的值
$data = Db::table('user')->field('uid,name')->where('uid','>',5)->select(); //可添加where条件
## 返回字段改名
$data = Db::table('user')->field('uid,name as n')->select(); //查询结果同上(将name字段的下标改为n),也可条件查询 用法同上
## 数组
$data = Db::table('user')->field(['uid,name'])->select();
## 字段排除
$data = Db::table('user')->withoutField('uid')->select(); //查询结果不会显示uid字段的值,也可以添加条件 用法同上
## 使用MySQL的函数
$data = Db::table('user')->fieldRaw('MAX(age)')->select(); //查询user表下的最大age值,fieldRaw可以使用MySQL的函数
order 方法用于对操作的结果排序或者优先级限制(desc->倒序,asc->正序 ,默认asc)
## 指定字段排序
$data = Db::table('user')
->field('uid,name') //限制查询字段
->where('uid','>',5) //设置查询条件
->order('age','desc') //设置按某字段的排序方式进行排序
->select();
## 排序数组
$data = Db::table('user')
->field('uid,name') //限制查询字段
->where('uid','>',5) //设置查询条件
->order(['age' => 'desc']) //设置按某字段的排序方式进行排序
->select();
limit 方法主要用于指定查询和操作的数量
## 查询任意条数据
$data = Db::table('user')
->field('uid,name') //限制查询字段
->where('age','>',18) //设置查询条件
->limit(3) //设置查询数量
->select();
多条查询
## 查询3条数据
$data = Db::table('user') //选择表
->field('uid',phone,) //规定显示的字段
->where('uid=1') //限制条件
->order('age','desc') //按年龄倒序排列
->limit(3) //限制查询条数
->select();
## 从第几条查询到第几条
$data = Db::table('user') //选择表
->field('uid','phone') //规定显示的字段
->where('uid=1') //限制条件
->order('age','desc') //按年龄倒序排列,删除desc则默认正序排列
->limit(1,3) //从第二条查询到第四条。。。。从零开始
->select();
分页查询
## 从第0条开始查询出10条数据
$data = Db::table('user') //选择表
->field('uid','phone') //规定显示的字段
->where('uid=1') //限制条件
->order('age','desc') //按年龄倒序排列,删除desc则默认正序排列
->page(1,10) //分页查询,,第一页查询十条数据,,从一开始,第一个参数代表页数
->select();
## page 组合 limit
$data = Db::table('user') //选择表
->field('uid','phone') //规定显示的字段
->where('uid=1') //限制条件
->order('age','desc') //按年龄倒序排列,删除desc则默认正序排列
->limit(3) //限制每页查询出来的条数
->page(1) //指定某一页,,,,0 = 1 效果相同
->select(); //查询结果 同上
多表查询
## 内连接 ---->只返回匹配到的
$data = Db::table('user u') //选择表(user) 并设置别名u
->join('admin a','a.id = u.uid') //选择另一个表(admin) 并设置别名a,设置匹配条件(a.id = u.uid)
->select();
## 左连接 ---->左边表数据全部返回,右边表数据匹配显示,不匹配的显示空
$data = Db::table('user u') //选择表(user) 并设置别名u(左边表)
->leftJoin('admin a','a.id = u.uid') //选择另一个表(admin) 并设置别名a(右边表),设置匹配条件(a.id = u.uid)
->select();
## 右连接 ---->右边表数据全部返回,左边表数据匹配显示,不匹配的显示空
$data = Db::table('user u') //选择表(user) 并设置别名u(左边表)
->rightJoin('admin a','a.id = u.uid') //选择另一个表(admin) 并设置别名a(右边表),设置匹配条件(a.id = u.uid)
->select();
## union 操作用于合并两个或多个SELECT语句的结果集(大白话:查询两个表的数据返回数组 数组的下标可以自定义)
$data = Db::field('uid') //设置下标
->table('user') //选择表
->union('SELECT `name` FROM admin')//选择另一表 并设置查询字段
->select();
聚合查询
## count 统计数量,参数是要统计的字段名(可选)
$data = Db::table('user')->count(); // 无条件统计
$data = Db::table('user')
->where('uid','>',5) // 条件统计(统计uid>5的数量)
->count();
## max 获取最大值,参数是要统计的字段名(必须)
$data = Db::table('user')->max('uid'); //获取user表中uid最大的 (无条件)
$data = Db::table('user')
->where('uid','>',5) //获取user表中uid>5的age最大的值
->max('age');
## min 获取最小值,参数是要统计的字段名(必须)(使用方法同上)
$data = Db::table('user')->min('uid'); //获取user表中uid最小的 (无条件)
$data = Db::table('user')
->where('uid','>',5) //获取user表中uid>5的age最小的值
->min('age');
## avg 获取平均值,参数是要统计的字段名(必须)
$data = Db::table('user')->avg('age'); //获取user表中所有age的平均值 (无条件)
$data = Db::table('user')
->where('uid','>',5) //获取user表中uid>5的age的平均值
->avg('age');
## sum 获取总分,参数是要统计的字段名(必须)
$data = Db::table('user')->sum('age'); //获取user表中所有age的总和 (无条件)
$data = Db::table('user')
->where('uid','>',5) //获取user表中uid>5的age的总和
->sum('age');
数据的添加
## 添加一条数据 添加成功会返回条数 通常为1
$data = ['name'=>'张三','age'=>18];
$result = Db::table('user')->insert($data);
## 添加、修改一条数据 save 成功会返回条数 通常为1
# 添加
$data = ['name'=>'张三','age'=>18];
$result = Db::table('user')->save($data);
# 修改
$data = ['name'=>'张三','age'=>18,'uid'=>1]; //必须加上主键,主键位置任意
$result = Db::table('user')->save($data); //若没有主键需要加上限制条件
## 添加一条数据 返回自增主键
$data = ['name'=>'张三','age'=>18];
$result = Db::table('user')->insertGetId($data);
## 添加多条数据 insertAll
$data = [
['name'=>'张三','age'=>18],
['name'=>'李四','age'=>20],
['name'=>'Tom','age'=>58],
['name'=>'Bob','age'=>38]
];
$result = Db::table('user')->insertAll($data);
修改数据 update
## 修改数据
$data = ['age'=>'12','name'=>'张三'];
$result = Db::table('user')->where('uid',9)->update($data); // 需要限制条件
自增 增加一个字段的值
## 字段的值增加1
$ressult = Db::table('user')->where('uid',6)->inc('age')->update(); // 自增user表下uid=6的age 的值 自增1
## 自定义自增数量
$ressult = Db::table('user')->where('uid',6)->inc('age',5)->update(); // 自增user表下uid=6的age 的值 自增5
自减 减去一个字段的值
## 字段的值自减1
$ressult = Db::table('user')->where('uid',6)->dec('age')->update(); // 自减user表下uid=6的age 的值 自减1
## 自定义自减数量
$ressult = Db::table('user')->where('uid',6)->dec('age',5)->update(); // 自减user表下uid=6的age 的值 自减5
删除数据 delete
## 根据条件删除数据
$result = Db::table('user')->where('uid',1)->delete();
## 删除主键为2的数据
$result = Db::table('user')->delete(2);
## 删除整张表的数据
$result = Db::table('user')->delete(true);