当前位置: 首页 > 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.xdnf.cn/news/1437247.html

相关文章:

  • Python实现浅拷贝的常用策略
  • Vite 插件 @vitejs/plugin-legacy 深度解析:旧浏览器兼容指南
  • 【Linux】信号量
  • 09.01总结
  • LeetCode算法日记 - Day 30: K 个一组翻转链表、两数之和
  • 基于Springboot和Vue的前后端分离项目
  • playwright+python UI自动化测试中实现图片颜色和像素对比
  • milvus使用
  • Hard Disk Sentinel:全面监控硬盘和SSD的健康与性能
  • Python学习-day4
  • 2026届长亭科技秋招正式开始
  • 算法 --- 模拟
  • NLP学习系列 | Transformer代码简单实现
  • Zephyr如何注册设备实例
  • [Java]PTA:jmu-Java-01入门-取数字浮点数
  • 自学嵌入式第三十三天:网络编程-UDP
  • Day19(前端:JavaScript基础阶段)
  • 分布式中防止重复消费
  • Spring Security的@PreAuthorize注解为什么会知道用户角色?
  • 开悟篇Docker从零到实战一篇文章搞定
  • 基于Python毕业设计推荐:基于Django的全国降水分析可视化系统
  • 战略咨询——解读81页中小企业企业战略规划方案【附全文阅读】
  • go-mapus最简单的离线瓦片地图协作
  • C++后端开发重点知识点
  • Adafruit_nRF52_Bootloader 使用 uf2
  • Spring Cloud Config 核心原理
  • 【C++】编写通用模板代码的重要技巧:T()
  • CICD的持续集成与持续交付和Zabbix
  • 【C++】15. ⼆叉搜索树
  • 室内定位---apriltag 视觉定位demo