返回顶部
首页 > 资讯 > 后端开发 > Python >Python创建SQL数据库流程逐步讲解
  • 335
分享到

Python创建SQL数据库流程逐步讲解

2024-04-02 19:04:59 335人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录前言先决条件创建脚本建立连接创建表格生成一些随机数据结论前言 根据《2021年Stackoverflow开发者调查》, sql是最常用的五种编程语言之一。 所以,我们应该多投入时

前言

根据《2021年Stackoverflow开发者调查》,

sql是最常用的五种编程语言之一。

所以,我们应该多投入时间来学习SQL。

由Storyset绘制的人物插图

但是有一个问题:

如何在没有数据库的情况下练习数据库查询呢?

在今天的文章中,让我们一起来解决这个基本问题,学习如何从零开始创建自己的Mysql数据库。在python和一些外部库的帮助下,我们将创建一个简单的脚本,可以自动创建并使用随机生成的数据,填充我们的表格。

但是,在讨论实现细节之前,我们首先需要讨论一些先决条件。

注意:当然还有其他方法可以获取用于实践的SQL数据库(例如直接找资源下载),但使用Python和一些外部库可以为我们提供额外且有价值的实践机会。

先决条件

我们先从最基本的开始。

首先,需要安装mysql Workbench并连接服务,接下来就可以开始建立数据库:

CREATE DATABASE IF NOT EXISTS your_database_name;

现在,我们只需要安装必要的python库,基本的设置就完成了。我们将要使用的库如下所示,可以通过终端轻松安装。

  1. NumPy: pip install numpy
  2. Sqlalchemy: pip install sqlalchemy
  3. Faker: pip install faker

创建脚本

完成基本设置后,我们可以开始编写python脚本了。

先用一些样板代码创建一个类,为我们提供一个蓝图,指导我们完成其余的实现。

import numpy as np
import sqlalchemy
from faker import Faker [python学习裙:90 3971231###
from sqlalchemy import Table, Column, Integer, String, MetaData, Date,
class SQLData:
    def __init__(self, server:str, db:str, uid:str, pwd:str) -> None:
        self.__fake = Faker()
        self.__server = server
        self.__db = db
        self.__uid = uid
        self.__pwd = pwd
        self.__tables = dict()
    def connect(self) -> None:
        pass
    def drop_all_tables(self) -> None:
        pass
    def create_tables(self) -> None:
        pass
    def populate_tables(self) -> None:
        pass

目前我们还没用特别高级的语法。

我们基本上只是创建了一个类,存储了数据库凭据供以后使用,导入了库,并定义了一些方法。

建立连接

我们要完成的第一件事是创建一个数据库连接。

幸运的是,我们可以利用python库sqlalchemy来完成大部分工作。

class SQLData:
    #...
    def connect(self) -> None:
        self.__engine = sqlalchemy.create_engine(
            f"mysql+pymysql://{self.__uid}:{self.__pwd}@{self.__server}/{self.__db}"
        )
        self.__conn = self.__engine.connect()
        self.__meta = MetaData(bind=self.__engine)

这个方法可以创建并存储3个对象作为实例属性。

首先,我们创建一个连接,作为sqlalchemy应用程序的起点,描述如何与特定类型的数据库/ DBapi组合进行对话。

在我们的例子中,我们指定一个MySQL数据库并传入我们的凭据。

接下来,创建一个连接,它可以让我们执行SQL语句和一个元数据对象(一个容器),将数据库的不同功能放在一起,让我们关联和访问数据库表。

创建表格

现在,我们需要创建数据库表。

class SQLData:
    #...
    def create_tables(self) -> None:
        self.__tables['jobs'] = Table (
            'jobs', self.__meta,
            Column('job_id', Integer, primary_key=True, autoincrement=True, nullable=False),
            Column('description', String(255))
        )
        self.__tables['companies'] = Table(
            'companies', self.__meta,
            Column('company_id', Integer, primary_key=True, autoincrement=True, nullable=False),
            Column('name', String(255), nullable=False),
            Column('phrase', String(255)),
            Column('address', String(255)),
            Column('country', String(255)),
            Column('est_date', Date)
        )
        self.__tables['persons'] = Table(
            'persons', self.__meta,
            Column('person_id', Integer, primary_key=True, autoincrement=True, nullable=False),
            Column('job_id', Integer, ForeignKey('jobs.job_id'), nullable=False),
            Column('company_id', Integer, ForeignKey('companies.company_id'), nullable=False),
            Column('last_name', String(255), nullable=False),
            Column('first_name', String(255)),
            Column('date_of_birth', Date),
            Column('address', String(255)),
            Column('country', String(255)),
            Column('zipcode', String(10)),
            Column('salary', Integer)
        )
        self.__meta.create_all()

我们创建了3个表,并将它们存储在一个字典中,以供以后参考。

在sqlalchemy中创建表也非常简单。我们只需实例化一个新的表,提供表名、元数据对象,并指定不同的列。

在本例中,我们创建了一个job表、一个company表和一个person表。person表还通过了foreign kkey链接了其他表,这使数据库在实践SQL连接方面更加有趣。

定义了所有表格之后,我们只需调用MetaData对象的create_all()方法就好了。

生成一些随机数据

虽然我们创建了数据库表,但仍然没有任何数据可用。因此,我们需要生成一些随机数据并将其插入到表中。

class SQLData:
    #...
    def populate_tables(self) -> None:
        jobs_ins = list()
        companies_ins = list()
        persons_ins = list()
        for _ in range(100):
            record = dict()
            record['description'] = self.__fake.job()
            jobs_ins.append(record)
        for _ in range(100):
            record = dict()
            record['name'] = self.__fake.company()
            record['phrase'] = self.__fake.catch_phrase()
            record['address'] = self.__fake.street_address()
            record['country'] = self.__fake.country()
            record['est_date'] = self.__fake.date_of_birth()
            companies_ins.append(record)
        for _ in range(500):
            record = dict()
            record['job_id'] = np.random.randint(1, 100)
            record['company_id'] = np.random.randint(1, 100)
            record['last_name'] = self.__fake.last_name()
            record['first_name'] = self.__fake.first_name()
            record['date_of_birth'] = self.__fake.date_of_birth()
            record['address'] = self.__fake.street_address()
            record['country'] = self.__fake.country()
            record['zipcode'] = self.__fake.zipcode()
            record['salary'] = np.random.randint(60000, 150000)
            persons_ins.append(record)
        self.__conn.execute(self.__tables['jobs'].insert(), jobs_ins)
        self.__conn.execute(self.__tables['companies'].insert(), companies_ins)
        self.__conn.execute(self.__tables['persons'].insert(), persons_ins)

现在,我们可以利用Faker库来生成随机数据。

我们只需在for循环中使用随机生成的数据,创建一个由字典表示的新记录。然后将单个记录追加到可用于(多个)insert语句的列表中。

接下来,从连接对象中调用execute()方法,并将字典列表作为参数传递。

就是这样!我们成功实现了类—只需要把类实例化,并调用相关函数来创建数据库。

if __name__ == '__main__':
    sql = SQLData('localhost','yourdatabase','root','yourpassWord')
    sql.connect()
    sql.create_tables()
    sql.populate_tables()

试着做一个查询

剩下的唯一一件事是——需要验证我们的数据库是否已经启动和运行,是否确实包含一些数据。

从基本的查询开始:

SELECT *
FROM jobs
LIMIT 10;

基本查询结果[图片by作者]

看起来我们的脚本成功了,我们有一个包含实际数据的数据库。

现在,尝试一个更复杂的SQL语句:

SELECT
  p.first_name,
  p.last_name,
  p.salary,
  j.description
FROM
  persons AS p
JOIN
  jobs AS j ON
  p.job_id = j.job_id
WHERE
  p.salary > 130000
ORDER BY
  p.salary DESC;

这个结果看起来很靠谱 – 可以说我们的数据库在正常运行。

结论

在本文中,我们学习了如何利用Python和一些外部库来用随机生成的数据创建我们自己的实践数据库。

虽然可以很容易地下载现有的数据库来开始练习SQL,但使用Python从头创建自己的数据库提供了额外的学习机会。由于SQL和Python经常紧密联系在一起,所以这些学习机会可能会特别有用。

到此这篇关于Python创建SQL数据库流程逐步讲解的文章就介绍到这了,更多相关Python创建SQL内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python创建SQL数据库流程逐步讲解

本文链接: https://lsjlt.com/news/120565.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python创建SQL数据库流程逐步讲解
    目录前言先决条件创建脚本建立连接创建表格生成一些随机数据结论前言 根据《2021年Stackoverflow开发者调查》, SQL是最常用的五种编程语言之一。 所以,我们应该多投入时...
    99+
    2024-04-02
  • Vue数据代理的实现流程逐步讲解
    目录一,前言二,数据代理的实现1,Vue 是如何操作数据的2,当前是如何操作数据的3,数据代理的思路4,数据代理的实现5,数据代理的测试三,结尾一,前言 上篇,主要介绍了 Vue 数...
    99+
    2023-01-06
    Vue数据代理 Vue数据代理原理 vue数据代理怎么实现的
  • SQL Server数据库——创建数据库
    目录 一、界面方式创建数据库 1.1创建数据库xscj,数据文件和日志文件的属性按默认值设置  1.2在xscj数据库中增加文件xcsj1,其属性均取系统默认值  1.3在数据库xscj中增加一个名为myGroup的文件组。 1.4数据库的...
    99+
    2023-08-31
    数据库 java 服务器 sql sqlserver
  • python代码创建数据库步骤
    目录 一、安装相应的数据库连接库 二、导入所需的库和模块: 三、建立数据库连接: 四、创建游标对象: 五、执行 SQL 查询和操作: 六、提交更改: 七、关闭数据库连接: 示例代码: 一、安装相应的数据库连接库 根据你使用的数据库类型...
    99+
    2023-10-22
    数据库 python
  • SQL Server创建数据库图文教程
    目录方法一:使用SSMS工具创建1、在SSMS工具左侧的对象资源管理器2、在弹出的新建数据库对话框中填入要创建的数据库名称3、设置完成后点击确定4、注意事项方法二:使用T-SQL语句创建1、点击新建查询2、输入T-SQL...
    99+
    2023-02-26
    SQLServer创建数据库 创建数据库 SQLServer数据库
  • sql数据库如何创建
    今天就跟大家聊聊有关sql数据库如何创建,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。  sql新建数据库步骤:登录然后选择数据库后右击新...
    99+
    2024-04-02
  • ORACLE数据库逐步解决ORA-12541、ORA
    刚开始时,有一台服务器的ORACLE 11G数据库连接不上,报错:ORA-12541:TNS:无监听程序重启服务里面的两个Oracle服务,都没解决。在网上看到一篇文章说另一种可能是oracle目录目录下listener.log日...
    99+
    2017-02-18
    ORACLE数据库逐步解决ORA-12541 ORA
  • navicat创建数据库步骤
    使用 navicat 创建数据库的步骤如下:打开 navicat 并连接到数据库服务器。创建新的数据库连接并输入数据库服务器信息。右键单击数据库连接并选择“新建数据库”。输入数据库名称并...
    99+
    2024-04-23
    navicat
  • Spring超详细讲解创建BeanDefinition流程
    目录一、前期准备1.1 环境依赖1.2 实体类1.3 applicationContext.xml1.4 测试代码二、探究过程2.1 目标2.2 BeanDefinition的创建过...
    99+
    2024-04-02
  • SQL Server如何创建数据库
    这篇文章给大家分享的是有关SQL Server如何创建数据库的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。SQL Server 怎么创建数据库?首先启动“SQL Server M...
    99+
    2024-04-02
  • sql数据库如何创建表
    要创建表,你需要使用CREATE TABLE语句。以下是创建表的基本语法:CREATE TABLE table_name (colu...
    99+
    2023-10-08
    sql数据库
  • SQL Server如何创建数据库
    本篇内容主要讲解“SQL Server如何创建数据库”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SQL Server如何创建数据库”吧!方...
    99+
    2023-03-01
    sql server 数据库
  • sql创建数据库失败如何解决
    创建数据库失败可能有多种原因,以下是一些常见的解决方法:1. 检查SQL语句是否正确:请确保SQL语句的语法和格式正确,包括正确的关...
    99+
    2023-08-25
    sql 数据库
  • sql无法创建数据库怎么解决
    如果无法在 SQL 中创建数据库,可能有以下几种原因和解决方案: 权限问题:确保你具有创建数据库的权限。使用管理员账户登录数据库...
    99+
    2023-10-26
    sql 数据库
  • mysql创建数据库的步骤
    这篇文章主要讲解了“mysql创建数据库的步骤”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql创建数据库的步骤”吧! ...
    99+
    2024-04-02
  • MongoDB连接和创建数据库的方法讲解
    一、连接MongoDB 在连接MongoDB前确保启动MongoDB服务,只需要在MongoDB安装目录的bin目录下执行mongo.exe即可。 执行启动操作后,mongodb在输...
    99+
    2024-04-02
  • 使用SQL语句创建数据库与创建表
    前言 🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏: 🍔🍟🌯 c语言初阶 🔑个...
    99+
    2023-09-29
    数据库 sql
  • 初学者指南:逐步建立PHP数据库连接
    php 数据库连接分四步完成:获取凭据、导入 mysqli 扩展、创建连接对象、关闭连接。对于 mysql 数据库,连接示例如下:require_once("mysqli.class.p...
    99+
    2024-05-21
    数据库 php mysql
  • SQL Server创建数据库的方法
    本篇内容介绍了“SQL Server创建数据库的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!&nbs...
    99+
    2024-04-02
  • sql数据库视图如何创建
    要创建一个SQL数据库视图,需要使用CREATE VIEW语句。以下是创建视图的语法:CREATE VIEW view_name A...
    99+
    2023-09-29
    sql数据库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作