Python을 사용하여 MySQL 데이터베이스를 사용하는 방법

WBOY
풀어 주다: 2023-05-26 14:46:06
앞으로
1175명이 탐색했습니다.

1. 배경

Python 3.6 환경을 사용하여 Anaconda Notebook에서 연결 실험을 진행했습니다. 물론 Python Shell에서도 작업이 가능합니다.

MySQL 데이터베이스에 연결하기 위해 가장 일반적으로 사용되며 안정적인 Python 라이브러리는 PyMySQL입니다.

2. 기본 작업

1. PyMySQL 라이브러리를 설치하세요

가장 쉬운 방법:

명령줄에 pip install pymysqlpip install pymysql

或者:

下载whl文件[1]进行安装,安装过程自行百度。

2、安装MySQL数据库

MySQL数据库有两种:

MySQLMariaDB

我用的是MariaDB,它是MySQL的一个分支。

两者在绝大部分性能上是兼容的,使用起来感觉不到啥区别。

给出下载地址:MySQL[2]MariaDB[3],安装过程很简单,一路Next Step,不过要记好密码。

有个小插曲,MySQL和MariaDB相当于姐姐妹妹的关系,两者由同一个人(Widenius)创建的。

MySQL被Oracle收购后,Widenius先生觉得不爽,于是搞了个MariaDB,可以完全替代MySQL。

大牛就是任性。

3、SQL基本语法

下面要用SQL的表创建、查询、数据插入等功能,这里简要介绍一下SQL语言的基本语句。

  • 查看数据库:SHOW DATABASES;

  • 创建数据库:CREATE DATEBASE 数据库名称;

  • 使用数据库:USE 数据库名称;

  • 查看数据表:SHOW TABLES;

  • 创建数据表:CREATE TABLE 表名称(列名1 (数据类型1),列名2 (数据类型2));

  • 插入数据:INSERT INTO 表名称(列名1,列名2) VALUES(数据1,数据2);

  • 查看数据:SELECT * FROM 表名称;

  • 更新数据:UPDATE 表名称 SET 列名1=新数据1,列名2=新数据2 WHERE 某列=某数据;

    을 입력하거나:

whl 파일을 다운로드하세요. ]

설치를 위해서는 설치 과정이 직접 진행됩니다.

2. MySQL 데이터베이스 설치

MySQL 데이터베이스는 두 가지가 있습니다:

MySQL

MariaDB

을 사용합니다 MySQL의 포크인 MariaDB.

이 둘은 대부분의 공연에서 호환이 가능하며, 사용해보시면 별 차이를 느끼실 수 없습니다.

다운로드 주소는

MySQL[2]

,

MariaDB[3]

입니다. 설치 과정은 매우 간단합니다. 다음 단계를 따르되 비밀번호를 기억하세요.

작은 에피소드가 있습니다. MySQL과 MariaDB는 둘 다 같은 사람(Widenius)에 의해 만들어졌습니다.

MySQL이 Oracle에 인수된 후 Widenius 씨는 불만을 느껴 MySQL을 완전히 대체할 수 있는 MariaDB를 구축했습니다.

다니엘은 고집이 세다.

3. 기본 SQL 구문

다음으로 SQL 테이블 생성, 쿼리, 데이터 삽입 및 기타 기능을 사용하겠습니다. SQL 기본 언어 문장에 대한 간략한 소개입니다.

데이터베이스 보기: SHOW DATABASES;

  • 데이터베이스 생성: CREATE DATEBASE 데이터베이스 이름;

  • 데이터베이스 사용: 데이터베이스 이름 사용;

  • 데이터 테이블 보기: SHOW TABLES;Python을 사용하여 MySQL 데이터베이스를 사용하는 방법

  • 데이터 테이블 생성 :CREATE TABLE 테이블 이름(열 이름 1(데이터 유형 1), 열 이름 2(데이터 유형 2))

  • 데이터 삽입: INSERT INTO 테이블 이름(열 이름 1, 열 이름 2) VALUES (데이터 1, 데이터 2) 🎜🎜
  • 🎜데이터 보기: SELECT * FROM 테이블 이름 🎜🎜
  • 🎜데이터 업데이트 :UPDATE 테이블 이름 SET 열 이름 1 = 새 데이터 1, 열 이름 2 = 새 데이터 2 WHERE 특정 열 = 특정 데이터 🎜🎜🎜🎜4 데이터베이스에 연결합니다🎜🎜. 데이터베이스를 생성한 후 본격적으로 데이터베이스 연결을 시작해 보겠습니다. 신비롭지만 어렵지 않습니다! 🎜
    #首先导入PyMySQL库
    import pymysql
    #连接数据库,创建连接对象connection
    #连接对象作用是:连接数据库、发送数据库信息、处理回滚操作(查询中断时,数据库回到最初状态)、创建新的光标对象
    connection = pymysql.connect(host = 'localhost' #host属性
                                user = 'root' #用户名
                                password = '******'  #此处填登录数据库的密码
                                db = 'mysql' #数据库名
                                )
    로그인 후 복사
    🎜이 코드를 실행하면 연결이 완료됩니다! 🎜🎜5. 추가, 삭제, 수정 및 작업 확인🎜🎜먼저 어떤 데이터베이스가 있는지 확인하세요:🎜
    #创建光标对象,一个连接可以有很多光标,一个光标跟踪一种数据状态。
    #光标对象作用是:、创建、删除、写入、查询等等
    cur = connection.cursor()
    #查看有哪些数据库,通过cur.fetchall()获取查询所有结果
    print(cur.fetchall())
    로그인 후 복사
    🎜모든 데이터베이스 인쇄:🎜
    (('information_schema',),
    ('law',),
    ('mysql',),
    ('performance_schema',),
    ('test',))
    로그인 후 복사
    🎜테스트 데이터베이스에 테이블 만들기:🎜
    #使用数据库test
    cur.execute('USE test')
    #在test数据库里创建表student,有name列和age列
    cur.execute('CREATE TABLE student(name VARCHAR(20),age TINYINT(3))')
    로그인 후 복사
    🎜데이터 조각을 데이터 테이블 학생:🎜
    sql = 'INSERT INTO student (name,age) VALUES (%s,%s)'
    cur.execute(sql,('XiaoMing',23))
    로그인 후 복사
    🎜데이터 테이블 보기 학생 콘텐츠: 🎜
    cur.execute('SELECT * FROM student')
    print(cur.fetchone())
    로그인 후 복사
    🎜인쇄물은 다음과 같습니다: ('XiaoMing', 23)🎜🎜Bingo! 방금 삽입한 데이터입니다. 🎜🎜마지막으로 커서와 연결을 닫아야 합니다. 🎜
    #关闭连接对象,否则会导致连接泄漏,消耗数据库资源
    connection.close()
    #关闭光标
    cur.close()
    로그인 후 복사
    🎜좋아요, 전체 프로세스는 대략 다음과 같습니다. 🎜🎜물론, 이는 매우 기본적인 작업입니다. 더 많은 사용 방법은 🎜PyMySQL 공식 문서[4]🎜에서 확인할 수 있습니다. 🎜🎜3. 빅데이터 파일 가져오기🎜🎜csv 파일을 예로 들면 일반적으로 csv 파일을 데이터베이스로 가져오는 방법에는 두 가지가 있습니다. 🎜🎜1. CSV에 적합한 삽입 방법을 통해 하나씩 가져옵니다. 데이터 용량이 작은 파일은 여기서는 수행되지 않습니다. 🎜🎜2. 이 글의 핵심이기도 한 빅데이터 파일에 빠르고 적합한 데이터 로드 방식을 통해 가져옵니다. 🎜🎜샘플 CSV 파일은 다음과 같습니다. 🎜🎜🎜🎜🎜전체 작업은 3단계로 나뉩니다. 🎜🎜1. Python을 사용하여 mysql 데이터베이스에 연결합니다.

    2、基于CSV文件表格字段创建表;

    3、使用load data方法导入CSV文件内容。

    sql的load data语法简介:

    LOAD DATA LOCAL INFILE 'csv_file_path' INTO TABLE table_name FIELDS TERMINATED BY ',' LINES TERMINATED BY '\\r\\n' IGNORE 1 LINES
    로그인 후 복사

    csv_file_path 指文件绝对路径 table_name指表名称 FIELDS TERMINATED BY ','指以逗号分隔 LINES TERMINATED BY '\\r\\n'指换行 IGNORE 1 LINES指跳过第一行,因为第一行是表的字段名

    下面给出全部代码:

    #导入pymysql方法
    import pymysql
    
    
    #连接数据库
    config = {:'',
             :3306,
             :'username',
             :'password',
             :'utf8mb4',
             :1
             }
    conn = pymysql.connect(**config)
    cur = conn.cursor()
    
    
    #load_csv函数,参数分别为csv文件路径,表名称,数据库名称
    def load_csv(csv_file_path,table_name,database='evdata'):
       #打开csv文件
       file = open(csv_file_path, 'r',encoding='utf-8')
       #读取csv文件第一行字段名,创建表
       reader = file.readline()
       b = reader.split(',')
       colum = ''
       for a in b:
           colum = colum + a + ' varchar(255),'
       colum = colum[:-1]
       #编写sql,create_sql负责创建表,data_sql负责导入数据
       create_sql = 'create table if not exists ' + table_name + ' ' + '(' + colum + ')' + ' DEFAULT CHARSET=utf8'
       data_sql = "LOAD DATA LOCAL INFILE '%s' INTO TABLE %s FIELDS TERMINATED BY ',' LINES TERMINATED BY '\\r\\n' IGNORE 1 LINES" % (csv_filename,table_name)
    
       #使用数据库
       cur.execute('use %s' % database)
       #设置编码格式
       cur.execute('SET NAMES utf8;')
       cur.execute('SET character_set_connection=utf8;')
       #执行create_sql,创建表
       cur.execute(create_sql)
       #执行data_sql,导入数据
       cur.execute(data_sql)
       conn.commit()
       #关闭连接
       conn.close()
       cur.close()
    로그인 후 복사
  • 위 내용은 Python을 사용하여 MySQL 데이터베이스를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    관련 라벨:
    원천:yisu.com
    본 웹사이트의 성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
    인기 튜토리얼
    더>
    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿