MYSQL创建用户
我们现在默认使用的都是
root
用户,超级管理员,拥有全部的权限。但是,一个公司里面的数据库服务器上面可能同时运行着很多个项目的数据库。所以,我们应该可以根据不同的项目建立不同的用户,分配不同的权限来管理和维护数据库。
创建用户
CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
用户名:将创建的用户名
主机名:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost
,如果想让该用户可以从任意远程主机登陆,可以使用通配符%
密码:该用户的登录密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器
例子:
‐‐ user1用户只能在localhost这个IP登录mysql服务器
CREATE USER 'user1'@'localhost' IDENTIFIED BY '1234';
‐‐ user2用户可以在任何电脑上登录mysql服务器
CREATE USER 'user2'@'%' IDENTIFIED BY '1234';
创建一个数据库
创建一个数据库(也可用自己之前创建好的),以便在给创建的用户进行授权。
CREATE DATABASES KKK;//创建一个名为“kkk”的数据库
授权
用户创建之后,没什么权限,需要给用户授权
GRANT 权限1, 权限2… ON 数据库名.表名 TO ‘用户名’@‘主机名’;
特别注意:
- GRANT授权关键字
- 授予用户的权限,如SELECT,INSERT,UPDATE等
- 如果要授权所有的权限则使用
ALL
【谨慎授权】 - 数据库名.表名:该用户可以操作哪个数据库的哪些表。如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如
*.*
- ‘用户名’@‘主机名’:给哪个用户授权
例子:
- 给
user1
用户分配对test
这个数据库操作的权限
GRANT CREATE,ALTER,DROP,INSERT,UPDATE,DELETE,SELECT ON test.* TO 'user1'@'localhost';
- 给
user2
用户分配对所有数据库操作的权限
GRANT ALL ON *.* TO 'user2'@'%';
撤销授权
REVOKE 权限1, 权限2… ON 数据库.表名 FROM ‘用户名’@‘主机名’;
例子:
撤销kfm用户对kkk数据库操作的权限
REVOKE ALL ON kkk.* FROM 'kfm'@'%';
查看权限
SHOW GRANTS FOR ‘用户名’@‘主机名’;
例子:
查看`kfm用户的权限
SHOW GRANTS FOR 'kfm'@'%';
删除用户
DROP USER ‘用户名’@‘主机名’;
例子:
DROP USER 'kfm'@'%';
查看表结构
– 查看表结构
DESCRIBE dept;
DESC dept;
DESCRIBE dept;
DESC dept;
这里使用’DESCRIBE’或者’DESC’均可
练习:
创建一张user
表, 可以存储以下内容:姓名,性别,年龄,生日,电话,家庭住址,邮箱
CREATE TABLE `user`(
`name` VARCHAR(20) COMMENT '姓名',
`gender` CHAR(1) COMMENT '性别',
`age` INT COMMENT '年龄',
`birthday` DATE COMMENT '生日',
`phone` VARCHAR(20) COMMENT '电话',
`address` VARCHAR(50) COMMENT '住址',
`email` VARCHAR(20) COMMENT '邮箱'
);
创建和某表结构一样的表
--创建和user结构一样的表
CREATE TABLE d LIKE user;
-- 创建表
CREATE TABLE t AS select * from user;
删除表
DROP TABLE table_name;
这里的’‘table_name’'是你要删除的表名
添加列
--ALTER TABLE 表名 ADD 列名 数据类型;
ALTER TABLE t ADD id INT;
修改列属性
ALTER TABLE t MODIFY id VARCHAR(20);
修改列名
ALTER TABLE t CHANGE id ss VARCHAR(20);
t 是表的名称,id 是原始列名,ss 是您想要将列名修改为的新名称,VARCHAR(20) 是新的列定义。
请注意,这个语句不仅仅修改了列名,还修改了列的数据类型和其他属性(例如长度)。在执行此操作之前,请确保了解变更的影响,并备份相关的数据。
删除列
ALTER TABLE t DROP ss;
重命名表
RENAME TABLE t TO a;