【一】.用户变量
(1).定义赋值变量使用SET命令,变量名称前必须加@符号
SET @money = 10;
(2).赋值变量使用SELECT命令,变量名称前必须加@符号,并且等号前面必须加冒号
SELECT @money := 10;
(2).使用变量
SELECT @money;
普通查询:
SELECT * FROM member WHERE money=@money; 查询用户余额等于10的用户
排序查询: (增加了一个sort显示出排名顺序,@sort变量递增赋值实现)
SET @sort = 0; SELECT id,money, @sort := @sort+1 as sort FROM member ORDER BY money DESC
id money sort 3 300 1 2 200 2 1 100 3
【二】.会话变量
(1).设置会话变量(session)(设置后仅本次生效)
SET SESSION sort_buffer_size = 50000; SET @@SESSION.sort_buffer_size = 50000;
(2).使用会话变量,变量名称前必须加@@符号(变量前是俩@,下面2个查询都是等价的)
SELECT @@SESSION.sort_buffer_size; SELECT @@LOCAL.sort_buffer_size;
(3).查看全部会话变量
SHOW SESSION VARIABLES;
【三】.全局变量
(1).设置全局变量
SET GLOBAL innodb_io_capacity = 300; SET @@GLOBAL.innodb_io_capacity = 400;
(2).查看某个全局变量
SHOW GLOBAL VARIABLES LIKE 'innodb_io_capacity';
(3).查看全部全局变量
SHOW GLOBAL VARIABLES
where与having非常类似.都能筛选数据.表达式完全一致. 但是职责的确不同.where负责对表中的字段进行筛选,having负责对where筛选后的结果集再次筛选。这也就是where不能使用别名字段来筛选的原因,因为数据中没有这个字段。&n...
由于在开发中不小心删除客户上传的商品数据,客户本身也不好说话,只好恢复数据库,记录下过程。原理是数据库开启bin-log功能,然后再通过备份的bin-log进行数据库恢复。先查找备份的数据库日志二进制文件。一般在mysql的data文件夹中,文件名大概为mysql-bin.00001,具体看文件的修...
(1).首先我们需要了解limit分页的工作流程demo: SELECT * FROM table LIMIT 10000,5 通常我们会认为以上SQL会从10000条后面取5条,正确的是取出10005条,然后再抛弃前...
概述: 目前我们的表设计,最高级别的范式是6NF,对于PHP程序员而言,我们的表满足3NF即可(范式即规范)【一】1NF (1).所谓1NF,就是指标的属性具有原子性,即表的列不能再分割,不能分割意思是字段本身的含义(例如address字段不能再分割)...
项目中查询数据部分字段出现null,影响到了排序,但是由于没有数据库权限,还想将null转为其他值表示;例如现有表member的原始数据:SELECT * FROM memberid &n...
(1).下面是一张基本的会员表membermid name age 1 高峰 24 2 王小 19 3 韩星 24(2).下面是一张基本的会员日志表loglid ...