21 天 Python 计划:MySQL 库相关操作

文章目录

    • 前言
    • 一、系统数据库
      • 1. information_schema
      • 2. performance_schema
      • 3. mysql
      • 4. test
    • 二、创建数据库
      • 1. 语法
      • 2. 数据库命名规则
    • 三、数据库相关操作
      • 1. 查看数据库
      • 2. 选择数据库
      • 3. 删除数据库
      • 4. 修改数据库
    • 总结

前言

Python是一种强大且易于学习的编程语言。通过这个21天的计划,我们将逐步深入MySQL库相关操作。无论你是初学者还是有一定基础的开发者,这个计划都将帮助你巩固和扩展你的Python知识。

在学习本篇之前,我们先复习一下前面的内容:
day1:Python下载和开发工具介绍
day2:数据类型、字符编码、文件处理
day3:基础语法与课外练习
day4:函数简单介绍
day5:模块与包
day6:常用模块介绍
day7:面向对象
day8:面向对象高级
day9:异常处理
day10:网络编程
day11:MySQL 数据库初识

一、系统数据库

在使用 MySQL 数据库时,了解系统数据库的结构和功能,掌握数据库的创建、查看、修改和删除等操作是非常重要的。本文将详细介绍 MySQL 中的系统数据库,以及如何进行数据库的创建和相关操作。MySQL 中有几个重要的系统数据库,它们各自承担着不同的功能。

1. information_schema

这是一个虚拟库,不占用磁盘空间。它存储的是数据库启动后的一些参数,包括用户表信息、列信息、权限信息、字符信息等。以下是一些常用的表及其用途:

  • TABLES 表:提供了关于数据库中的表的信息。
mysql> use information_schema;
mysql> select * from tables limit 1\G;
mysql> select * from tables where TABLE_NAME='city'\G;
  • COLUMNS 表:提供了关于数据库中表的列的信息。
mysql> select * from columns\G;
  • STATISTICS 表:存储表索引的信息。
  • COLLATIONS 表:提供校验规则和字符集对应关系。

下面是 TABLES表中一些重要字段的含义:

  • Table_catalog:数据表登记目录
  • Table_schema:数据表所属的数据库名
  • Table_name:表名称
  • Table_type:表类型,如 system view(系统表)或 base table(数据表)
  • Engine:使用的数据库引擎,如 MyISAM、CSV、InnoDB
  • Version:版本,默认值 10
  • Row_format:行格式,如 Compact、Dynamic、Fixed
  • Table_rows:表里所存多少行数据
  • Avg_row_length:平均行长度
  • Data_length:数据长度
  • Max_data_length:最大数据长度
  • Index_length:索引长度
  • Data_free:空间碎片,刚刚用过的暂时不再使用
  • Auto_increment:做自增主键的自动增量当前值,可以通过导出再导入数据进行释放
  • Create_time:表的创建时间
  • Update_time:表的更新时间
  • Check_time:表的检查时间
  • Table_collation:表的字符校验编码集
  • Checksum:校验和
  • Create_options:创建选项
  • Table_comment:表的注释、备注

我们还可以在创建表时添加列注释和表注释,示例如下:

CREATE TABLE student(gid int primary key COMMENT '列注释') COMMENT='表注释';

2. performance_schema

这是 MySQL 5.5 开始新增的一个数据库,主要用于收集数据库服务器性能参数,记录处理查询请求时发生的各种事件、锁等现象。

3. mysql

这是一个授权库,主要存储系统用户的权限信息。

4. test

这是 MySQL 数据库系统自动创建的测试数据库。

二、创建数据库

1. 语法

可以使用以下语法创建数据库:

CREATE DATABASE 数据库名 charset utf8;

2. 数据库命名规则

  • 可以由字母、数字、下划线、@、#、$ 组成。
  • 区分大小写。
  • 具有唯一性。
  • 不能使用关键字,如 create、select等。
  • 不能单独使用数字。
  • 最长 128 位。

三、数据库相关操作

1. 查看数据库

  • show databases;:显示所有数据库。
  • show create database db1;:显示指定数据库(如 db1)的创建语句。
  • select database();:显示当前使用的数据库。

2. 选择数据库

使用 USE 数据库名语句来选择要使用的数据库,例如:

USE db1;

3. 删除数据库

使用 DROP DATABASE 数据库名;语句来删除指定的数据库,例如:

DROP DATABASE db1;

4. 修改数据库

可以使用 alter database语句来修改数据库的字符集,例如:

alter database db1 charset utf8;

总结

通过本文的介绍,我们了解了 MySQL 中的系统数据库,包括 information_schema、performance_schema、mysql和 test的功能和用途。同时,我们也掌握了数据库的创建、查看、选择、删除和修改等操作。这些知识对于管理和使用 MySQL数据库非常重要,希望大家在实际应用中能够灵活运用。

在 Python 中,我们可以使用 mysql-connector-python 库来执行上述 SQL 语句,以下是一个简单的示例:

import mysql.connector# 连接到 MySQL 服务器
mydb = mysql.connector.connect(host="localhost",user="yourusername",password="yourpassword"
)# 创建一个游标对象
mycursor = mydb.cursor()# 创建数据库
mycursor.execute("CREATE DATABASE testdb charset utf8")# 查看所有数据库
mycursor.execute("SHOW DATABASES")
for x in mycursor:print(x)# 选择数据库
mycursor.execute("USE testdb")# 创建表
mycursor.execute("CREATE TABLE student(gid int primary key COMMENT '列注释') COMMENT='表注释'")# 关闭连接
mydb.close()

这个示例展示了如何使用 Python 连接到 MySQL 服务器,创建数据库和表,并查看所有数据库。希望这个示例能帮助你更好地理解如何在 Python 中操作 MySQL 数据库。

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

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

相关文章

手撕LLM(二):从源码出发,探索LoRA加载、推理全流程

接上回接着说,前面我们通过分析源码,了解了大模型推理的详细流程,包括提示词从输入,到对话模版包装,到tokenID转换,到Embedding词向量转换;通过大模型推理,再将大模型输出进行最后一…

WPS宏开发手册——常见问题

目录 系列文章6、常见问题 系列文章 使用、工程、模块介绍 JSA语法 JSA语法练习题 Excel常用Api Excel实战 常见问题 附录 6、常见问题 6.1、编辑完宏后会自动保存,下次打开文件会提醒是否启用宏,点击启用会自动加载上次编辑的…

【Android安卓移动计算】实现项目一[模拟器启动项目]

文章目录 新建项目项目结构介绍说明程序自动生成:图片和样式文件夹:Training1\app\src\main\res\drawable布局文件文件夹:Training1\app\src\main\res\layoutJava文件夹:Training1\app\src\main\java\com\example\training1Androi…

快 速 幂

暴力肯定会超时 3^10 9^5 9*9^4 9*81^2 9*18^2^1 先对b判断奇偶 偶数:对b/2,对a平方 奇数:先*a,再对a平方,b/2 取余注意:(3^10)%k( 9 * 18^2^1)%k(( 9%k )%k * (18^2^1)%k)%k

网络钓鱼攻击的威胁和执法部门的作用(第二部分)

执法部门在打击网络钓鱼中的作用 虽然网络钓鱼可能始于一封欺骗性的电子邮件或短信,但其后果可能远远超出个人收件箱的范围,影响企业、经济甚至国家安全。随着网络钓鱼攻击的规模和复杂性不断增加,执法机构站在前线,努力预防、调…

Data_Socket和UDP_Socket

Data_Socket 和 UDP_Socket 是两种不同类型的网络套接字,它们用于不同的协议和应用场景。以下是它们的主要区别: 协议类型: UDP_Socket:使用的是 UDP(User Datagram Protocol) 协议,这是一种无连…

2025高频面试算法总结篇【排序】

文章目录 直接刷题链接直达把数组排成最小的数删除有序数组中的重复项求两个排序数组的中位数求一个循环递增数组的最小值数组中的逆序对如何找到一个无序数组的中位数链表排序从一大段文本中找出TOP K 的高频词汇 直接刷题链接直达 把一个数组排成最大的数 剑指 Offer 45. 把…

模型压缩技术从零到一

模型压缩是深度学习中的重要技术,旨在减小模型尺寸和计算需求,特别适合在移动设备或嵌入式系统上部署。 要点 模型压缩技术可以显著减小模型尺寸和计算需求,适合资源受限设备。主要技术包括剪枝、量化、知识蒸馏、低秩分解和轻量级模型设计…

浮点数精度问题

目录 ieee754标准解决方法 和c语言一样,所有以ieee754标准的语言都有浮点数精度问题,js也有浮点数精度问题,并且因为是弱类型语言这个问题更严重,js的Number类型的数据都被视为浮点数 ieee754标准 js的数字类型就相当于c语言doub…

超大规模数据场景(思路)——面试高频算法题目

目录 用4KB内存寻找重复元素 从40个亿中产生不存在的整数【位】 如果只让用10MB空间存储? 初次遍历 二次遍历 用2GB内存在20亿个整数中查找出现次数最多的数【分块】 从亿万个URL中查找问题【分块 堆】 40亿个非负整数中找出现两次的数【位 不过多个位哈】 …

开源身份和访问管理方案之keycloak(三)keycloak健康检查(k8s)

文章目录 开源身份和访问管理方案之keycloak(三)keycloak健康检查启用运行状况检查 健康检查使用Kubernetes下健康检查Dockerfile 中 HEALTHCHECK 指令 健康检查Docker HEALTHCHECK 和 Kubernetes 探针 开源身份和访问管理方案之keycloak(三&…

FATFS备忘

概述 FATFS文件系统可以挂载SD卡也可以挂载FLASH eMMC等设备 SD卡需要格式化为FAT32模式 块大小默认即可 移植 SD卡 SD卡扇区大小是 512B SD卡 SDIO模式 可以直接在cubeMX里一键设置 先设置好SD卡的设置 这个是选择支持中文 其余是默认 这个是检测引脚可以留空 当SD卡插入拔出…

唯美社区源码AM社区同款源码

源码介绍 唯美社区源码AM社区同款源码 后端修改application.properties文件内容为你的数据库 前端修改/config/config.js文件内容为你的后端地址 这两个文件里要修改的地方我已经用中文标注出来了 截图 源码免费下载 唯美社区源码AM社区同款源码

现代Web应用的多标签选择组件:设计哲学与工程实践

引言:标签选择的重要性与挑战 在信息爆炸时代,标签系统已成为内容组织的核心基础设施。研究表明: 使用标签系统的平台用户留存率提高35% 良好的标签选择体验可提升内容发现效率58% 80%的用户更倾向于使用提供可视化标签选择的应用 本文将…

P3799 小 Y 拼木棒

题目背景 上道题中,小 Y 斩了一地的木棒,现在她想要将木棒拼起来。 题目描述 有 n 根木棒,现在从中选 4 根,想要组成一个正三角形,问有几种选法? 答案对 1097 取模。 输入格式 第一行一个整数 n。 第…

Perl 条件语句

Perl 条件语句 引言 在编程中,条件语句是执行分支逻辑的关键部分。Perl 作为一种强大的脚本语言,提供了丰富的条件语句,使得开发者能够根据不同的条件执行不同的代码块。本文将深入探讨 Perl 中的条件语句,包括 if、unless、els…

流量特征分析-蚁剑流量分析

任务: 木马的连接密码是多少 这是分析蚁剑流量,可能是网站的,wireshark过滤http 追踪流http得到 1就是连接密码 flag{1}黑客执行的第一个命令是什么 取最后的执行命令。base64解密得 除了id不是蚁剑自带的命令,其他的都是&…

问题1:Sinal 4在开启PAC检查的设备崩溃

​ 问题信息 硬件不支持PAC(Pointer Authentication),此类错误就是signal 11的错误,崩溃信息如下: Build fingerprint: google/sdk_gphone64_arm64/emu64a:16/BP22.250221.010/13193326:userdebug/dev-keys Revision: 0 ABI: arm64 Timestamp: 2025-04-06 11:33:13.923…

FreeRTOS移植笔记:让操作系统在你的硬件上跑起来

一、为什么需要移植? FreeRTOS就像一套"操作系统积木",但不同硬件平台(如STM32、ESP32、AVR等)的CPU架构和外设差异大,需要针对目标硬件做适配配置。移植工作就是让FreeRTOS能正确管理你的硬件资源。 二、…

【C++11(下)】—— 我与C++的不解之缘(三十二)

前言 随着 C11 的引入,现代 C 语言在语法层面上变得更加灵活、简洁。其中最受欢迎的新特性之一就是 lambda 表达式(Lambda Expression),它让我们可以在函数内部直接定义匿名函数。配合 std::function 包装器 使用,可以…