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

举报
迷彩 发表于 2023/06/02 17:00:03 2023/06/02
【摘要】 前言在了解MySQL之前我们先来了解什么是数据库?以及了解数据库相关术语的介绍什么是数据库数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所存储的数据。我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢,不利于操作所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理大数据量。...

前言

在了解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的中使用

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。