当前位置:网站首页>MySQL权限管理
MySQL权限管理
2022-08-08 20:02:00 【InfoQ】
权限管理
用户权限分为非常多种,包括全局权限、库权限、表权限、列权限等。
-- 赋予权限(GRANT)
mysql> GRANT SELECT,INSERT ON *.* -- 赋予用户选择插入权限(所有库的所有表)
-> TO 'boy'@'localhost' -- 不存在将新建用户
-> IDENTIFIED BY '123456'
-> WITH GRANT OPTION; -- (可选)允许用户转授权限
-- 撤消权限(REVOKE)
mysql> REVOKE INSERT ON *.*
-> FROM 'boy'@'localhost';
-- 查看权限
mysql> SELECT Host,User,Select_priv,Grant_priv
-> FROM mysql.user
-> WHERE User='testUser';Copy to clipboardErrorCopied
数据库管理
MySQL 内划分为多个互相独立的数据存储区域,调用数据库指令时必须提前声明要使用的数据库。
- 数据库选项信息
-- 查看所有数据库
mysql> SHOW DATABASES;
-- 进入/切换数据库
mysql> USE mydb;
-- 查看当前数据库
mysql> SELECT DATABASE();
-- 创建数据库
mysql> CREATE DATABASE [IF NOT EXISTS] mydb;
mysql> CREATE DATABASE [IF NOT EXISTS] mydb CHARACTER SET utf8mb4;
-- 删除数据库
mysql> DROP DATABASE [IF EXISTS] mydb;
-- 查看数据库选项信息
mysql> SHOW CREATE DATABASE mydb;
-- 修改数据库选项信息
mysql> ALTER DATABASE mydb CHARACTER SET utf8;Copy to clipboardErrorCopied
表管理
- 表属性
如果表标记为 TEMPORARY 则为临时表,在连接断开时表会消失。
- 列属性
表操作
-- 查看所有表
mysql> SHOW TABLES;
-- 创建表
mysql> CREATE [TEMPORARY] TABLE [IF NOT EXISTS] student
(
id INT(8) PRIMARY KEY AUTO_INCREMENT=20190001,
name VARCHAR(50) NOT NULL,
sex INT COMMENT 'Male 1,Female 0',
access_time DATE DEFAULT GETDATE(),
major_id INT FOREIGN KEY REFERENCES major(id)
)ENGINE=InnoDB;
mysql> CREATE TABLE grade
(
student_id INT,
course_id INT,
grade INT,
PRIMARY KEY (student_id,course_id),
CONSTRAINT fk_grade_student FOREIGN KEY (student_id) REFERENCES student(id),
CONSTRAINT fk_grade_course FOREIGN KEY (course_id) REFERENCES course(id)
);
-- 删除表
mysql> DROP TABLE [IF EXISTS] student;
-- 清空表数据(直接删除表,再重新创建)
mysql> TRUNCATE [TABLE] student;
-- 查看表结构
mysql> SHOW CREATE TABLE student;
mysql> DESC student;
-- 修改表属性
mysql> ALTER TABLE student ENGINE=MYISAM;
-- 重命名表
mysql> RENAME TABLE student TO new_student;
mysql> RENAME TABLE student TO mydb.new_student;
-- 复制表
mysql> CREATE TABLE new_student LIKE student; -- 复制表结构
mysql> CREATE TABLE new_student [AS] SELECT * FROM student; -- 复制表结构和数据
-- 检查表是否有错误
mysql> CHECK TABLE tbl_name [, tbl_name] ... [option] ...
-- 优化表
mysql> OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...
-- 修复表
mysql> REPAIR [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ... [QUICK] [EXTENDED] [USE_FRM]
-- 分析表
mysql> ANALYZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [, tbl_name] ...Copy to clipboardErrorCopied
列操作
-- 添加字段
mysql> ALTER TABLE student ADD [COLUMN] age INT; -- 默认添加在最后一行
mysql> ALTER TABLE student ADD [COLUMN] age INT AFTER sex; -- 添加在指定字段后
mysql> ALTER TABLE student ADD [COLUMN] age INT FIRST; -- 添加在第一行
--修改字段
mysql> ALTER TABLE student MODIFY [COLUMN] id SMALLINT; -- 修改字段属性
mysql> ALTER TABLE student CHANGE [COLUMN] id new_id INT; -- 修改字段名
-- 删除字段
mysql> ALTER TABLE student DROP [COLUMN] age;
-- 编辑主键
mysql> ALTER TABLE student ADD PRIMARY KEY(id,age);
mysql> ALTER TABLE student DROP PRIMARY KEY;
-- 编辑外键
mysql> ALTER TABLE student ADD CONSTRAINT fk_student_class FOREIGN KEY(cid) REFERENCES class(id);
mysql> ALTER TABLE student DROP FOREIGN KEY fk_student_class;
边栏推荐
- 从 VLAN 到 IPVLAN: 聊聊虚拟网络设备及其在云原生中的应用
- 1259 Alice and Bob
- 黑猫带你学Makefile第4篇:Makefile中变量的使用
- PyTorch入门:(五)模型的搭建
- RADIUS服务器的演变过程
- 买股票安全吗 资金能取出来吗
- LeetCode #104.二叉树的最大深度
- The WPF main form calls User32's SetWindowPos to set the form to the top, which will cause the problem of grabbing the focus with other forms
- 梅科尔工作室OpenHarmony设备开发培训笔记-第六章学习笔记
- 方舟建筑代码指令大全
猜你喜欢
随机推荐
传统和加密域名概述
记一次坎坷的调试|Mosquitto通过TLS连接EMQ时阻塞的问题
稀疏矩阵转置--C语言
箭头函数this指向的解释
iMeta | 深圳先进院戴磊组开发可同时提取共存菌株的组成和基因成分谱的菌株分析工具...
LeetCode_2_两数相加
PyTorch入门(六):模型的训练套路
方舟单机/管理员生物指令代码大全
Codeforces Round #707 (Div. 2) C(抽屉原理)
1088 N的阶乘
【2023秋招面经】20220805安恒信息实习
如何用精益敏捷组合管理,提升研发效能?软件研发团队必看!
How can recommender systems be trusted?A review of the latest "Trusted Recommender System" from Rutgers University, a 43-page pdf explaining the composition and technology of trusted RS
继承的详解
golang for循环详解
图的几种存储方式
Ansible自动化运维工具(二)playbook剧本
面试面到自闭,字节软件测试岗五轮面试,四个小时灵魂拷问...
分门别类输入输出,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang基本数据类型和输入输出EP03
golang流程控制:if分支、switch分支和fallthrough switch穿透