写点什么

【编程实践】详解 MySQL 在 Python 中的使用(1)

作者:迷彩
  • 2022 年 9 月 28 日
    广东
  • 本文字数:2533 字

    阅读完需:约 8 分钟

前言

在了解 MySQL 之前我们先来了解什么是数据库?以及了解数据库相关术语的介绍

什么是数据库

  1. 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。

  2. 每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所存储的数据。

  3. 我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢,不利于操作

  4. 所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。

RDBMS 即关系数据库管理系统(Relational Database Management System)的特点:

  • 1.数据以表格的形式出现

  • 2.每行为各种记录名称

  • 3.每列为记录名称所对应的数据域

  • 4.许多的行和列组成一张表单

  • 5.若干的表单组成 database

RDBMS 术语

在我们开始学习 MySQL 数据库前,让我们先了解下 RDBMS 的一些相关的术语:

  • 数据库: 数据库是一些关联表的集合。

  • 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。

  • 列: 一列(数据元素) 包含了相同类型的数据, 例如邮政编码的数据。

  • 行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。

  • 冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。

  • 主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。

  • 外键:外键用于关联两个表。

  • 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。

  • 索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。

  • 参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。


什么 MySQL

MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。而且在 web 开发中,MySQL 是数据存储最重要的介质之一。MySQL 是遵循双重协议的,一个是GPL(General Public License)授权协议,一个是商用授权协议(注释:为解决其他企业用 MySQL 软件牟利或引用了 MySQL 的源代码而不想开源)。也就是说它有免费的开源版本(社区版)和收费的商业版本等多个版本,我们常使用的开源版本就是遵循 GPL 授权协议。一般在开发或者简单的使用中我们使用免费的开源版基本完全可以满足我们的需求。除非你想通过 MySQL 进行修改然后发布衍生版本进行营利。

MySQL 可以将数据保存在不同的表中,而不是将所有数据放在一个大仓库内。所以 MySQL 大大提高了处理数据的速度并增强了灵活性。MySQL 所使用的语言是用于访问数据库的最常用标准化语言。由于其体积小、速度快、成本低、开源等特点,一般中小型 网站都选择 MySQL 作为网站数据库。


MySQL 的特性

关于 MySQL 的系统特性有许多,大概有以下几点:

  1. MySQL 是使用编程语言 C 和 C++进行编写。此外,还使用了多种编译器进行测试,保证了源代码的可移植性。也就是跨平台性好,支持 Linux、 Windows 、AIX、 FreeBSD、 HP-UX、Mac OS、NovellNetware、 OpenBSD、OS/2 Wrap、Solaris 等 多种操作系统

  2. MySQL 为多种编程语言提供了 API。这些编程语言包括 C、C++、Python、 Java、 Perl、 PHP、Eiffel、Ruby、NET 和 TCL 等

  3. MySQL 支持多线程,充分利用 CPU 资源

  4. 它有优化 SQL 查询算法,有效提高询速度

  5. 既能够作为一个单独的程序应用在客户端服务器网络环境中,也能够作为一个库嵌人其它软件

  6. 支持多语言编码。常见的编码,如中文的 CB 2312,BIG5;日文的 Shift_JIS 等都可以用作数据表名和数据列名

  7. 提供 TCP/IP、ODBC 和 JDBC 等多种数据库连接方式

  8. 提供用于管理、检查、优化数据库操作的工具

  9. 支持大型的数据库,可以处理拥有上千万条记录的大型数据库,随着硬件的不断升级甚至可以处理上亿条记录

  10. 支持多种存储引擎,常用的存储引擎有:InnoDB、MyISAM、MEMORY...等

  11. MySQL 使用标准的 SQL 数据语言形式

  12. MySQL 支持 PHP,可以说是黄金搭档, PHP 也是比较流行的 Web 开发语言

  13. MySQL 是可定制的,采用 GPL 协议,用户可以修改源代码来开发自己的 MySOL 系统。


MySQL 的基本操作

在 MySQL 中基本都是使用命令或者 SQL 语言来对数据库中的表进行操作的,当然你也可以使用可视化管理工具进行操作:比如 PHPmyadmin 或者 Navicat 等等可视化管理工具.其实可视化也是把你的操作转化为 SQL 语言或者命令再执行.


MySQL 创建表

我们可以在登陆 MySQL 服务后,使用 create 命令创建数据库,语法如下:

CREATE DATABASE 数据库名;比如:CREATE DATABASE Test;#创建一个名为Test的数据库
复制代码

MySQL 表结构的相关语句

在日常的使用中我们最常用的操作就是对数据库中表的操作,

MySQL 对于表的操作语法如下:

1.创建表:

CREATE TABLE 表名(字段名类型(长度)约束)例如,CREATE TABLE sort (sid INT, sname VARCHAR(120)),sid是 分类ID, sname是分类名称。
复制代码

2.主键约束:主键是用于标识当前记录的字段,它的特点是非空且唯一, 即一个表必须存在且只存在一个主键。在日常开发中,一-般情况下主键不具备任何含义,只是用于标识当前记录,其格式要求如下。

1.在创建表时创建主键,在字段后面加上 primary key:

CREATE TABLE 表名(id int primary key, ...)

2.若在创建表时,不创建主键,在创建表的最后来指定主键:

CREATE TABLE 表名(id int, ..., primary key(id))

3.删除主键:ALTER TABLE 表名(drop primary key)

4.主键自增长:一般主键是自增长的字段, 不需要指定,实现添加自增长语句,主键字段后加 auto_increment;

例如:

CREATE TABLE test(sid INT primary key auto_increment, sname VARCHR(100))
复制代码

3.查看表:

  • 查看数据库中所有的表: SHOW TABLES;

  • 查看表结构: DESC 表名;

  • 查看建表语句: SHOW CREATE TABLE 表名

4.删除表:

  • 删除指定表: DROP TABLE 表名

5.修改表结构:

  • 删除列: ALTER TABLE 表名 DROP 列名

  • 修改表名: RENAME TABLE 表名 TO 新表名

  • 修改表的字符集: ALTER TABLE 表名 CHARACTER SET 字符集

  • 修改列名: ALTER TABLE 表名 CHANGE 列名 新列名 列类型

  • 添加列: ALTER TABLE 表名 ADD 列名 列类型

  • 注:涉及到修改表结构基本都使用到:ALTER TABLE 表名...命令


对于 MySQL 的介绍就到这里,接下来我们进入实操阶段,探索 mysql 在 Python 的中使用

发布于: 刚刚阅读数: 5
用户头像

迷彩

关注

我的工作是常年写bug|公众号:编程架构之美 2020.06.18 加入

修bug的菜鸟~公众号:“互联网有啥事”已改名为“编程架构之美”

评论

发布
暂无评论
【编程实践】详解MySQL在Python中的使用(1)_Python_迷彩_InfoQ写作社区