MySQL笔记
1.使用游标,在存储过程或函数中用于对查询的多条记录进行逐条处理。
1.1 定义 DECLARE cursor_name CURSOR FOR select_statement。
cursor_name 表示游标的名称;select_statement 表示 SELECT 语句.
1.2 提前定义变量参数保存查询结果中的值.
1.3 打开游标 OPEN cursor_name;
1.4 向变量参数中赋值 FETCH cursor_name INTO var_name [var_name]…
1.5 关闭游标 CLOSE cursor_name;
DELIMITER //
create PROCEDURE abc()
begin
declare a int;
declare i int DEFAULT 0;
declare b VARCHAR(50);
declare test CURSOR for SELECT BIID,BoxNum from tbboxinfo limit 0,5;
declare continue handler for not found set i=1;
open test;
repeat
fetch test into a,b;
select a,b;
UNTIL i=1 END repeat;
close test;
end //
call abc;
drop PROCEDURE abc;
2.修改MySQL用户密码
my.ini添加 skip-grant-tables跳过密码验证
mysql;
user mysql;
update user set authentication_string=password(‘root’) where user=’root’ and host=’localhost’; --MySQL5.7之后版本使用
或者
update user set password=password(‘root’) where user=’root’ and host=’localhost’; --MySQL5.7之前版本使用
FLUSH PRIVILEGES;
3.使用msql自带mysqldump来备份数据库
mysqldump --host=localhost --port=3306 --user=root --password=8888 --default-character-set=utf8 --routines --events databaseName
4.修改最大连接数
查看最大连接设置:show global variables like ‘%max_connections%’;
navicat运行以下代码:
set GLOBAL max_connections=300
5.修改最大空闲连接时长
查看设置:show variables like ‘%timeout%’;
修改设置:修改my.cnf(linux) my.ini(windows) wait_timeout=28800000
6.数据类型长度
oracle中varchar2最大可存储4000个字符,超过需使用clob,clob中超过4000字符才使用字节存储,否则和varchar2存储方式一样。
mysql中varchar最大可存储65536个字节。
7.oracle修改当前用户下表名和字段都转换为大写
begin
for t in (select table_name tn from user_tables) loop --owner 只匹配当前登录用户所建立的表
begin
for c in (select column_name cn from all_tab_columns where table_name=t.tn) loop --all_tab_columns 中保存所有表中名字为tablename的表字段信息
begin
execute immediate 'alter table "'||t.tn||'" rename column "'||c.cn||'" to '||c.cn;
exception
when others then
dbms_output.put_line(t.tn||'.'||c.cn||'已经存在');
end;
end loop;
execute immediate 'alter table "'||t.tn||'" rename to '||t.tn;
exception
when others then
dbms_output.put_line(t.tn||'已存在');
end;
end loop;
end;