Rumah >pangkalan data >tutorial mysql >Cara menggunakan Python untuk bermain dengan pangkalan data MySQL
Saya menjalankan eksperimen sambungan dalam buku nota Anaconda, menggunakan persekitaran Python3.6 Sudah tentu, operasi juga boleh dilakukan dalam Python Shell.
Pustaka python yang paling biasa digunakan dan stabil untuk menyambung ke pangkalan data MySQL ialah PyMySQL.
Cara paling mudah:
Masukkan pip install pymysql
fail whl [1] untuk memasangnya Proses pemasangan dilakukan sendiri.
2. Pasang pangkalan data MySQL Terdapat dua pangkalan data MySQL:MySQL dan MariaDB
Saya menggunakan MariaDB, yang merupakan garpu MySQL. Kedua-duanya serasi dalam kebanyakan persembahan, dan anda tidak dapat merasakan sebarang perbezaan apabila menggunakannya. memberikan alamat muat turun:MySQL[2], MariaDB[3] Proses pemasangan adalah sangat mudah, cuma ikut Langkah Seterusnya, tetapi ingat kata laluan.
Terdapat episod kecil MySQL dan MariaDB setara dengan perhubungan adik-beradik perempuan (Widenius). Selepas MySQL diperoleh oleh Oracle, Encik Widenius berasa tidak senang hati, jadi dia membina MariaDB, yang boleh menggantikan MySQL sepenuhnya. Lembu besar sengaja. 3. Sintaks SQL Asas Seterusnya, kami akan menggunakan penciptaan jadual SQL, pertanyaan, sisipan data dan fungsi lain Berikut ialah pengenalan ringkas kepada pernyataan asas bahasa 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 某列=某数据;
#首先导入PyMySQL库 import pymysql #连接数据库,创建连接对象connection #连接对象作用是:连接数据库、发送数据库信息、处理回滚操作(查询中断时,数据库回到最初状态)、创建新的光标对象 connection = pymysql.connect(host = 'localhost' #host属性 user = 'root' #用户名 password = '******' #此处填登录数据库的密码 db = 'mysql' #数据库名 )Laksanakan kod ini dan sambungan akan selesai! 5. Tambah, padam, ubah suai dan semak operasi Semak dahulu pangkalan data mana yang ada:
#创建光标对象,一个连接可以有很多光标,一个光标跟踪一种数据状态。 #光标对象作用是:、创建、删除、写入、查询等等 cur = connection.cursor() #查看有哪些数据库,通过cur.fetchall()获取查询所有结果 print(cur.fetchall())Cetak semua pangkalan data:
(('information_schema',), ('law',), ('mysql',), ('performance_schema',), ('test',))Buat dalam pangkalan data ujian Jadual:
#使用数据库test cur.execute('USE test') #在test数据库里创建表student,有name列和age列 cur.execute('CREATE TABLE student(name VARCHAR(20),age TINYINT(3))')Masukkan sekeping data ke dalam jadual data pelajar:
sql = 'INSERT INTO student (name,age) VALUES (%s,%s)' cur.execute(sql,('XiaoMing',23))Lihat kandungan pelajar jadual data:
cur.execute('SELECT * FROM student') print(cur.fetchone())Cetakan ialah: ('XiaoMing', 23)Bingo! Ia adalah sekeping data yang baru kami masukkan Akhir sekali, ingat untuk menutup kursor dan sambungan:
#关闭连接对象,否则会导致连接泄漏,消耗数据库资源 connection.close() #关闭光标 cur.close()OK, keseluruhan proses adalah lebih kurang seperti ini. Sudah tentu, ini adalah operasi yang sangat asas. Lebih banyak kaedah penggunaan perlu ditemui dalam
dokumentasi rasmi PyMySQL[4].
3 Import fail data besar Ambil fail csv sebagai contoh biasanya terdapat dua cara untuk mengimport fail csv ke dalam pangkalan data: 1 melalui kaedah sisipan SQL , sesuai untuk fail CSV dengan volum data yang kecil, dan tidak akan diterangkan secara terperinci di sini. 2. Import melalui kaedah muat data, yang pantas dan sesuai untuk fail data besar, yang juga menjadi tumpuan artikel ini. Sampel fail CSV adalah seperti berikut: Kerja keseluruhan dibahagikan kepada 3 langkah: 1 ke pangkalan data 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()
Atas ialah kandungan terperinci Cara menggunakan Python untuk bermain dengan pangkalan data MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!