本文整理自网络,侵删。
目录
- 前言
- 先决条件
- 创建脚本
- 建立连接
- 创建表格
- 生成一些随机数据
- 结论
前言
根据《2021年Stackoverflow开发者调查》,
SQL是最常用的五种编程语言之一。
所以,我们应该多投入时间来学习SQL。
由Storyset绘制的人物插图
但是有一个问题:
如何在没有数据库的情况下练习数据库查询呢?
在今天的文章中,让我们一起来解决这个基本问题,学习如何从零开始创建自己的MySQL数据库。在Python和一些外部库的帮助下,我们将创建一个简单的脚本,可以自动创建并使用随机生成的数据,填充我们的表格。
但是,在讨论实现细节之前,我们首先需要讨论一些先决条件。
注意:当然还有其他方法可以获取用于实践的SQL数据库(例如直接找资源下载),但使用Python和一些外部库可以为我们提供额外且有价值的实践机会。
先决条件
我们先从最基本的开始。
首先,需要安装MySQL Workbench并连接服务,接下来就可以开始建立数据库:
CREATE DATABASE IF NOT EXISTS your_database_name;
现在,我们只需要安装必要的python库,基本的设置就完成了。我们将要使用的库如下所示,可以通过终端轻松安装。
- NumPy: pip install numpy
- Sqlalchemy: pip install sqlalchemy
- 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个表,并将它们存储在一个字典中,以供以后参考。
相关阅读 >>
使用sql语句统计数据时sum和count函数中使用if判断条件的讲解
python实现读写Sqlite3数据库并将统计数据写入excel的方法示例
androidstudio数据存储建立Sqlite数据库实现增删查改
更多相关阅读请进入《Sqlite》频道 >>

数据库系统概念 第6版
机械工业出版社
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。
转载请注明出处:木庄网络博客 » Python创建SQL数据库流程逐步讲解
相关推荐
评论
管理员已关闭评论功能...