MySQL学习笔记
1.特有的SQL命令
1) 修改字段名称: alter table tableName change oldName newName type;
注意:type可以和原来的字段类型不同。
2) 修改表名称: alter table tableName rename [to] newTableName;
3) 分页查询: select * from tableName limit startLine,amount;
注意:startLine -- 将数据库中的第(startLine+1)行作为查询结果的第一条数据,startLine从0开始;
amount --显示的条数
4) 查询数据库的编码格式: show create database databaseName;
2.存储过程
1) 不带参数的存储过程
-- 声名结束符 DELIMITER $ -- 创建存储过程 CREATE PROCEDURE pro_test() BEGIN -- 可以添多个SQL语句/逻辑 INSERT INTO emp VALUES(1,'huwei'); INSERT INTO emp VALUES(2,'xingkong'); END $ -- 调用存储过程 CALL pro_test(); -- 删除存储过程 -- 注意:最后没有() DROP PROCEDURE pro_test;
2) 带输入参数的存储过程
-- 声名结束符 DELIMITER $ -- 创建存储过程(IN 表示输入参数) CREATE PROCEDURE pro_test(IN eid INT) BEGIN SELECT * FROM EMP WHERE ID = eid; END $ -- 调用存储过程 CALL pro_test(1); -- 删除存储过程 -- 注意:最后没有() DROP PROCEDURE pro_test;
3) 带输出参数的存储过程
-- 声名结束符 DELIMITER $ -- 创建存储过程(OUT 表示输出参数) CREATE PROCEDURE pro_out(OUT str VARCHAR(100)) BEGIN SET str='Hello Procedure'; END $-- 调用存储过程 CALL pro_out(@str); --查看结果 SELECT @str;
-- 删除存储过程
-- 注意:最后没有()
DROP PROCEDURE pro_out;
4)将查询结果作为输出参数的存储过程
DELIMITER $ CREATE PROCEDURE pro_into(OUT ename VARCHAR(20)) BEGIN -- into: 将 name 赋值给 ename SELECT NAME INTO ename FROM emp WHERE id = 1; END $ CALL pro_into(@ename); SELECT @ename;
5) 带输入输出参数的存储过程
-- 声明名结束符 DELIMITER $ -- 创建存储过程(OUT 表示输出参数) CREATE PROCEDURE pro_InOut(INOUT num INT) BEGIN SET num = num + 1; END $ -- 设置会话变量num=10 SET @num = 10; -- 调用存储过程 CALL pro_InOut(@num); -- 查看输出结果 SELECT @num;
-- 删除存储过程
-- 注意:最后没有()
DROP PROCEDURE pro_InOut;
6) 带IF-ELSE逻辑的存储结构
DELIMITER $ CREATE PROCEDURE pro_if(IN sorce INT,OUT lev VARCHAR(20)) BEGIN IF sorce <= 60 THEN SET lev = 'fail'; ELSEIF sorce <= 80 THEN SET lev = 'pass'; ELSEIF sorce <= 90 THEN SET lev = 'good'; -- else后面不加then ELSE SET lev = 'great'; -- 注意:不能忘了结束if及分号 END IF; END $ CALL pro_if(33,@lev); SELECT @lev;
7) 带WHILE逻辑的存储过程
DELIMITER $ CREATE PROCEDURE pro_while(OUT result INT) BEGIN -- 定义局部变量 DECLARE i INT DEFAULT 1; DECLARE summary INT DEFAULT 0; WHILE i <= 10 DO SET summary = summary + i; SET i = i + 1; END WHILE; SET result = summary; END $ CALL pro_while(@result); SELECT @result;
3.MySQL的三种变量:
1)全局变量:MySQL内置的变量
查询所有的全局变量: show variables;
查询某个全局变量:select @@varName;
修改全局变量的值:set varName = value;
2)会话变量:只在本次连接中有效的变量(连接中断,变量销毁)
定义会话变量: set @varName = value;
查询会话变量的值: select @varName;
3)局部变量:在存储过程中定义的变量
定义局部变量: declare varName type [default value];
更多内容,请访问:http://www.cnblogs.com/BlueStarWei/