当前位置: 首页 > news >正文

MySQL基本命令--系统+用户+表

前言:在当今数据驱动的时代,关系型数据库依然是构建信息系统的中坚力量,而MySQL作为开源领域中最广泛使用的数据库管理系统之一,以其高性能、稳定性和易用性赢得了开发者和企业的青睐。无论是在小型博客系统中承担数据存储职责,还是在大规模电商平台中支撑复杂的业务逻辑,MySQL都展现出了卓越的灵活性和强大的扩展能力。

本文将作为你学习MySQL的开头,围绕MySQL的库命令和表命令进行讲解,希望您能在本文中找到有价值的内容。

一 关于MySQL的一些概念和误区

1.1 概念误区

        我们平常都说MySQL数据库,但其实这样说是不对的。

        我们平常说的MySQL,指的是是MySQL数据库管理系统。

也就是说,MySQL是管理多个数据库的系统。

在这个系统中:

  1. 一个MySQL可以同时存放多个数据库,理论上一个项目就对应一个数据库 。
  2. 一个 数据库中还可以同时包含多个数据表,而数据表才是真正用于存放数据的位置。
  3. 一个数据表可以拆分成多个字段,每个字段就是一个属性 。 
  4. 一个数据表除了字段以外,还有很多行,每一行都是一条完整的数据。

1.2 MySQL的语句分类

        MySQL系统对数据库的管理,也是通过命令行语句来进行管理的,基本上分为四种类型。

  1. DDL(Data Definition Languages)语句:数据定义语言 ,这些语句定义了不同的数据段,数据库,表,列,索引等数据库对象的定义。常用的语句关键字主要包括:create,drop,alter,rename,truncate
  2. DML(Data Manipulation Languages)语句:数据操纵语句 ,用于添加,删除,更新和查询数据库记录,并检查数据完整性,常用的语句关键字有:insert,delete,update等等
  3. DCL(Data Control Languages)语句:数据控制语句 ,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库,表,字段,用户的访问权限和安全级别。主要的语句的关键字包括:grant,revoke等等
  4. DQL(Data Query Languages)语句:数据查询语句 ,用于从一个或多个表中检索信息。主要的语句关键字包括:select 。

二 MySQL的系统命令(以ubuntu系统为例)

2.1 查看mysql服务

查看mysql是否在运行中:

sudo systemctl status mysql

如: 

 又如:

2.2 mysql服务的启动和停止

在linux命令行中输入:

sudo systemctl start mysql //启动服务
sudo systemctl stop mysql  //停止服务‌

如下:

2.3 数据库的登录 

  mysql -u 用户名 -p //回车后输入密码当需要连接到别的主机时,需要加上: -h  机器IP

如下:

2.4 MySQL的退出

登入mysql后,在mysql命令行输入quit,即可成功退出

二 MySQL的用户管理

注:以下所有命令,都在MySQL环境下执行,且大多数命令需要在MySQL管理员账户下,即root账户下(若不知道root账户密码请看这篇文章Linux 安装MySQL(Cenots版本)_mysql linux版本-CSDN博客)

2.1 为什么MySQL需要用户和用户权限?

        我们都知道,MySQL是对数据库的一种管理系统,假设我们有成百上千条数据库,而只用我买的管理员账号,查看所有的数据,是不是会影响查看速率呢?

        因此,MySQL中创建用户,是让用户和所管理的数据库建立某种关系,以此来摒弃不需要查看的数据库,提高速率。

        那么为什么需要权限呢?

        假设张三去完成A项目,李四去完成B项目,张三和李四是组内竞争和借鉴关系,因此李四获得了A项目数据库的查看和管理权限,并且在A项目上线的前一天,把张三的所有数据删了。张三该怎么办?

        因此只使用用户,是存在安全隐患的,我们必须设置一些权限,以避免安全隐患。

2.2 新建用户

命令:

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

解析:

  1. username:你将创建的用户名 。 

  2. host:指定该用户在哪个主机上可以登陆 。如果是本地用户可用localhost ;  如果想让该用户可以从任意远程主机登陆,可以使用通配符%;如果想指定主机登录,则可指定IP地址。

  3. password:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器(受MySQL密码策略影响,设置的密码可能需要符合密码策略)

例如:

1  密码过于简单

2  创建用户成功

3 创建其它用户(这里不再贴图展示)

CREATE USER 'usertest02'@'192.127.0.1' IDENTIFIED BY '123456';//需要符合密码策略
CREATE USER 'usertest02'@'%' IDENTIFIED BY ''; //需要符合密码策略

2.3 查看所有用户

        这里其实属于库方面的知识,因为MySQL本身管理众多数据库,那么我们的用户信息是否也在某个数据库中呢?

        答案是是的,所有我们使用库语言去查询数据库中的用户信息(我们在这个章节不详细解释语句,在后续章节解释)。

     2.2.1   直接从库中表查找
 

SELECT user, host FROM mysql.user;

结果如下:
 

2.4 用户授权

        命令:

GRANT privileges ON databasename.tablename TO 'username'@'host'

 说明:

  1. privileges:用户的操作权限,如SELECT(查看)INSERT(插入)UPDATE(更新)等,如果要授予所的权限则使用ALL。
  2. databasename:数据库名,如果要授予该用户对所有数据库操作权限可写为*。
  3. tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.* 。

例如:

GRANT SELECT, INSERT ON test.user TO 'usertest02'@'%';
GRANT ALL ON *.* TO 'usertest03'@'127.0.0.1';
GRANT ALL ON test1.* TO 'usertest04'@'%';

注意:用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:

GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;

但极其不建议这么做,因为其抢占了root用户的权限,因此也不给演示。 

2.5 查看权限

在 MySQL 中,可以使用以下命令查看用户的权限:

2.5.1 查看当前登录用户的权限

SHOW GRANTS;

 2.5.2 查看指定用户的权限

SHOW GRANTS FOR 'username'@'host';
  • username:要查看权限的用户名。
  • host:用户的主机地址,例如 localhost 或 %(表示所有主机)

2.6 设置与更改用户密码

命令:


ALTER USER 'username'@'host' IDENTIFIED BY 'newpassword';

newpassword:新密码。

例如:

2.7 撤销用户权限 

命令:

REVOKE privilege_type ON database_name.table_name FROM 'username'@'host';

说明:

  1. privilege_type
    • 要撤销的权限类型,例如 SELECTINSERTUPDATEALL PRIVILEGES 等。
  2. database_name.table_name
    • 指定权限作用的数据库和表。
    • 使用 *.* 表示所有数据库和表。
  3. 'username'@'host'
    • 指定要撤销权限的用户。
    • 'host' 通常是 localhost 或 %(表示所有主机)。

例如: 

2.8 删除用户 

命令:
 

DROP USER 'username'@'host';

三 MySQL库命令

   在本章节中,你会看到很多用 [ ] 围起来的语句,这些语句属于额外扩展内容,可以加入也可以删除,取决于你的具体需求。

3.1 显示可用数据库

SHOW databases;

显示所有数据库。 

3.2 创建数据库

基本语法:

create database [if not exists] databasename [default charset=utfname] ;
  1. databasename : 要创建的数据库名字。
  2. if not exists : 一般而言,一个数据库如果存在,则不能创建和其名字相同的数据库,如果一定要创建则会报错。这个语句的作用是在创建前检查是否有同名数据库,如果有则不创建,进而避免报错。
  3.  default charset=codesetname 指定数据库的编码格式,其作用是是定义字符的存储和解析方式,确保多语言数据的正确处理 。codesetname 编码集名称, 不考虑这么多,优先使用 UTF-8‌:现代数据库(如 MySQL 推荐 utf8mb4

例如:
 

 

3.3 修改数据库


        在MySQL5以后的版本中,MySQL不支持更改数据库的名称。我们所谓的修改数据库主要修改的是数据库的编码格式 .。

使用方法:

alter database databasename default charset=codesetname;

例如:

3.4 数据库的删除 

使用格式:
 

drop database databasename;

3.5 查看数据库建表语句 

使用说明:
 

show create database databasename [\G] ;
  1.  \G以另一种形式显示。

用例:

 

相关文章:

  • 搭建动态SQL取数
  • 【Token系列】02 | Embedding是怎么“长出来”的?从查表到训练过程全解
  • JavaScript基础知识合集笔记1——数据类型
  • Qt开发:QSettings的介绍和使用
  • 如何下载VSCode插件市场为VSIX文件
  • 2025第十六届蓝桥杯省赛第二场(京津冀)JAVA B组真题回顾
  • 数据库监控功能-oracle
  • 数据分析岗位-相关知识
  • Spring 学习笔记之 @Transactional 异常不回滚汇总
  • javase和java有什么区别
  • 7.学习笔记-Maven进阶(P75-P89)-进度(p75-P80)
  • Python----深度学习(基于DNN的PM2.5预测)
  • Win下Pycharm运行/调试配置脚本形参执行替换Linux下终端执行,进行调试需要注意的
  • Vue Composition API 与 Options API:全面对比与使用指南
  • 《人件》第三章 正确的人
  • 2025.04.26-美团春招笔试题-第四题
  • 升级 Spring Boot CLI
  • windows上的 Vmware Workstation 环境搭建
  • cloud项目同一个服务,执行不同业务需求,nacos进行分组
  • 6.Geometric Intersection (几何求交)- Preliminary
  • 第一集丨《无尽的尽头》值得关注,《榜上佳婿》平平无奇
  • 2025厦门体育产业采风活动圆满举行
  • 清华成立人工智能医院,将构建“AI+医疗+教育+科研”闭环
  • 生于1987年,万宏宇已任内蒙古鄂温克旗委常委
  • 美称中美贸易谈判仍在进行中,外交部:美方不要混淆视听
  • 中国与肯尼亚签署共同发展经济伙伴关系框架协定