MySql数据库运维学习笔记

在这里插入图片描述
数据库运维常识
DQL、DML、DCL 和 DDL 是 SQL(结构化查询语言)中的四个重要类别,它们分别用于不同类型的数据库操作,下面为你简单明了地解释这四类语句:

1. DQL(数据查询语言,Data Query Language)

  • 定义:主要用于从数据库中查询数据,不涉及对数据的修改、插入或删除操作。
  • 常用命令SELECT 是 DQL 中最核心的命令,用于指定查询的字段、表以及查询条件等。
  • 示例:从 employees 表中查询所有员工的姓名和薪水:
SELECT name, salary FROM employees;

1.创建数据库支持中文编码 大小写不敏感(完美且严谨)

CREATE DATABASE IF NOT EXISTS users2 DEFAULT CHARSET UTF8  COLLATE utf8_general_ci;

案例:

MariaDB [(none)]> SHOW CREATE DATABASE users2;
±---------±----------------------------------------------------------------------------------------+
| Database | Create Database |
±---------±----------------------------------------------------------------------------------------+
| users2 | CREATE DATABASE users2 /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci */ |
±---------±----------------------------------------------------------------------------------------+
1 row in set (0.000 sec)

MariaDB [(none)]> show create database users;
±---------±-------------------------------------------------------------------------------------------+
| Database | Create Database |
±---------±-------------------------------------------------------------------------------------------+
| users | CREATE DATABASE users /*!40100 DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci */ |
±---------±-------------------------------------------------------------------------------------------+

2.查询我当前在那个数据库中:

select databases();

3.查看数据表结构:

desc + 数据表名;

4.查看表中所有信息:

select  * from + 表名;指定查询 (比如查询: user  host password)

2. DML(数据操作语言,Data Manipulation Language)

  • 定义:用于对数据库中的数据进行增、删、改操作。
  • 常用命令
    • INSERT:用于向数据库表中插入新的数据记录。
    • UPDATE:用于修改数据库表中已有的数据记录。
    • DELETE:用于从数据库表中删除指定的数据记录。\

1.删除一些无用的用户数据

语法:  delelte  from  数据库.数据表 where  条件;
delete from mysql.user where user='xxw' and host='192.168.153.*';    //删除mysql数据库下user表   user等于xxw  并且 host=192.168.153.*的用户数据

3. DCL(数据控制语言,Data Control Language)

  • 定义:用于控制数据库的访问权限和事务处理,确保数据库的安全性和数据完整性。
  • 常用命令
    • GRANT:用于授予用户或角色对数据库对象(如表、视图等)的特定权限。
    • REVOKE:用于撤销用户或角色已经被授予的权限。
    • COMMIT:用于提交事务,将事务中所做的所有修改永久保存到数据库中。
    • ROLLBACK:用于回滚事务,撤销事务中所做的所有修改。
  • 示例
    • 授予权限:授予用户 user1employees 表的查询权限。
GRANT SELECT ON employees TO user1;
  • 撤销权限:撤销用户 user1employees 表的查询权限。
REVOKE SELECT ON employees FROM user1;

1.案例:给开发创建一个账号 用来连接数据库 和查看数据库信息:

create user test1@'%' identified by '2004129';    //发现可以远程登录但是 无法进行任何操作----

2.接着我们给test1用户赋予查看mysql数据库下的user表权限:

grant select on mysql.user to test1@'%';

2.查询用户权限

备注:默认创建的用户 只有一个USAGE权限(只能登陆)reate user test1@'%' identified by '2004129';
flush privileges;   //刷新数据库

4. DDL(数据定义语言,Data Definition Language)

  • 定义:用于定义数据库的结构,包括创建、修改和删除数据库对象(如表、视图、索引等)。
  • 常用命令
    • CREATE:用于创建数据库对象,如创建数据库、表、视图等。
    • ALTER:用于修改已存在的数据库对象的结构,如添加列、修改列的数据类型等。
    • DROP:用于删除数据库对象,如删除数据库、表、视图等。
  • 示例
    • 创建表:创建一个名为 employees 的表。
CREATE TABLE employees (id INT PRIMARY KEY,name VARCHAR(50),salary DECIMAL(10, 2)
);
  • 修改表:向 employees 表中添加一个新的列 department
ALTER TABLE employees ADD COLUMN department VARCHAR(50);
  • 删除表:删除 employees 表。
DROP TABLE employees;

副本:

1.查看数据库编码类型:

show variables like 'char%';

2.查找匹配关键字 like

show databases like 'u%';      //只查找以u开头的数据库

3.创建数据表(数据表严格区分大小写)

CREATE TABLE IF NOT EXISTS `tanke` (   id INT,    name VARCHAR(100) NOT NULL,  jneng VARCHAR(100) NOT NULL,    jiage INT NOT NULL,    PRIMARY KEY (id) ) ENGINE=innodb DEFAULT CHARSET=utf8;   //  PRIMARY KEY (id)  设置key为id//  ENGINE=innoDB  设置引擎为Innodb
///  查看创建表信息     show create table + 表名
// 查看表结构     desc +表名MariaDB [kings]> desc tanke;

4.删除数据库

 drop database if exists +数据库名;

5.删除数据表

  drop table if exists + 表名

用户管理

1.创建用户:

 create user test@'%' identified by '密码'

2.授权:

grant all select,input,update,create on 数据库.数据表 to test@'%' identified by '密码';

危险:给予最大权限:grant all privileges on 数据库.数据表 to test@‘%’ identified by ‘密码’;

删除用户: drop user 用户名+‘ip’ // 加不加ip都可以 加了更精准
-----------------------------------------------------------------------------------------------------------------------------2025年2/22 23:51

后端代码连接mysql

php连接mysql脚本

环境安装: sudo dnf install mysqlnd php

脚本运行: php + 文件

<?php
// 数据库连接参数
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_database_name";// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);// 检查连接是否成功
if ($conn->connect_error) {die("连接失败: " . $conn->connect_error);
}// 设置字符集为 UTF-8
if (!$conn->set_charset("utf8")) {printf("字符集设置失败: %s\n", $conn->error);exit();
}
echo "连接成功,字符集已设置为 UTF-8<br>";// 执行查询
$sql = "SELECT * FROM your_table_name";
$result = $conn->query($sql);if ($result->num_rows > 0) {// 输出数据while ($row = $result->fetch_assoc()) {echo "ID: " . $row["id"] . " - 姓名: " . $row["name"] . "<br>";}
} else {echo "0 结果";
}// 关闭连接
$conn->close();
?>

Python连接mysql

安装环境:sudo dnf install python3 python3-devel

安装第三方库: pip install pymysql

import pymysql# 数据库连接参数
host = 'localhost'
user = 'your_username'
password = 'your_password'
database = 'your_database_name'
charset = 'utf8'try:# 创建数据库连接connection = pymysql.connect(host=host,user=user,password=password,database=database,charset=charset)print("连接成功,字符集已设置为 UTF-8")# 创建游标对象with connection.cursor() as cursor:# 执行 SQL 查询sql = "SELECT * FROM your_table_name"cursor.execute(sql)# 获取查询结果results = cursor.fetchall()if results:for row in results:print(f"ID: {row[0]}, 姓名: {row[1]}")else:print("0 结果")except pymysql.Error as e:print(f"数据库连接或操作出错: {e}")
finally:# 关闭数据库连接if 'connection' in locals() and connection.open:connection.close()print("数据库连接已关闭")

-----------------------------------------------------\\\\2025 2-23 21.00

一.修该数据表

1.修改数据表名字:
rename table 旧的表名 to 新表名;
在这里插入图片描述
2.修改数据表字段

MariaDB [kings]> select * from tanke;
±—±-------±-------±------+
| id | name | jneng | jiage |
±—±-------±-------±------+
| 2 | 刘邦 | 传送 | 18888 |
±—±-------±-------±------+
1 row in set (0.000 sec)
上面 id 就是所谓的字段

3.添加字段
语法:alter table 表名 add 字段名 数据类型 其他…;
alter table tankex add age int;
在这里插入图片描述
在这里插入图片描述

枚举类型
枚举意思如下图:
在这里插入图片描述

alter table tabkes add 字段名 ENUM('XXXX','XXXXX') not null default 'XXXX'; //

在这里插入图片描述
4.删除数据表字段
语法:alter table 表名 drop 字段名;

alter table tankex drop host;在这里插入图片描述

二 .添加索引 (索引就像目录一样)

1.查看数据表索引 : show index from 数据库.数据表\G;

2.添加索引:alter table 表名 add index 索引名(字段名);

3.删除索引:alter table 数据表 drop index + 索引名;

三.删除基本语法

1.删除数据库 drop database +数据库名;

2.删除数据表: drop table + 数据表名;

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

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

相关文章

Redis 集群的三种模式:一主一从、一主多从和多主多从

本文记述了博主在学习 Redis 在大型项目下的使用方式&#xff0c;包括如何设置Redis主从节点&#xff0c;应对突发状况如何处理。在了解了Redis的集群搭建和相关的主从复制以及哨兵模式的知识以后&#xff0c;进而想要了解 Redis 集群如何使用&#xff0c;如何正确使用&#xf…

LangChain大模型应用开发:基于RAG实现文档问答

介绍 大家好&#xff0c;博主又来给大家分享知识了。随着大模型应用的不断发展&#xff0c;很多开发者都在探索如何更好地利用相关工具进行开发。那么这次给大家分享的内容是使用LangChain进行大模型应用开发中的基于RAG实现文档问答的功能。 好了&#xff0c;我们直接进入正…

零样本学习 zero-shot

1 是什么 2 如何利用零样本学习进行跨模态迁移&#xff1f; demo代码 安装clip pip install ftfy regex tqdm pip install githttps://github.com/openai/CLIP.git import torch import clip from PIL import Image# 加载 CLIP 模型 device "cuda" if torch.cuda.i…

防火墙双机热备---VRRP,VGMP,HRP(超详细)

双机热备技术-----VRRP&#xff0c;VGMP&#xff0c;HRP三个组成 注&#xff1a;与路由器VRRP有所不同&#xff0c;路由器是通过控制开销值控制数据包流通方向 防火墙双机热备&#xff1a; 1.主备备份模式 双机热备最大的特点就是防火墙提供了一条专门的备份通道&#xff08;心…

面试八股文--数据库基础知识总结(1)

1、数据库的定义 数据库&#xff08;DataBase&#xff0c;DB&#xff09;简单来说就是数据的集合数据库管理系统&#xff08;Database Management System&#xff0c;DBMS&#xff09;是一种操纵和管理数据库的大型软件&#xff0c;通常用于建立、使用和维护数据库。数据库系统…

怎么在Github上readme文件里面怎么插入图片?

环境&#xff1a; Github 问题描述&#xff1a; 怎么在Github上readme文件里面怎么插入图片&#xff1f; https://github.com/latiaoge/AI-Sphere-Butler/tree/master 解决方案&#xff1a; 1.相对路径引用 上传图片到仓库 将图片文件&#xff08;如 .png/.jpg&#xff…

Unity自定义树(Tree)

一、创建自定义树 右键——3D Object——Tree 树的大致形态&#xff1a; 二、主干树的整体设置 Distribution Tree Seed&#xff1a;树种子&#xff0c;调节此参数就可获得不同形态的树桩 Area Spread&#xff1a;区域的大小 Ground Offset&#xff1a;树距离初始地面的偏移…

Debezium日常分享系列之:Debezium 3.1.0.Alpha2发布

Debezium日常分享系列之&#xff1a;Debezium 3.1.0.Alpha2发布 模式历史配置默认值的变更可能的 Vitess 数据丢失Oracle 的 ReselectColumnsPostProcessor 行为变更Reselect 列后处理器的错误处理模式TinyGo WASM 数据类型改进Debezium 平台转换 UI 中的谓词支持Debezium 平台…

STM32MP157A-FSMP1A单片机移植Linux系统I2C总线驱动

由于I2C总线驱动为Linux内核自带的总线驱动&#xff0c;在一个新的板子上可能由于不同的定义与芯片原厂定义的I2C管脚有所不同&#xff0c;这时就需要开发人员对设备树信息及内核驱动进行更新。 原理图可知&#xff0c;I2C的SCL对应PF14&#xff0c;SDA对应PF15 在Linux内核中…

My first Android application

界面元素组成&#xff1a; 功能代码&#xff1a; /*实现功能&#xff1a;当输入内容后&#xff0c;欢迎文本发生相应改变&#xff0c;并清除掉文本域内容当未输入任何内容时&#xff0c;弹出提示文本以警告用户*/val greetingText findViewById<TextView>(R.id.printer)…

深度学习基础--ResNet网络的讲解,ResNet50的复现(pytorch)以及用复现的ResNet50做鸟类图像分类

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 前言 如果说最经典的神经网络&#xff0c;ResNet肯定是一个&#xff0c;这篇文章是本人学习ResNet的学习笔记&#xff0c;并且用pytorch复现了ResNet50&…

【DeepSeek】【GPT-Academic】:DeepSeek集成到GPT-Academic(官方+第三方)

目录 1 官方deepseek 1.1 拉取学术GPT项目 1.2 安装依赖 1.3 修改配置文件中的DEEPSEEK_API_KEY 2 第三方API 2.1 修改DEEPSEEK_API_KEY 2.2 修改CUSTOM_API_KEY_PATTERM 2.3 地址重定向 2.4 修改模型参数 2.5 成功调用 2.6 尝试添加一个deepseek-r1参数 3 使用千帆…

用Golang与WebAssembly构建高性能Web应用:详解`syscall/js`包

用Golang与WebAssembly构建高性能Web应用&#xff1a;详解syscall/js包 引言为什么选择syscall/js包&#xff1f;适用场景 syscall/js包概述syscall/js包的核心概念1. js.Global2. js.Value3. js.Func4. js.Null 和 js.Undefined syscall/js包在WebAssembly中的位置 环境配置与…

本地部署轻量级web开发框架Flask并实现无公网ip远程访问开发界面

文章目录 1. 安装部署Flask2. 安装Cpolar内网穿透3. 配置Flask的web界面公网访问地址4. 公网远程访问Flask的web界面 本篇文章主要讲解如何在本地安装Flask&#xff0c;以及如何将其web界面发布到公网进行远程访问。 Flask是目前十分流行的web框架&#xff0c;采用Python编程…

ChatGPT背后的理论基础:从预训练到微调的深度解析

友情提示&#xff1a;本文内容由银河易创&#xff08;https://ai.eaigx.com&#xff09;AI创作平台GPT-4o-mini模型生成&#xff0c;仅供参考。请根据具体情况和需求进行适当的调整和验证。 随着人工智能特别是自然语言处理技术的飞速发展&#xff0c;ChatGPT作为一种强大的对话…

2025面试Go真题第一场

前几天参加了一场面试&#xff0c;GoLang 后端工程师&#xff0c;他们直接给了我 10 道题&#xff0c;我留了一个截图。 在看答案之前&#xff0c;你可以先简单做一下&#xff0c;下面我会对每个题目做一个说明。 文章目录 1、golang map 是否并发安全?2、协程泄漏的原因可能是…

网络安全第三次练习

一、实验拓扑 二、实验要求 配置真实DNS服务信息&#xff0c;创建虚拟服务&#xff0c;配置DNS透明代理功能 三、需求分析 1.创建用户并配置认证策略 2.安全策略划分接口 3.ip与策略配置 四、实验步骤 1.划分安全策略接口 2.创建用户并进行策略认证 3.配置安全策略 4.NAT配…

FTP 实验(ENSP模拟器实现)

目录 FTP 概述 FTP实验 FTP的报文交互 FTP 概述 FTP&#xff08;File Transfer Protocol&#xff0c;文件传输协议&#xff09;是一种用于在网络上进行文件传输的标准协议。它允许用户在两台计算机之间上传和下载文件。 1、FTP采用客户端-服务器模型&#xff0c;客户端通过…

Elasticsearch:使用经过训练的 ML 模型理解稀疏向量嵌入

作者&#xff1a;来自 Elastic Dai Sugimori 了解稀疏向量嵌入&#xff0c;理解它们的作用/含义&#xff0c;以及如何使用它们实现语义搜索。 Elasticsearch 提供语义搜索功能&#xff0c;允许用户使用自然语言进行查询并检索相关信息。为此&#xff0c;目标文档和查询必须首先…

Java进阶(vue基础)

目录 1.vue简单入门 ?1.1.创建一个vue程序 1.2.使用Component模板(组件&#xff09; 1.3.引入AXOIS ?1.4.vue的Methods&#xff08;方法&#xff09; 和?compoted&#xff08;计算&#xff09; 1.5.插槽slot 1.6.创建自定义事件? 2.Vue脚手架安装? 3.Element-UI的…