★编程优化
一、字符编码(mysql 控制台乱码输出解决:character_set_results='gbk')
表 / 列编码设置
列:alter table 表名 change 列名 列名 数据类型 character set 字符集名
表:alter table 表名 character set utf8
服务器编码设置
多表结构设置
二、视图
①简介
· 什么是视图?视图是由查询结果形成的一张虚拟表。视图的主要作用就是查询。
· 什么时候用到视图?如果某个查询结果出现的非常频繁,也就是,要经常拿这个查询结果来做子查询。
· 使用视图的好处:简化查询语句,可以进行权限控制,大数据表分表的时候
· 视图与表的关系:视图是表的查询结果,自然表的数据变了,会影响视图的结果。
· 能否对视图进行增删改查的操作?
1 > 视图的增删改也会影响表;2 > 但视图并不总是能增删改的;视图与表的数据一一对应时可以修改,对于视图的 insert 还应注意;视图必须包含表中没有默认值的列。
②创建
create [or replace] [algorithm={undefined|merge|temptable}]
view view_name[(colum_list)]
as select_statement
[with[cascaded|local] check option]
③管理
· 视图的存放位置
select * from iinformation_schema.views; 查询视图的存放位置;show tables; 也可以查看
· 查看视图的定义:show table status from 视图名称 like '视图名称'\G
· 删除视图,只能删除视图的定义,不能删除数据,必须有 drop 权限
drop view if exists 视图名称
·update 视图名称 set salary=1500 where emp_no=1001; 更新视图中 emp_no=1001 的工资;
· 某些视图是可更新的,也就是说,可以在诸如 update、delete 或 insert 等语句中使用他们,以更新基表的内容,对于可更新的视图,在视图中的行和基表中的行之间必须具有一对一的关系;包含以下的视图都是不可更新的
1 > 聚合函数 sum() min() max() count()
2>distinct
3>group by
4>having
5>union 或 union all
6 > 位于选择列表中的子查询
7>join
8>from 子句中的不可更新视图
9>algorithm=temptable(使用临时表总会使视图成为不可更新的)
· 关于 with check option 的理解与应用?
通过视图进行的修改,必须也能通过该视图看到修改的后的结果。
三、变量与流程控制
· 局部变量:局部变量在存储过程中被定义,那么局部变量只有在存储过程中才有效,其他范围无效。
use companys;
delimiter $$;
create procedure p_vartest()
begin
declare a varchar(20) default 'abc';
select a
end
$$
delimiter;
call p_vartest
· 会话变量:客户端与服务器端相关联的时候,你设置的变量,就是客户端所拥有的变量,这些变量就是会话变量。
查看所有会话变量 show session variables;
show session variables like 'auto%';
当 A 客户端和 B 客户端同时操作 mysql 数据库,各自设置的变量只对自己起作用,互不干扰,等下次在操作 mysql 的时候,mysql 会把自己的一些变量作用于客户端。
修改 session 会话变量方法:
set @@session.autocommit='off';
set 变量名 ='某个值';
· 全局变量:不管是 sessionA 还是 sessionB,只要你针对 MySQL 全局变量做了修改,A 访问和 B 访问都是访问相同的变量值,
查看所有全局变量
show global variables;
查看某一个全局变量
show global variables like 'auto%';
设置全局变量
set @@global. 变量名 = 某个值
· 选择语句
use companys;
delimiter $$;
create procedure p_showage(in age int)
begin
if age>=18 then
select '成年人';
else
select '未成年人';
end if;
end
$$
来源: http://www.bubuko.com/infodetail-2439784.html