MYSQL´æ´¢¹ý³ÌѧϰС½á
Mysql ´æ´¢Àý³ÌµÄʹÓÃ
Ò»¡¢ ¼ò½é
´æ´¢¹ý³Ì£¨Stored Procedure£©ÊÇÒ»×éΪÁËÍê³ÉÌØ¶¨¹¦ÄܵÄSQLÓï¾ä¼¯£¬¾±àÒëºó´æ´¢ÔÚÊý¾Ý¿âÖС£Óû§Í¨¹ýÖ¸¶¨´æ´¢¹ý³ÌµÄÃû×Ö²¢¸ø³ö²ÎÊý£¨Èç¹û¸Ã´æ´¢¹ý³Ì´øÓвÎÊý£©À´Ö´ÐÐËü¡£´æ´¢¹ý³Ì ÊÇÊý¾Ý¿âÖеÄÒ»¸öÖØÒª¶ÔÏó£¬ÈκÎÒ»¸öÉè¼ÆÁ¼ºÃµÄÊý¾Ý¿âÓ¦ÓóÌÐò¶¼Ó¦¸ÃÓõ½´æ´¢¹ý³Ì¡£
ËäÈ»³£ÓÃÊõÓïÊÇ´æ´¢¹ý³Ì£¨stored procedure£©£¬µ«MySQLʵ¼ÊÉÏʵÏÖÁËÁ½ÖÐÀàÐÍ£¬³ýÁË´æ´¢¹ý³ÌÍ⣬»¹Óд洢º¯Êý£¨stored routine£©,ËüÃÇͳ³ÆÎª´æ´¢Àý³Ì£»
¶þ¡¢»ù±¾¸ñʽ
1¡¢´æ´¢¹ý³Ì
CREATE PROCEDURE ¹ý³ÌÃû ([¹ý³Ì²ÎÊý[,...]])
[ÌØÐÔ ...] ¹ý³ÌÌå
Èç´´½¨: CEATE PROCEDURE p1 (a INT)
SELECT a;
µ÷ÓÃһϣºCALL p1(8);
½«ÏÔʾ£º
+------+
| a |
+------+
| 8 |
+------+
1 row in set (0.00 sec)
2¡¢´æ´¢º¯Êý
CREATE FUNCTION º¯ÊýÃû ([º¯Êý²ÎÊý[,...]])
RETURNS ·µ»ØÀàÐÍ
[ÌØÐÔ ...] º¯ÊýÌå
Èç´´½¨£ºCREATE FUNCTION f1 (x INT)
RETURNS INT
RETURN x; /* ¹ý³Ìº¯ÊýÒ»´ÎÖ»ÄÜ·µ»ØÒ»¸öÖµ
µ÷ÓÃһϣºSELECT f1 (3);
½«ÏÔʾ£º
+-------+
| f1(3) |
+-------+
| 3 |
+-------+
1 row in set (0.00 sec)
3¡¢¹ý³Ì²ÎÊý
[ IN | OUT | INOUT ] ²ÎÊýÃû ²ÎÊýÀàÐÍ
4¡¢º¯Êý²ÎÊý
²ÎÊýÃû ²ÎÊýÀàÐÍ
5¡¢·µ»ØÀàÐÍ
ÓÐЧµÄMySQLÊý¾ÝÀàÐͼ´¿É
6¡¢¹ý³ÌÌå/º¯ÊýÌå¸ñʽÈçÏÂ
BEGIN
ÓÐЧµÄSQLÓï¾ä
END
7¡¢ÌØÐÔ£¨Ò»°ã²»ÒªÇó£©
LANGUAGE SQL
| [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
| COMMENT 'string'
8¡¢´æ´¢¹ý³ÌÖвÎÊýµÄIN,OUT,INOUTÀàÐÍ
´æ´¢¹ý³Ì¿ÉÒÔ½ÓÊÜÊäÈë²ÎÊý£¬²¢°Ñ²ÎÊý·µ»Ø¸øµ÷Ó÷½¡£²»¹ý£¬¶ÔÓÚÿ¸ö²ÎÊý£¬ÐèÒªÉùÃ÷Æä²ÎÊýÃû¡¢Êý¾ÝÀàÐÍ£¬»¹ÒªÖ¸¶¨´Ë²ÎÊýÊÇÓÃÓÚÏò¹ý³Ì´«µÝÐÅÏ¢£¬»¹ÊÇ´Ó¹ý³Ì´«»ØÐÅÏ¢£¬»òÊǶþÕß¼æÓС£
ΪÉùÃ÷²ÎÊýµÄ×÷Óã¬Ê¹ÓÃÈçÏÂ3¸ö¹Ø¼ü×ÖÖ®Ò»£º
IN : IN²ÎÊýÖ»ÓÃÀ´Ïò¹ý³Ì´«µÝÐÅÏ¢£¬ÎªÄ¬ÈÏÖµ¡£
OUT : OUT²ÎÊýÖ»ÓÃÀ´´Ó¹ý³Ì´«»ØÐÅÏ¢¡£
INOUT £º INOUT²ÎÊý¿ÉÒÔÏò¹ý³
Ïà¹ØÎĵµ£º
ÎÒµÄϵͳÊÇubuntu6.06£¬×î½üÐÂ×°ºÃµÄmysqlÔÚ½øÈëmysql¹¤¾ßʱ£¬×ÜÊÇÓдíÎóÌáʾ:
# mysql -uroot -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
ʹÓÃÍøÉϽéÉܵķ½·¨ÐÞ¸ÄrootÓû§µÄÃÜÂ룺
# mysqladmin -uroot -p password 'newpassword'
Enter pass ......
1.mysqlµ¼³öÊý¾Ý¿âÃüÁî
C:\Program Files\MySQL\MySQL Server 5.0\bin>mysqldump -u Óû§Ãû -p Êý¾Ý¿âÃû (±íÃû) > c:\\ÎļþÃû.sql
2.mysqlµ¼ÈëÊý¾Ý¿âÃüÁî
£¨1£©½â¾öÖÐÎÄÂÒÂëÎÊÌ⣺ִÐÐÈçÏÂÃüÁîÔÙµ¼È룺set names utf8
£¨2£©µÇ¼mysql£¬Ö´ÐÐÈçÏÂÃüÁ
mysql> source c:\\ÎļþÃû.sql;
3½â¾öÖÐÎÄÂÒÂëÎÊÌ⣺ִР......
¡¾ÊéÃû¡¿¸ßÐÔÄÜMySQL£¨µÚ¶þ°æ£©
¡¾ÔÊéÃû¡¿High Performance MySQL, second edition
¡¾×÷Õß¡¿Baron Schwartz£¬Peter Zaitsev£¬Vadim
Tkachenko£¬Jeremy D.Zawodny£¬Arjen Lentz£¬Derek
J.Balling Öø
¡¾ÒëÕß¡¿ÍõС¶« Àî¾ü ¿µ½¨Ñ« Òë
¡¾³ö°æÉç¡¿µç×Ó¹¤Òµ³ö°æÉç
¡¾ÊéºÅ¡¿978- ......
Ò»¡¢CREATE TABLE ·½·¨
Õû±í¸´ÖÆ # create table бí select * from ¾É±í;
½á¹¹¸´ÖÆ # create table бí select * from ¾É±í where 1<>1;
¶þ¡¢INSERT INTO ·½·¨
µÃµ½½¨±íÓï¾ä # show create table ¾É±í;
н¨±í
¸´ÖÆÊý¾Ýµ½Ð±í INSERT INTO new_table(col1,col2,...) (SELECT col1,col2,... from old_table); ......
1. Á¬½Ómysql:
mysql -h Ö÷»úµØÖ· -u Óû§Ãû £p
2.Í˳ömysql:exit
3. ÐÞ¸ÄÃÜÂë:
mysqlbinmysqladmin -uroot -p(oldpassword) password newpassword
4.Ôö¼ÓÓû§£º
Ìí¼ÓÒ»¸öÓû§test1 ÃÜÂëΪABC£»ÈÃËû¿ÉÒÔÔÚÈκÎÖ÷»úÉϵǼ,²¢¶ÔËùÓÐÊý¾Ý¿âÓвéѯ¡¢²åÈë¡¢Ð޸ġ¢É¾³ýµÄȨÏÞ¡£Ê×ÏÈÓÃÒÔrootÓû§Á¬Èë
mysql,È»ºó¼üÈëÒÔÏÂÃü ......