Linux中,MySQL数据库管理

使用MySQL数据库

查看数据库结构

MySQL是一套数据库管理系统,在每台MySQL服务器中,均支持运行多个数据库,每个数据库相当于一个容器,其中存放着许多表,如图2.1所示。

下面分别介绍查看数据库、表结构的相关操作语句。
1.查看当前服务器中的数据库
SHOW DATABASES 语句:用于査看当前 MySQL 服务器中包含的数据库,MySQL 的每一条操作语句都是以分号(;)结束的。
经初始化后的MySQL服务器,默认建立了四个数据库:test、mysql、information_schema和 performance_schema(其中 mysql 是 MySQL 服务正常运行所需的数据库,其中包含了用户认证相关的表),执行以下操作可以进行查看。

2.查看当前数据库中有哪些表
SHOW TABLES 语句:用于查看当前所在的数据库中包含的表。在操作之前,需要先使用 USE 语句切换到所使用的数据库。例如,执行以下操作可以显示 mysql数据库中包含的所有表。

3.查看表的结构
DESCRIBE语句:用于显示表的结构,即组成表的各字段(列)的信息。需要指定“数据库名.表名”作为参数;若只指定表名参数,则需先通过 USE语句切换到目标数据库。例如,执行以下操作可以查看 mysql 数据库中的 user 表的结构,与直接执行“DESCRIBEmysql.user;”语句的效果相同。

数据库目前标准的指令集是 SQL。SQL 是 Structured Query Language 的缩写,即结构化查询语言。它是 1974 年由 Boyce 和 Chamberlin 提出来的,1975~1979 年 IBM 公司研制的关系数据库管理系统原型 SystemR实现了这种语言。经过多年的发展,SQL语言得到了广泛的应用。
SQL语言主要由以下几部分组成。
DDL(Data Definition Language,数据定义语言):用来建立数据库、数据库对象和定义字段,如 CREATE、ALTER、DROP。
DML(Data Manipulation Language,数据操纵语言):用来插入、删除和修改数据库中的数据,如INSERT、UPDATE、DELETE。
DQL(Data Query Language,数据査询语言):用来查询数据库中的数据,如 SELECTDCL(Data Control Language,数据控制语言):用来控制数据库组件的存取许可、存取权限等,如 COMMIT、ROLLBACK、GRANT、REVOKE。

创建及删除数据库和表

1.创建新的数据库
CREATE DATABASE 语句:用于创建一个新的数据库,需指定数据库名称作为参数。
例如,执行以下操作可以创建一个名为 auth 的数据库。

刚创建的数据库是空的,其中不包含任何表,在/usr/localmysql/data 目录下会自动生成一个与新建的数据库名相同的文件夹。

创建新的表

CREATE TABLE 语句: 用于在当前数据库中创建新的表,需指定数据表名称作为参数,并定义该表格所使用的各字段,基本格式如下所示。

删除表

DROP TABLE 语句:用于删除数据库中的表,需要指定“数据库名.表名”作为参数;若只指定表名参数,则需先通过执行“USE"语句切换到目标数据库。例如,执行以下操作可以删除 auth 数据库中的 users 表。

.删除一个数据库
DROP DATABASE 语句:用于删除指定的数据库,需要指定数据库名作为参数。例如,执行以下操作可以删除名为 auth 的数据库。

管理表中的数据记录

1.插入数据记录
INSERT INTO 语句:用于向表中插入新的数据记录,语句格式如下所示。

2.查询数据记录
SELECT语句:用于从指定的表中查找符合条件的数据记录。MySQL数据库支持标准的 SQL 查询语句,语句格式如下所示。

3.修改数据记录
UPDATE 语句:用于修改、更新表中的数据记录。语句格式如下所示。

为root更改密码

还可以在mysql库中的user表中,使用update更改root的密码。

4.删除数据记录
DELETE 语句:用于删除表中指定的数据记录,语句格式如下所示。

数据库表高级操作

清空表

使用delete from 表名;

临时表

MySQL的临时表,顾名思义,就是临时建立的表,并不会长期存在,主要用于保存一些临时数据。临时表有个特性,就是只在当前连接可见,当前连接下可执行增删改查等操作,当连接被关闭后,临时表就会被 MySQL删除,相关的资源也会被释放。
下面创建临时表 mytmp,然后插入数据,之后断开当前连接,最后重新连到 MySQL查看临时是否还存在,具体操作如下所示。

克隆表

在 MySQL的开发和维护过程中,会有原样拷贝某个数据表的需求。怎么样才能够快速、完整的拷贝数据表呢?先来看一下 CREATE TABLE new tablename AS SELECT 这个语句,具体实现的 SQL 语句如下所示。

数据库用户授权

MySQL 数据库的 root 用户账号拥有对所有数据库、表的全部权限,频繁使用 root 账号会给数据库服务器带来一定的安全风险。实际工作中,通常会建立一些低权限的用户,只负责一部分数据库、表的管理和维护操作,甚至可以对查询、修改、删除记录等各种操作做进一步的细化限制,从而将数据库的风险降至最低。


1.授予权限


GRANT语句:专门用来设置数据库用户的访问权限。当指定的用户名不存在时GRANT 语句将会创建新的用户;当指定的用户名存在时,GRANT 语句用于修改用户信息。语句格式如下所示。

使用 GRANT语句时,需要注意的事项如下
权限列表:用于列出授权使用的各种数据库操作,以逗号进行分,如"select,insert,update"。使用"all"表示所有权限,可授权执行任何操作。数据库名.表名:用于指定授权操作的数据库和表的名称,其中可以使用通配符“*”。例如,使用“auth.*"表示授权操作的对象为 auth 数据库中的所有表。
用户名@来源地址:用于指定用户名称和允许访问的客户机地址,即谁能连接、能从哪里连接。来源地址可以是域名、IP地址,还可以使用“%"通配符,表示某个区域或网段内的所有地址,如“%.bdqn.com"“192.168.1.%"等。
IDENTIFIED BY:用于设置用户连接数据库时所使用的密码字符串。在新建用户时,若省略“IDENTIFIED BY"部分,则用户的密码将为空。
执行以下操作可以添加一个名为"xiaoqi"的数据库用户,并允许其从本机访问,对auth数据库中的所有表具有查询权限,验证密码为“123456"。使用GRANT语句授权的用户记录,会保存到 mysql库的 user、db、host、tables_priv 等相关表中,无须刷新即可生效。

切换到其他 Shel 终端,以用户 xiaoqi 的身份连接数据库。在已授权的数据库上操作将被允许,否则将被拒绝。例如,允许用户 xiaoqi 查询 auth 数据库中 users 表的数据记录,但禁止查询其他数据库中的表的记录。

查看权限

SHOW GRANTS 语句:专门用来查看数据库用户的授权信息,通过FOR 子句可指定查看的用户对象(必须与授权时使用的对象名称一致),语句格式如下所示。

撤销权限

REVOKE 语句:用于撤销指定用户的数据库权限,撤销权限后的用户仍然可以连接到MySQL服务器,但将被禁止执行对应的数据库操作,语句格式如下所示。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/50570.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

探索AI的未来:看Facebook如何利用人工智能改进用户体验

人工智能(AI)正以惊人的速度改变各行各业,社交媒体也不例外。作为全球领先的社交平台之一,Facebook正在积极利用AI技术,提升用户体验并推动平台的发展。从个性化推荐到自动化内容审核,AI的应用正在重塑Face…

2024.7.26 作业

1.使用fgets统计给定文件的行号 #include <myhead.h> int main(int argc,const char *argv[]) {if(argc!2){printf("input file error!!!\n");printf("usage:./a.out fileName\n");return -1;}FILE *fpNULL; if( (fpfopen(argv[1],"r"))N…

深入解读 Java 中的 `StringUtils.isNotBlank` 与 `StringUtils.isNotEmpty`

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119@qq.com] 📱个人微信:15279484656 🌐个人导航网站:www.forff.top 💡座右铭:总有人要赢。为什么不能是我呢? 专栏导…

产品架构图的设计如果你能让老板一看明白,那么要恭喜你了!哈哈

产品架构图的设计&#xff1a;如果你能让老板一看明白&#xff0c;那么要恭喜你了&#xff01;哈哈 艾斯视觉观点认为&#xff1a;在产品开发的过程中&#xff0c;架构图是沟通产品设计理念和实现方式的重要工具。它不仅需要清晰地展示产品各组件之间的关系&#xff0c;还要能…

[前端]解决Iframe即使设置高度100%,但还是显示滚动条scrollbar的问题

前言 好烦,你看看这两个重复的滚动条. 一个是来自iframe,另一个来自父级的div(overflow: auto;) 我已经在css中设置了iframe的height: 100%;border: none;,但无论如何还是显示出了父级的scrollbar 解决 将iframe的display: block;即可. 或者vertical-align: bottom;

GIT新手提交操作

1、创建一个本地分支 进入Xshell已经拉取的该项目的项目代码路径下执行git checkout -b 姓名全拼音&#xff0c;例如&#xff1a;git checkout -b xiewei&#xff0c;当前显示已创建。 cuihengyidell-PowerEdge-T550:~/SVN/Git_R11/R11_V4.02.0_Source$ git checkout -b cuih…

【NoSQL数据库】Redis知识小册

一、缓存穿透 缓存穿透是先查Redis&#xff0c;发现缓存中没有数据&#xff0c;再查数据库。然而&#xff0c;如果查询的数据在数据库中也不存在&#xff0c;那么每次查询都会绕过缓存&#xff0c;直接落到数据库上。 解决方案一、缓存空数据 查询Redis缓存&#xff1a;首先查…

微信小程序之调查问卷

一、设计思路 1、界面 调查问卷又称调查表&#xff0c;是以问题的形式系统地记载调查内容的一种形式。微信小程序制作的调查问卷&#xff0c;可以在短时间内快速收集反馈信息。具体效果如下所示&#xff1a; 2、思路 此调查问卷采用服务器客户端的方式进行设计&#xff0c;服…

Kafka快速入门+SpringBoot简单的秒杀案例

1. 主题相关 1.1 创建主题 kafka-topics.sh --create --bootstrap-server [服务器地址] --replication-factor [副本数] --partitions [分区数] --topic [主题名]liberliber-VMware-Virtual-Platform:/home/zookeeper$ docker-compose exec kafka /bin/bash #进入kafka容器 b…

全网最详细Gradio教程系列5——Gradio Client: python

全网最详细Gradio教程系列5——Gradio Client: python 前言本篇摘要5. Gradio Client的三种使用方式5.1 使用Gradio Python Client5.1.1 安装gradio_client5.1.2 连接Gradio应用程序1. 通过URL连接2. 通过SpaceID连接3. 辅助&#xff1a;duplicate()和hf_token4. Colab Noteboo…

Java 并发编程:一文了解 Java 内存模型(处理器优化、指令重排序与内存屏障的深层解析)

大家好&#xff0c;我是栗筝i&#xff0c;这篇文章是我的 “栗筝i 的 Java 技术栈” 专栏的第 022 篇文章&#xff0c;在 “栗筝i 的 Java 技术栈” 这个专栏中我会持续为大家更新 Java 技术相关全套技术栈内容。专栏的主要目标是已经有一定 Java 开发经验&#xff0c;并希望进…

使用AI大模型统计英语四六级试题高频词汇

引子 前些年我做过商品搜索&#xff0c;当时为了优化一些搜索词和搜索关联提示&#xff0c;接触到一点NLP的知识。所以后来有一场非全日制的研究生考试&#xff0c;为了高效的复习英语单词&#xff0c;我爬取了往年的历史真题数据&#xff0c;以及其他模拟等各种试题的数据。然…

AcWing最长连续不重复子序列

哈希表就完事儿了&#xff0c;key是a[j],value是a[j]出现次数 i丢到前面&#xff0c;j丢到后面&#xff0c;然后j往后面遍历&#xff0c;每次记录a[j]出现次数 m a p [ a [ j ] ] map[a[j]] map[a[j]]&#xff0c;如果a[j]出现次数2次及其以上 m a p [ a [ j ] ] > 1 map[a[…

Element Plus 动态编辑标签Tag使用@keyup.enter与@Blur冲突问题,

这是官方文档示例代码,文档具体链接https://element-plus.org/zh-CN/component/tag.html 问题描述: 发现存在使用keyup.enter与Blur冲突问题, keyup.enter(就是按回车键)发现handleInputConfirm方法被执行了两次,下面是问题代码 <template> <div class"flex ga…

PS5测试更新推送自适应充电功能:自带充电器码

原标题&#xff1a;PS5 更新推送自适应充电功能&#xff1a;仅适用于新型号 易采游戏网7月26日消息&#xff1a;近年来&#xff0c;游戏界的科技进步日新月异&#xff0c;各大厂商不断推出新的功能和技术来吸引玩家。作为游戏机市场的领导者之一&#xff0c;索尼的PlayStation…

Docker Minio rclone数据迁移

docker minio进行数据迁移 使用rclone进行数据迁移是一种非常灵活且强大的方式&#xff0c;特别是在处理大规模数据集或跨云平台迁移时。rclone是一款开源的命令行工具&#xff0c;用于同步文件和目录到多种云存储服务&#xff0c;包括MinIO。下面是使用rclone进行数据迁移至Mi…

学习型组织:知识创造的 SECI 螺旋模型 —— 隐性知识和显性知识的转换

《创造知识的企业》的日本学者野中郁次郎用了 30 多年的时间跟踪日本企业的变化&#xff0c;揭示日本企业成功的奥秘。 在野中之前和之后&#xff0c;也有不少学者聚焦日本&#xff0c;但是&#xff0c;多数人看到的&#xff0c;只是优良的生产技术&#xff0c;企业和顾客、供…

打卡Datawhale第一天!!!

最近参加了Datawhale的一个活动学习一些有趣的知识。 官方发的教程还是挺详细的嘛&#xff0c;跟着官方教程走&#xff0c;基本没什么错误 跑模型中... 跑完咯...gpu跑得就是快 等待评分... 最后结果&#xff1a; 总结&#xff1a;这次都是跟着教程来走的 &#xff0c;希望在后…

力扣高频SQL 50题(基础版)第十八题

文章目录 力扣高频SQL 50题&#xff08;基础版&#xff09;第十八题1633. 各赛事的用户注册率题目说明思路分析实现过程准备数据实现方式结果截图 力扣高频SQL 50题&#xff08;基础版&#xff09;第十八题 1633. 各赛事的用户注册率 题目说明 用户表&#xff1a; Users --…

柯达sd卡数据丢失怎么办?分享有效数据恢复方法

随着科技的进步&#xff0c;数码相机已成为我们生活中不可或缺的一部分&#xff0c;而柯达作为摄影界的知名品牌&#xff0c;其相机及配件更是广受欢迎。然而&#xff0c;在日常使用中&#xff0c;难免会遇到数据丢失的情况&#xff0c;特别是SD卡中的数据丢失&#xff0c;常常…