【一】.用户变量
(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
1.定长和变长的分离 如int,char,time所占字节是固定的字段放在一张表 如varchar,text所占字节不确定的字段放在一张表中2.常用字段和不常用字段进行分离,根据查询频率来设计3.一对多的关联表可以添加冗余字段,如商品分类表 和商品表 ,在首页中需要显示每个分类商...
例如我们需要查询商品表中每个分类中商品id最大的记录,并且显示商品价格以下是表结构:id catename title &nb...
Left join:即左连接,是以左表为基础,根据ON后给出的两表的条件将两表连接起来。结果会将左表所有的查询信息列出,而右表只列出ON后条件与左表满足的部分。左连接全称为左外连接,是外连接的一种。Right join:即右连接,是以右表为基础,根据ON后给出的两表的条件将两表连接起来。结果会将右表...
一般情况下,绝大部分,我们的主键是数字,1 2 3 4...所以我们才让它递增.这并不意味着,他们两个必须要绑定在一起使用.例如我还想将用户表的email字段设置为主键,但是并没有必要为其设置自增。 因此可...
我们从一个结果集中查询信息一般都是select * from (select...),每次都要编写from (select...)非常麻烦,于是我们将结果集保存起来,这就是视图的便利。创建视图的命令为:create view &nb...
1.很多人认为count查询非常快,但是在加上筛选条件那就是未必的了!测试:user表中4000w数据(1).SELECT count(*) from user; 用时0.00s (2).SELECT...