MySQL学习系列一

看了《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_id
ALTER 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值