记录本人工作学习中遇到的MySQL使用方法,遇到的问题和解决办法,有些不正确的地方欢迎指正。
1.基础
1.1 查看已存在的数据库
mysql> show databases;
注意:databases是复数形式
1.2 创建新的数据库
mysql> CREATE DATABASE IF NOT EXISTS `database_name` DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
IF NOT EXISTS
:该数据库不存在时才创建新的库;database_name
:你要创建的数据库的名称;DEFAULT CHARSET utf8
:默认的编码方式;COLLATE utf8_general_ci
:默认的排序方式。注意:utf8_general_ci是大小写不敏感的。
1.3 选择要使用的数据库
mysql> use database_name;
database_name
:是show databases;
的结果,不存在时报以下错误
mysql> use abc;
ERROR 1049 (42000): Unknown database 'abc'
2.用户/权限管理
2.1 查看数据库中已存在的用户
#切换到mysql库
mysql> use mysql;
#然后查询user表的user字段
mysql> select user from user;
2.2 创建新用户
mysql> CREATE USER 'user_name'@'%' IDENTIFIED BY 'app_pfo_dlk_2018';
2.3 给用户授权
grant 权限 on 数据库对象 to 用户
mysql> grant ALL on has_db to app_has;
Query OK, 0 rows affected (0.11 sec)
3.存储过程
下面是一个简单的存储过程,用来在user表中插入五条数据,用1+时间戳
当做账号
DROP PROCEDURE IF EXISTS `million`;
CREATE DEFINER=`root`@`localhost` PROCEDURE `million`()
BEGIN
DECLARE cur_time VARCHAR(14);#该变量存放时间字符串
DECLARE account VARCHAR(32);#该变量是即将插入语句的账号
DECLARE i INT(11);#循环变量
SET i=0;
WHILE i<5 DO
#SELECT NOW();
#获取当前时间转换为字符串,格式`%Y%m%d%H%i%S`
SET cur_time=date_format(NOW(), '%Y%m%d%H%i%S');
#SELECT cur_time;
#用 CONCAT() 函数拼接 1 和 cur_time,组装成账号
SET account=CONCAT('1', cur_time);
#执行插入语句,values语句中,account字段的值使用自定义变量 account
INSERT INTO `user` (`account`, `passwd`, `name`, `tel`, `create_time`, `operator`, `status`) VALUES (account, NULL, 'monkey', '10000', NULL, NULL, 1);
#循环变量+1
SET i=i+1;
END WHILE;
END