参考书籍:https://book.douban.com/subject/27055712/
MySQL 的账户信息保存在 mysql 这个数据库中。
USE mysql; SELECT user FROM user;创建账户
新创建的账户没有任何权限。
CREATE USER myuser IDENTIFIED BY 'mypassword';修改账户名
RENAME myuser TO newuser;删除账户
DROP USER myuser;查看权限
SHOW GRANTS FOR myuser;授予权限
账户用 username@host 的形式定义,username@% 使用的是默认主机名。
GRANT SELECT, INSERT ON mydatabase.* TO myuser;删除权限
GRANT 和 REVOKE 可在几个层次上控制访问权限:
整个服务器,使用 GRANT ALL 和 REVOKE ALL;整个数据库,使用 ON database.*;特定的表,使用 ON database.table;特定的列;特定的存储过程。 REVOKE SELECT, INSERT ON mydatabase.* FROM myuser;更改密码
必须使用 Password() 函数
SET PASSWROD FOR myuser = Password('new_password');修改MySQL提示符:
mysql -uroot -proot --prompt 提示符 # 连接客户端时通过参数指定 prompt 提示符 # 连接客户端之后,通过prompt指定 参数描述\D完整的日期\d当前数据库\h服务器名称\u当前用户显示当前服务器版本:SELECT VERSION();
显示当前日期:SELECT NOW();
显示当前用户:SELECT USER();
数据库创建与使用:
CREATE DATABASE test; USE test;创建数据库
CREATE {DATEBASE | SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name 查看当前服务器下的数据表列表 SHOW {DATABASE | SCHEMAS} [LIKE "pattern" | WHERE expr] 查看警告信息 SHOW WARNINGS; 查看数据库创建信息 SHOW CREATE DATABASE t1; 修改数据库 ALTER {DATABASE | SCHEMA} [db_name] [DEFAULT] CHARACTER SET [=] charset_name 删除数据库 DROP {DATABASE |SCHEMA} [IF EXISTS] db_name; 注释 SELECT * FROM mytable; -- 注释 /* 注释1 注释2 */添加列
ALTER TABLE mytable ADD col CHAR(20);删除列
ALTER TABLE mytable DROP COLUMN col;删除表
DROP TABLE mytable;修改表名
ALTER TABLE <原表名> to <新表名>普通插入,不指定列则要求全部要插入
START TRANSACTION; INSERT INTO mytable(col1, col2) VALUES(val1, val2); ... COMMIT;