MySQL学习系列一

来源:互联网 发布:微信授权登陆api java 编辑:程序博客网 时间:2024/05/18 22:13

看了《MySQL核心技术手册》,在这里整理一下知识点。

安全、用户语句和函数

用户的访问权限可以是全局层级(服务器上的所有数据库),也可以是数据库层级、表层级和列层级。

用户的权限存储在授权表中,位于服务器的mysql数据库中:
user 全局级权限
db 数据库层级权限
tables_priv 表层级权限
column_priv 列层级权限

MmySQL相关语句

  1. CREATE USER:在服务器上创建新用户账户。@后跟主机IP地址或主机名,IDENTIFIED BY后跟密码,但CREATE USER无法指定用户权限,需要再使用GRANT语句设置权限。
    如:
CREATE USER 'xiaohui'@'localhost' IDENTIFIED BY '123456';
  1. DROP USER :删除MySQL服务器的用户账户,使用该语句,需要拥有包含用户账户信息和权限的mysql数据库的CREATE USER 和DELETE权限。
DROP USER 'xiaohui'@'localhost';
  1. FLUSH:可以清除并重载MySQL临时缓存。必须拥有RELOAD权限。
FLUSH PRIVILEGES; //重新载入用户权限
  1. GRANT:创建新增用户,并授予用户权限。
//授予所有基本权限 WITH GRANT OPTION:令用户具备GRANT权限GRANT ALL PRIVILEGES ON *.* TO 'xiaohui'@'localhost' IDENTIFIED BY '123456' WITH GRANT OPTION//授予oa数据库的所有表的selectupdate权限GRANT SELECT,UPDATE ON oa.* TO 'xiaohui'@'localhost' IDENTIFIED BY '123456' 
  1. RENAME USER:修改用户名或主机
RENAME USER 'xiaohui'@'localhost' TO 'xiaohui2'@'localhost'
  1. SET PASSWORD:修改密码
SET PASSWORD FOR 'xiaohui2'@'localhosst' = PASSWORD('12345678')

相关函数

  1. CURRENT_USER():当前的用户名和主机

数据库和表模式语句

添加新列

//加到表的末尾ALTER TABLE `user` ADD COLUMN NAME VARCHAR(10)//加到表的开头ALTER TABLE `user` ADD COLUMN NAME VARCHAR(10) FIRST //加到id列后ALTER TABLE `user` ADD COLUMN NAME VARCHAR(10) AFTER id 

添加索引

//基于name列前五个字符和id列的索引name_idALTER TABLE `user` ADD INDEX name_id (NAME(5),id)

添加外键

ALTER TABLE `user` ADD FOREIGN KEY user_role (role_id) REFERENCES `role` (id) ON DELETE SET NULL;

修改列名和类型

ALTER TABLE `user` CHANGE COLUMN NAME VARCHAR(10) newname VARCHAR(20);//modify不可修改列名ALTER TABLE `user` MODIFY COLUMN NAME VARCHAR(20);

删除列

ALTER TABLE `user` DROP COLUMN NAME

删除索引、主键和外键

ALTER TABLE `user` DROP INDEX name_id;//若主键自增 先去掉自增 在删除ALTER TABLE `user` CHANGE id id int ,DROP PRIMARY KEY id;ALTER TABLE `user` DROP FOREIGN KEy role_id;

修改表名

ALTER TABLE `user`RENAME TO newuser;
0 0
原创粉丝点击