`
isiqi
  • 浏览: 16042058 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

mysql 用户的管理

阅读更多

/**在命令行:导入sql文件**/
sources 'C:/Documents and Settings/Administrator/桌面/优化查询.sql' INTO TABLE user_infor;
/**备份DB**/
mysqldump -uroot -p123456 myDB>d:/backup20070713.sql;
/**在某个DB上的某张表创建一个用户格式**/
GRANT SELECT,INSERT,UPDATE,DELETE ON *[(数据库)].* TO 用户名@登录主机 IDENTIFIED BY "密码" ;
/**在数据库为mydb的yser_infor上创建一个用户(账户:tfq,密码:123456)***/
GRANT SELECT,INSERT,UPDATE,DELETE ON mydb.user_infor TO tfq@'%' IDENTIFIED BY '123456';
/*例1增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库
并对你的数据可以为所欲为了,解决办法见例2.
例2,增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询,插入,修改,
删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,
他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了.
localhost=127.0.0.1
192.168.1.17
*/
GRANT SELECT,INSERT,UPDATE,DELETE ON mydb.user_infor TO tfq@localhost IDENTIFIED BY "abc";
/*如果你不想test2有密码,可以再打一个命令将密码消掉. */
GRANT SELECT,INSERT,UPDATE,DELETE ON mydb.user_infor TO tfq@localhost IDENTIFIED BY "";
/*刷新系统权限表. */
FLUSH PRIVILEGES;
/*删除用户.*/
DROP USER 'tfq'@localhost;
FLUSH PRIVILEGES;
/**修改用户密码**/
UPDATE mysql.user SET PASSWORD=PASSWORD('tfq') WHERE USER="tfq" AND HOST="localhost";
/**数据类型之间的转换

CAST(expr AS type), CONVERT(expr,type) , CONVERT(expr USING transcoding_name)

CAST() 和CONVERT() 函数可用来获取一个类型的值,并产生另一个类型的值。

这个类型 可以是以下值其中的 一个:
BINARY[(N)]
CHAR[(N)]
DATE
DATETIME
DECIMAL
SIGNED [INTEGER]
TIME
UNSIGNED [INTEGER]

SELECT CONVERT(1,VARCHAR)+'要显示的值';
SELECT CAST(1 AS CHAR)+'要显示的值';
SELECT CAST(1 AS VARCHAR)
SELECT CAST(1 AS VARCHAR);
SELECT CONVERT(_latin1'6' USING utf8);

/***MySql的优化查询***/
/*** 1、使用索引
2、EXPLAIN分析查询
3、调整MySQL的内部配置。
***/
#判断DB是否存在
CREATE DATABASE IF NOT EXISTS myDB;
USE myDB;
#判断表是否存在
DROP TABLE IF EXISTS user_class;
CREATE TABLE user_class(
uc_id INT AUTO_INCREMENT PRIMARY KEY,
uc_name NVARCHAR(30),
uc_remark TEXT
);

DROP TABLE IF EXISTS user_infor;
CREATE TABLE user_infor(
user_id INT AUTO_INCREMENT PRIMARY KEY,
user_name CHAR(30),
user_pwd INT,
user_sex CHAR(2),
user_birthday DATETIME,
uc_id INT,
FOREIGN KEY(uc_id) REFERENCES user_class(uc_id) ON DELETE CASCADE
)TYPE=INNODB;

/**插入user_class数据**/
#drop PROCEDURE insert_pro;
DELIMITER//
CREATE PROCEDURE insert_class_pro()
BEGIN
DECLARE cout INT;
SET cout=1;
WHILE cout<=15 DO
INSERT INTO user_class VALUES (NULL,cout+'年级','备注');
SET cout=cout+1;
END WHILE;
END;
//


/**插入user_infor数据**/
#drop PROCEDURE insert_user_pro;
DELIMITER//
CREATE PROCEDURE insert_user_pro()
BEGIN
DECLARE cout INT;
DECLARE v_class INT;
SET cout=1;
SET v_class=1;
WHILE cout<=1000 DO
IF v_class>15 THEN
SET v_class=v_class-15;
END IF;
INSERT INTO user_infor VALUES (NULL,CAST(cout AS CHAR)+'张三','123456','男','1988-05-04',v_class);
SET cout=cout+1;
SET v_class=v_class+1;
END WHILE;
END;
//

CALL insert_class_pro();
CALL insert_user_pro();

SELECT * FROM user_class
SELECT * FROM user_infor;

EXPLAIN SELECT * FROM user_infor WHERE 0;

Distinct
MySQL当找到当前记录的匹配联合结果的第一条记录之后,就不再搜索其他记录了。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics