Ensiná-lo a usar banco de dados Python Fun MySQL, big data não importar um problema!

A análise dos dados é inseparável do banco de dados, como usar python para MySQL banco de dados de conexão, e realizar operações CRUD-lo?

Encontramos também a necessidade de importar grandes quantidades de dados no banco de dados, como usar Python para importar grandes volumes de dados de forma eficiente é?

Este artigo irá explicar um por um, e com código e exemplos.

I. Antecedentes

Eu estava ligado experimentos em Anaconda notebook, o Python3.6 ambiente, é claro, pode ser operado em Python Shell dentro.

O comum e mais conexão mais estável para MySQL biblioteca python banco de dados é PyMySQL.

Portanto, este artigo discute a utilização de banco de dados de ligação PyMySQL MySQL, operações CRUD, e o armazenamento de grandes quantidades de dados.

Referência PyMySQL documentação oficial e seção "python Recolha de Dados" na dados armazenados.

Bem-vindo todos poderão ler o documento original, eu acredito que vai ser o entendimento mais completo.

Em segundo lugar, a operação básica

1, a biblioteca PyMySQL instalação

A maneira mais fácil:
na linha de comandopip install pymysql

Ou:
Baixar whl arquivo de instalação, o próprio processo de instalação Baidu.

2, instale o banco de dados MySQL

Existem duas categorias de banco de dados MySQL: MySQL e MariaDB, eu uso o último MariaDB.

Tanto na maioria das propriedades são compatíveis, o uso não sentir a diferença.

Dá Download: MySQL , MariaDB , o processo de instalação é muito simples, todo o caminho para o próximo passo, mas para lembrar sua senha.

Há uma pequena episódio, MySQL e MariaDB é equivalente à relação entre as irmãs, ambos criados pela mesma pessoa (Widenius) de. Após a aquisição da MySQL pela Oracle, o Sr. Widenius se sentir desconfortável, em seguida, fizeram uma MariaDB, pode substituir completamente MySQL. Daniel é rebelde.

3, SQL sintaxe básica

Use o seguinte SQL para criar tabelas, consultas, inserção de dados e outras funções, aqui uma visão geral breve das demonstrações básicos da linguagem SQL.

  • Ver banco de dados:SHOW DATABASES;

  • Criar um banco de dados:CREATE DATEBASE 数据库名称;

  • Use banco de dados:USE 数据库名称;

  • Ver a ficha produto:SHOW TABLES;

  • Criar uma tabela de dados:CREATE TABLE 表名称(列名1 (数据类型1),列名2 (数据类型2));

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

  • Veja os dados:SELECT * FROM 表名称;

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

4, conectar ao banco de dados

Depois de instalar os arquivos e bibliotecas necessárias também, em seguida, começou a conexão com o banco de dados, mesmo que o mistério não é difícil Oh!

#首先导入PyMySQL库
import pymysql
#连接数据库,创建连接对象connection
#连接对象作用是:连接数据库、发送数据库信息、处理回滚操作(查询中断时,数据库回到最初状态)、创建新的光标对象
connection = pymysql.connect(host = 'localhost' #host属性
                             user = 'root' #用户名 
                             password = '******'  #此处填登录数据库的密码
                             db = 'mysql' #数据库名
                             )

Aplicação deste código está conectado!

5, as operações de CRUD

Primeiro, vamos olhar para o que o banco de dados:

#创建光标对象,一个连接可以有很多光标,一个光标跟踪一种数据状态。
#光标对象作用是:、创建、删除、写入、查询等等
cur = connection.cursor()
#查看有哪些数据库,通过cur.fetchall()获取查询所有结果
print(cur.fetchall())

Imprimir todos os bancos de dados:

(('information_schema',),
('law',),
('mysql',),
('performance_schema',),
('test',))

Criar uma tabela no banco de dados de teste:

#使用数据库test
cur.execute('USE test')
#在test数据库里创建表student,有name列和age列
cur.execute('CREATE TABLE student(name VARCHAR(20),age TINYINT(3))')

inserir um estudante de dados para a tabela de dados:

sql = 'INSERT INTO student (name,age) VALUES (%s,%s)'
cur.execute(sql,('XiaoMing',23))

Ver o conteúdo estudante Folha de Dados:

cur.execute('SELECT * FROM student')
print(cur.fetchone())

Impresso como :( 'XiaoMing', 23)

Bingo! Nós acabou de inserir um conjunto de dados

Finalmente, lembre-se de desligar o cursor e conexão:

#关闭连接对象,否则会导致连接泄漏,消耗数据库资源
connection.close()
#关闭光标
cur.close()

OK, todo o processo muito mesmo.

Claro, existem operação muito básico, usando o método exige mais documento oficial PyMySQL olhando para ir.

Em terceiro lugar, a importação de grandes arquivos de dados

Para arquivo CSV, por exemplo, um arquivo CSV para o banco de dados, existem duas maneiras:

1, um SQL introduzido através de um método de inserção, por pequena quantidade de arquivo CSV de dados não é elaborado aqui.

2, por um método de introdução de dados de carga, rápido, adequado para grandes arquivos de dados é o foco deste artigo.

arquivo CSV de amostra da seguinte forma:

O trabalho global é dividido em três etapas:

1, está ligado com a base de dados mysql pitão;

2, crie uma tabela com base em um arquivo CSV campo de formulário;

3, um método que utiliza o conteúdo dos dados de carga importar um arquivo CSV.

A introdução SQL sintaxe de dados de carga:

LOAD DATA LOCAL INFILE 'csv_file_path' INTO TABLE table_name FIELDS TERMINATED BY ',' LINES TERMINATED BY '\\r\\n' IGNORE 1 LINES

csv_file_pathRefere-se a um arquivo caminho absoluto

table_name refere-se ao nome da tabela

FIELDS TERMINATED BY ',' refere-se ao delimitada por vírgula

LINES TERMINATED BY '\\r\\n' envoltório dedo

IGNORE 1 LINES pular a primeira linha, a primeira linha de nomes de campos como a tabela

Todos os códigos são os seguintes:

#导入pymysql方法
import pymysql


#连接数据库
config = {'host':'',
          'port':3306,
          'user':'username',
          'passwd':'password',
          'charset':'utf8mb4',
          'local_infile':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()

Acho que você gosta

Origin www.cnblogs.com/zhuwjwh/p/12557022.html
Recomendado
Clasificación