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

MySQL数据库——概述及最基本的使用

目录

前言

一、数据库——数据的“智慧仓库”

1、数据库作用

2、数据库分类

3、数据库“黑话”

二、MySQL——登录、建表、管理用户

1、登录

2、退出登录

3、创建数据库

4、列出数据库

5、选择数据库

6、列出库中表

7、查看表结构

方法①

方法②

8、创建并查看用户

①想给别人开个MySQL账号

②看看数据库里有哪些用户

③查看当前登录的用户

9、查看用户权限

①查看当前用户权限

②查看指定用户权限

10、用户授权

11、撤销权限

12、删除用户


前言

嘿,屏幕前的你是不是也曾被 “数据库”“MySQL” 这些名词搞得晕头转向?

别担心,今天带你从数据库的前世今生,一路玩转 MySQL 的实用操作

让你从此对数据库不再陌生!

没有安装MySQL的同学可以参考这篇文章

MySQL下载及安装(Windows 11)-CSDN博客https://blog.csdn.net/qq_73698057/article/details/151074220?spm=1001.2014.3001.5502

一、数据库——数据的“智慧仓库”

数据库顾名思义

就是专门用来存放、管理海量数据的一个仓库

本质是个文件系统

1、数据库作用

  • 持久化

把数据保存到可掉电式存储设备中以供之后使用

可掉电式:即使断电或者关闭设备,存储的数据也不会丢失

区别于内存(RAM),断电后数据会丢失

  • 实现数据共享
  • 减少数据的冗余度

由于数据共享,用户们无需再各自建立文件,减少了大量重复数据

  • 数据的独立性

数据库的逻辑结构和应用程序相互独立

数据物理结构的变化不影响数据的逻辑结构

数据的逻辑结构:表、字段、关系等等

数据的物理结构:数据在磁盘上的存储方式、存储位置等物理细节对用户透明

        

举个例子

逻辑结构 和 应用程序 相互独立:

为一个表添加一个新的列之后

再次查询这个表依旧可以查到

不会因为它改变了字段就查不到了

-- 原来的用户表
CREATE TABLE users (id INT PRIMARY KEY,name VARCHAR(50),email VARCHAR(100)
);-- 应用程序查询
SELECT id, name, email FROM users;-- 后来添加了新字段
ALTER TABLE users ADD COLUMN phone VARCHAR(20);-- 应用程序代码不需要改变,仍然可以正常工作
SELECT id, name, email FROM users;

物理结构 和 逻辑结构 相互独立:

更换存储引擎

或者文件存储位置变化 等等

都不影响查询结果

-- 原来使用MyISAM存储引擎
CREATE TABLE orders (id INT PRIMARY KEY,user_id INT,amount DECIMAL(10,2)
) ENGINE=MyISAM;-- 后来改为InnoDB存储引擎
ALTER TABLE orders ENGINE=InnoDB;-- 应用程序的SQL语句完全不需要改变
SELECT * FROM orders WHERE user_id = 123;
原来数据文件存储在:/var/lib/mysql/
后来迁移到:/data/mysql/应用程序完全不需要知道这个变化,查询语句依然正常工作。
  • 数据实现集中控制
  • 故障恢复

类似于地球的自我调节能力

只不过数据库自带的故障恢复能力更精确更快速且可控

2、数据库分类

数据库可以按很多方式分类,这里我们先来看看按数据模型能分为什么:

3、数据库“黑话”

  • DB(数据库)
  • DBMS(数据库管理系统)
  • RDBMS(关系数据库管理系统)
  • Table(表)—— 存储数据的基本单位,类似Excel里的表格
  • Row(行)—— 一条完整的数据,比如一个人的姓名、性别、年龄
  • Column(列)—— 数据的类别
  • SQL(结构化查询语言)—— 和数据库沟通的语言,分为五类

二、MySQL——登录、建表、管理用户

类似于Java的VScode、IDEA

数据库也有便捷的图形化界面工具供程序员使用

这里我用的是Navicat

如果不使用Navicat之类的软件

使用终端的话

就需要手动登录、退出数据库

1、登录

命令格式:

mysql -h'HOST_NAME' -P'PORT' -u'USERNAME' -p'PASSWORD'

参数说明:

  • -h:后面跟主机名,比如 “localhost” 或 “127.0.0.1”(代表本机)
  • -P:后面跟端口号,MySQL 默认是 3306
  • -u:后面跟用户名,比如默认的 “root”(管理员账户)
  • -p:后面跟密码,注意-p和密码之间不能有空格

举例:

mysql -hlocalhost -P3306 -uroot -p123456

如果你的MySQL和你用的客户端在同一台电脑上

-hlocalhost-P3306还能省略:

mysql -uroot -p123456

        

密码建议在下一行输入,保证安全

即输入-p之后回车

终端会提示你“Enter password:”

2、退出登录

命令(二选一):

exit
quit

3、创建数据库

命令格式:

create database database_name [character set utf8];

参数说明:

        “database_name” 是你给数据库起的名字

        后面的 “character set utf8” 是可选的,用来设置数据库的编码为 utf8,避免中文乱码。

举例:创建一个名叫“library”、编码为 utf8 的数据库

create database briup character set utf8;//简化:
create database briup charset=utf8;

4、列出数据库

命令:

show databases;

然后回车即可

5、选择数据库

命令格式:

use database_name;

举例:要操作“library”数据库

use library;

6、列出库中表

命令:

show tables;

7、查看表结构

想详细查看某个表有哪些列、列的类型等信息,有两种方法:

方法①

命令格式:

desc table_name;

举例:查看“s_book”表的结构

desc s_book;

方法②

命令格式:

show columns from table_name;

举例:查看“s_manager”表的列

show columns from s_manager;

8、创建并查看用户

①想给别人开个MySQL账号

命令格式:

CREATE USER 'user_name'@'host_name' IDENTIFIED BY [PASSWORD] 'password_value';

参数说明:

  • user_name:用户名
  • host_name:主机名,指定用户能从哪个主机登录。如果没指定,默认是 “%”,表示可以从任意主机登录
  • PASSWORD:可选参数,如果用明文设置密码,就不用写这个关键字;如果知道密码的散列值,想直接用散列值设置密码,就加上这个关键字
  • password_value:密码

举例:创建一个用户名是“people”,密码是“123456”,允许从任意主机登录的用户

CREATE USER 'people'@'%' IDENTIFIED BY '123456';

②看看数据库里有哪些用户

命令:

select user from mysql.user;

③查看当前登录的用户

命令:

select user();

9、查看用户权限

①查看当前用户权限

命令:

show grants;

②查看指定用户权限

命令格式:

show grants for 'user_name';

举例:查看“people@%”的用户权限

show grants for 'people';

10、用户授权

只有超级用户才可以授权(比如root)

给用户分配操作数据库的权限

命令格式:

GRANT privileges ON database_name.table_name TO 'user_name'@'host_name';

参数说明:

  • privileges:要授予的权限,比如 SELECT(查询)、INSERT(插入)、UPDATE(修改)、DELETE(删除),也可以用 “all” 表示所有权限
  • database_name.table_name:指定权限作用的数据库和表。“.” 表示所有数据库的所有表,“briup.*” 表示 “briup” 数据库的所有表
  • user_name@host_name:要授权的用户

举例:给用户“people@%”授予“library”数据库的查询和插入权限

GRANT SELECT,INSERT ON library.* TO 'people'@'%';

给“people@%”用户授予所有数据库的所有权限

GRANT all on *.* to 'people'@'%';

11、撤销权限

同样也是超级用户才可以

命令格式:

REVOKE ALL PRIVILEGES ON database_name.table_name FROM 'user_name'@'host_name';

举例:收回“people@%”用户在“library”数据库上的所有权限

REVOKE ALL PRIVILEGES ON library.* FROM 'people'@'%';

12、删除用户

命令格式:

DROP USER user;

举例:删除“people@%”用户

drop user 'people'@'%';//简化
drop user people;

看了这么多不难发现

SQL语言的命令通常习惯大写

这是为了提高可读性

当然,小写也没什么问题

http://www.dtcms.com/a/364075.html

相关文章:

  • Netty从0到1系列之NIO
  • 命令小工具
  • 文华财经wh6波段多空指标-变色K做多做空信号,抄底逃顶主图幅图
  • 从入门到实战:Linux sed命令全攻略,文本处理效率翻倍
  • IsaacLab训练机器人
  • 保障系统稳定运行!瑞芯微RK3506Watchdog看门狗配置与使用攻略
  • 【系统架构师设计(9)】需求工程全生命周期管理:从定义到变更的完整体系
  • 第2.7节:多模态大模型之Midjourney
  • 《面试必备:JVM垃圾回收机制深度解析(附高频问题应对)》
  • 【线段树】3525. 求出数组的 X 值 II|2645
  • solidity从入门到精通 第七章:高级特性与实战项目
  • 机器视觉的平板电脑OCA全贴合应用
  • 修改⽂件之git
  • 企业微信AI在银行落地的3个实用场景:智能机器人、搜索、文档的具体用法
  • 了解名词ARM Linux的SOC
  • 枚举和泛型
  • 高性能接口实现方案
  • 刷题日记0902
  • 38.Ansible判断+实例
  • 硬件:51单片机
  • 【Unity Shader学习笔记】(一)计算机图形学
  • shell脚本案例
  • 【Unity Shader学习笔记】(二)图形显示系统
  • nmap扫描端口,netstat
  • 二叉树经典题目详解(下)
  • CH01-1.1 Exercise-Ordinary Differential Equation-by LiuChao
  • 猫猫狐狐的“你今天有点怪怪的”侦察日记
  • 标贝科技参编《数据标注产业发展研究报告(2025 年)》
  • ARM裸机开发(GPIO标准库开发)
  • Java搭建高效后端,Vue打造友好前端,联合构建电子采购管理系统,实现采购流程电子化、自动化,涵盖采购全周期管理,功能完备,附详细可运行源码