Mysql数据库学习

上一篇 / 下一篇  2012-11-26 20:28:37 / 个人分类:数据库学习

学习前准备创建一个测试数据库和表

1、数据库test1

      Create database test1;

2、表

  Create table user (

             Name varchar(50),

 Passwd varchar(100)

);

3、插入数据

  Insert into user (name,passwd) values (test,test);

添加外部连接账号

GRANT ALL PRIVILEGES ON *.* TO 账号名@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;

数据库还原

恢复数据库:

mysql -u root password=root密码 数据库名 备份文件.sql

我们常使用的的还原的方式:

Source sql文件路径”


这个是字符集问题。

1、使用status命令查看数据库信息

 

 可以看到字符集为GBK

2.如果字符集为GBK,修改为utf8

  打开my.ini文件 修改

  default-character-set=utf8

  character-set-server=utf8

 

函数、存储过程、游标的结合使用

脚本编写常见语句了解

1、DELIMITER 

其实就是告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了。

默认情况下,delimiter是分号;。在命令行客户端中,如果有一行命令以分号结束,直接执行语句。

2、DEFINER

定义存储过程权限,DEFINER=`sa`@`%` sa账号,%是所有权限连接

存储过程

DELIMITER $$

CREATE DEFINER=`sa`@`%` PROCEDURE `test`()

BEGIN

DECLARE num INT;

DECLARE temp VARCHAR(5);

DECLARE tempname VARCHAR(50);

    /*定义游标*/

DECLARE  cur CURSOR FOR SELECT account FROM user  LIMIT 10;

SET num =1;

SET temp ='robjy';

     /*打开游标*/

OPEN cur;

     / *定义循环*/

WHILE (num < 10)  /*while循环*/

DO

    /*读取游标下一个数据*/

FETCH cur INTO tempname;

UPDATE user SET account = CONCAT(temp,num) WHERE account = tempname;

SET num = num +1;

END WHILE;

    /*关闭游标*/

CLOSE cur;

END$$


1、修改账号练习

CREATE DEFINER=`sa`@`%` PROCEDURE `test`()

BEGIN

DECLARE num INT;

DECLARE temp VARCHAR(5);

DECLARE tempname VARCHAR(50);

DECLARE  cur CURSOR FOR SELECT name FROM user LIMIT 10000;

SET num =1;

SET temp ='robot';

OPEN cur;

WHILE (num < 10000)

DO

FETCH cur INTO tempname;

UPDATE user  SET name= CONCAT(temp,num) WHERE name = tempname;

SET num = num +1;

END WHILE;

CLOSE cur;

END$$

DELIMITER ;

CALL test;



TAG:

 

评分:0

我来说两句

Open Toolbar