Manipulez diverses bases de données avec Python

Décrit comment utiliser la base de données principale en Python. Python s'exécute à la fois dans 2.x et 3.x dans un environnement Windows.

Pour les données de test, décompressez T01Prefecture.zip sur la page suivante et utilisez le tableau et les données.

__Cours d'introduction à la programmation PHP pour débutants __ http://php5.seesaa.net/article/61269550.html

MySQL

environnement

Python 2.7 ou 3.3 MySQL 5.6.15

Paramètres de la base de données

table

CREATE TABLE `t01prefecture` (
  `PREF_CD` int(3) NOT NULL DEFAULT '0',
  `PREF_NAME` varchar(10) DEFAULT NULL,
  PRIMARY KEY (`PREF_CD`)
) ENGINE=InnoDB D

__ Stocké __ qui renvoie un seul jeu d'enregistrements

DELIMITER $$
CREATE DEFINER=`username`@`%` PROCEDURE `test_sp`(IN fromNo INT,
                                                  IN toNo INT)
BEGIN
    select * from t01prefecture WHERE PREF_CD BETWEEN fromNo AND toNo ;
END$$
DELIMITER ;

__ Stocké __ qui renvoie plusieurs jeux d'enregistrements

DELIMITER $$
CREATE DEFINER=`username`@`%` PROCEDURE `test_sp2`(IN cd1 INT,IN cd2 INT)
BEGIN
  select * from t01prefecture WHERE PREF_CD = cd1;
  select * from t01prefecture WHERE PREF_CD = cd2;

END$$
DELIMITER ;

__Exemple de fonction __

DELIMITER $$
CREATE DEFINER=`username`@`%` FUNCTION `test_fn`(cd INT) RETURNS varchar(10) CHARSET utf8
BEGIN
    DECLARE ret VARCHAR(10);
    SELECT PREF_NAME INTO ret  FROM t01prefecture WHERE PREF_CD = cd;
   
RETURN ret;
END$$
DELIMITER ;

Code Python

Utilisez mysql-connector-python http://dev.mysql.com/downloads/connector/python/

# -*- coding: cp932 -*-
#exemple d'opération mysql
#easy_install mysql-connector-python
import mysql.connector

try:
    cnn = mysql.connector.connect(host='localhost',
                                  port=3306,
                                  db='Sample001',
                                  user='root',
                                  passwd='root',
                                  charset="cp932")
    cur = cnn.cursor()

    #Organiser les données de test
    pref_cd = 100
    cur.execute("""DELETE FROM t01prefecture WHERE PREF_CD >= %s""" , (pref_cd,))
    cnn.commit()

    print("Instruction SELECT simple==========================")
    from_id = 45
    to_id = 999

    #Ce qui suit doit correspondre au code de caractère de l'environnement!
    cur.execute("""SELECT PREF_CD,PREF_NAME FROM t01prefecture
                WHERE PREF_CD BETWEEN %s AND %s""" , (from_id, to_id, ))
    rows = cur.fetchall()
    for row in rows:
        print("%d %s" % (row[0], row[1]))

    print("Examen d'engagement==========================")
    pref_cd = 100
    pref_name = "Royaume de Mote Mote"
    cur.execute("""INSERT INTO t01prefecture(PREF_CD, PREF_NAME)
                VALUES (%s, %s)""" , (pref_cd, pref_name))

    pref_cd = 101
    pref_name = "Pays d'ambition"
    cur.execute("""INSERT INTO t01prefecture(PREF_CD,PREF_NAME)
                VALUES (%s, %s)""" , (pref_cd, pref_name,))
    cnn.commit()

    print("Test de restauration==========================")
    pref_cd = 102
    pref_name = "retour en arriere"
    cur.execute("""INSERT INTO t01prefecture(PREF_CD,PREF_NAME)
                VALUES (%s, %s)""" , (pref_cd, pref_name,))
    cnn.rollback()

    print("Examen des procédures stockées==========================")
    cur.callproc("test_sp", (from_id, to_id))
    for rs in cur.stored_results():
        print("Jeu d'enregistrements...")
        rows = rs.fetchall()
        for row in rows:
            print ("%d %s" % (row[0], row[1]))

    print("Examen des procédures stockées(Plusieurs)==================")
    cur.callproc("test_sp2", (1, 100))
    for rs in cur.stored_results():
        print("Jeu d'enregistrements...")
        rows = rs.fetchall()
        for row in rows:
            print ("%d %s" % (row[0], row[1]))

    print("Test de fonctionnalité==========================")
    pref_cd = 100
    cur.execute("""SELECT test_fn(%s)""" , (pref_cd,))
    rows = cur.fetchall()
    for row in rows:
        print("code:%d name:%s" % (pref_cd, row[0]))

    cur.close()
    cnn.close()
except (mysql.connector.errors.ProgrammingError) as e:
    print (e)

Convivialité

・ MYSQL stocké est similaire à SQLSERVER.

-Après avoir exécuté stocké, le jeu d'enregistrements est dans cur.stored_results. ..

-MySQL-python a une bibliothèque, mais cela ne fonctionne pas sur les séries 3.x. L'utilisation est presque la même. http://sourceforge.net/projects/mysql-python/

SQLSERVER

environnement

Python2.7 or 3.3 SQLSERVER EXPRESS 2012

Paramètres de la base de données

Autorisez les connexions SQL SERVER. 無題.png

table

CREATE TABLE [dbo].[T01Prefecture](
    [PREF_CD] [int] NOT NULL,
    [PREF_NAME] [varchar](10) NULL,
PRIMARY KEY CLUSTERED
(
    [PREF_CD] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

__ Stocké renvoyant un seul jeu d'enregistrements __

CREATE PROCEDURE [dbo].[test_sp]
    @from INT,
    @to INT
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

    -- Insert statements for procedure here
    SELECT * FROM T01Prefecture WHERE PREF_CD BETWEEN @from AND @to
END

__ Stocké qui renvoie plusieurs jeux d'enregistrements __


CREATE PROCEDURE [dbo].[test_sp2]
    @cd1 INT,
    @cd2 INT
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

    -- Insert statements for procedure here
    SELECT * FROM T01Prefecture WHERE PREF_CD = @cd1
    SELECT * FROM T01Prefecture WHERE PREF_CD = @cd2
END

Code Python

Faites fonctionner SQLSERVER directement

pymssql http://pymssql.org/en/latest/

Fonctionnement instable Cela fonctionne pour le moment avec Python2.7 (32 bits). Vous ne pouvez même pas l'installer avec Python3.3 (64 bits).

# -*- coding: cp932 -*-
#exemple d'opération de mssql
#Arrêtez pymssql car il n'encode pas bien VARCHAR.
#easy_install pymssql

import pymssql


cnn = pymssql.connect(host="127.0.0.1\SQLEXPRESS", user="sa", password="xxxx", database="Sample001")
cur = cnn.cursor()

#Organiser les données de test
pref_cd = 100
cur.execute("""DELETE FROM t01prefecture WHERE PREF_CD >= %d"""
            % (pref_cd,))
cnn.commit()

print("Instruction SELECT simple==========================")
print("Assurez-vous que le codage VARCHAR est incorrect")
from_id = 45
to_id = 999
cur.execute("""SELECT PREF_CD, PREF_NAME FROM T01Prefecture
            WHERE PREF_CD BETWEEN %d AND %d""" , (from_id, to_id))
rows = cur.fetchall()
for row in rows:
    print(row)
    # print("%d %s" % (row[0], row[1])) #Obtenir une erreur
    #L'analyse du code de caractère lors de la gestion de VARCHAR n'est pas valide
    #J'essaye de manipuler le code de caractère de CP932 comme UNICODE.

print("Convertir en NVARCHAR car il ne peut pas gérer les champs VARCHAR")
#Étant donné que les champs VARCHAR ne peuvent pas être traités, convertissez en NVARCHAR et retournez
cur.execute("""SELECT PREF_CD,CAST(PREF_NAME  AS NVARCHAR) FROM T01Prefecture
            WHERE PREF_CD BETWEEN %d AND %d""" , (from_id, to_id))
rows = cur.fetchall()
for row in rows:
    print(row)
    print("%d %s" % (row[0], row[1]))

print("Examen d'engagement==========================")
pref_cd = 100
pref_name = "Pays de Mote Mote"
cur.execute("""INSERT INTO t01prefecture(PREF_CD, PREF_NAME)
            VALUES (%d, %s)""" , (pref_cd, pref_name))

pref_cd = 101
pref_name = "Pays d'ambition"
cur.execute("""INSERT INTO t01prefecture(PREF_CD,PREF_NAME)
            VALUES (%d, %s)""" , (pref_cd, pref_name,))
cnn.commit()

print("Test de restauration==========================")
pref_cd = 102
pref_name = "rouleau"
cur.execute("""INSERT INTO t01prefecture(PREF_CD,PREF_NAME)
            VALUES (%d, %s)""" , (pref_cd, pref_name,))
cnn.rollback()


cur.execute("""SELECT PREF_CD, CAST(PREF_NAME AS NVARCHAR) FROM t01prefecture
            WHERE PREF_CD BETWEEN %d AND %d""" , (from_id, to_id, ))
rows = cur.fetchall()
for row in rows:
    print("%d %s" % (row[0], row[1]))

print("Examen des procédures stockées==========================")
cur.execute("""exec test_sp %d, %d """ , (from_id, to_id, ))
rows = cur.fetchall()
for row in rows:
    #Encodage incorrect
    #print("%d %s" % (row[0], row[1]))
    print(row)

print("Procédure stockée testant plusieurs==========================")
cur.execute("""exec test_sp2 %d, %d """ , (1, 10, ))
for row in rows:
    while True:
        print ("Jeu d'enregistrements...")
        rows = cur.fetchall()
        for row in rows:
            #print("%d %s" % (row[0], row[1]))
            print(row)
        if not cur.nextset():
            break

cur.close()
cnn.close()

Via ODBC

Utilisation de __pyodbc: __ https://code.google.com/p/pyodbc/

# -*- coding: cp932 -*-
#exemple d'opération de mssql
#easy_install pyodbc

import pyodbc

try:
    cnn = pyodbc.connect("DRIVER={SQL Server};SERVER=127.0.0.1\SQLEXPRESS;" +
                         "UID=sa;PWD=XXXX;DATABASE=Sample001")
    cur = cnn.cursor()
    #Organiser les données de test
    pref_cd = 100
    cur.execute("""DELETE FROM t01prefecture WHERE PREF_CD >= ?""", pref_cd)
    cnn.commit()

    print("Instruction SELECT simple==========================")
    from_id = 45
    to_id = 999
    #Ce qui suit doit correspondre au code de caractère de l'environnement!
    cur.execute("""SELECT PREF_CD,PREF_NAME FROM t01prefecture
                WHERE PREF_CD BETWEEN ? AND ?""" , from_id, to_id)
    rows = cur.fetchall()
    for row in rows:
        print("%d %s" % (row[0], row[1]))

    print("Examen d'engagement==========================")
    pref_cd = 100
    pref_name = "Pays de Mote Mote"
    cur.execute("""INSERT INTO t01prefecture(PREF_CD, PREF_NAME)
                VALUES (?, ?)""" , pref_cd, pref_name)

    pref_cd = 101
    pref_name = "Pays d'ambition"
    cur.execute("""INSERT INTO t01prefecture(PREF_CD,PREF_NAME)
                VALUES (?, ?)""" , pref_cd, pref_name)
    cnn.commit()

    print("Test de restauration==========================")
    pref_cd = 102
    pref_name = "rouleau"
    cur.execute("""INSERT INTO t01prefecture(PREF_CD,PREF_NAME)
                VALUES (?, ?)""" , pref_cd, pref_name)
    cnn.rollback()

    cur.execute("""SELECT PREF_CD,PREF_NAME FROM t01prefecture
                WHERE PREF_CD BETWEEN ? AND ?""" , from_id, to_id)
    rows = cur.fetchall()
    for row in rows:
        print("%d %s" % (row[0], row[1]))

    print("Examen des procédures stockées==========================")
    cur.execute("""exec test_sp ?, ? """ , from_id, to_id)
    rows = cur.fetchall()
    for row in rows:
        print("%d %s" % (row[0], row[1]))

    print("Procédure stockée testant plusieurs====================")
    cur.execute("""exec test_sp2 ?, ? """ , 1, 10)
    while True:
        print ("Jeu d'enregistrements...")
        rows = cur.fetchall()
        for row in rows:
            print("%d %s" % (row[0], row[1]))
        if not cur.nextset():
            break

    cur.close()
    cnn.close()

except (pyodbc.Error) as e:
    print (e)
    print (e.args[1])

Exemple d'utilisation de __pypyodbc: __ https://code.google.com/p/pypyodbc/

# -*- coding: cp932 -*-
#exemple d'opération de mssql
#easy_install pypyodbc

import pypyodbc

try:
    cnn = pypyodbc.connect("DRIVER={SQL Server};SERVER=127.0.0.1\SQLEXPRESS;UID=sa;PWD=xxxxx;DATABASE=Sample001")
    cur = cnn.cursor()

    #Organiser les données de test
    pref_cd = 100
    cur.execute("""DELETE FROM t01prefecture WHERE PREF_CD >= ?"""
                , (pref_cd,))
    cnn.commit()

    print("Instruction SELECT simple==========================")
    from_id = 45
    to_id = 999
    #Ce qui suit doit correspondre au code de caractère de l'environnement!
    cur.execute("""SELECT PREF_CD,PREF_NAME FROM t01prefecture
                WHERE PREF_CD BETWEEN ? AND ?""" , (from_id, to_id, ))
    rows = cur.fetchall()
    for row in rows:
        print("%d %s" % (row[0], row[1]))


    print("Examen d'engagement==========================")
    pref_cd = 100
    pref_name = "Pays de Mote Mote"
    cur.execute("""INSERT INTO t01prefecture(PREF_CD, PREF_NAME)
                VALUES (?, ?)""" , (pref_cd, pref_name))

    pref_cd = 101
    pref_name = "Pays d'ambition"
    cur.execute("""INSERT INTO t01prefecture(PREF_CD,PREF_NAME)
                VALUES (?, ?)""" , (pref_cd, pref_name,))
    cnn.commit()

    print("Test de restauration==========================")
    pref_cd = 102
    pref_name = "rouleau"
    cur.execute("""INSERT INTO t01prefecture(PREF_CD,PREF_NAME)
                VALUES (?, ?)""" , (pref_cd, pref_name,))
    cnn.rollback()


    cur.execute("""SELECT PREF_CD,PREF_NAME FROM t01prefecture
                WHERE PREF_CD BETWEEN ? AND ?""" , (from_id, to_id, ))
    rows = cur.fetchall()
    for row in rows:
        print("%d %s" % (row[0], row[1]))

    print("Examen des procédures stockées==========================")
    cur.execute("""exec test_sp ?, ? """ , (from_id, to_id, ))
    rows = cur.fetchall()
    for row in rows:
        print("%d %s" % (row[0], row[1]))

    print("Procédure stockée testant plusieurs==========================")
    cur.execute("""exec test_sp2 ?, ? """ , (1, 10, ))
    while True:
        print ("Jeu d'enregistrements...")
        rows = cur.fetchall()
        for row in rows:
            print("%d %s" % (row[0], row[1]))
        if not cur.nextset():
            break

    cur.close()
    cnn.close()
except (pypyodbc.DatabaseError) as e:
    print (e.args[1])
 

Convivialité

pymssql peut être utilisé sans passer par ODBC, mais l'opération est extrêmement instable. Le comportement de VARCHAR est suspect et il ne peut être utilisé que s'il est converti en NVARCHAR. De plus, vous ne pouvez même pas l'installer avec Python 3.3 64 bits.

Toutes les bibliothèques via ODBC ont fonctionné. Je ne l'ai pas confirmé sauf pour Windows, mais on dit qu'il le supporte.

ORACLE

environnement

Python 2.7 ou 3.3 Oracle11

  1. Installez le client Oracle. À ce stade, créez un environnement pour les développeurs.
  2. Téléchargez et installez à partir de ce qui suit ou easy_install. cx_Oracle http://cx-oracle.sourceforge.net/

Code Python

# -*- coding: cp932 -*-
# cx_Opération ORACLE en Python à l'aide d'Oracle
#1.Installez le client Oracle.
#À ce stade, créez un environnement pour les développeurs.
#(Peut-être avez-vous besoin d'OCI?)
# 
#2.Téléchargez et installez ci-dessous ou facilement_installer.
#  cx_Oracle
#  http://cx-oracle.sourceforge.net/
import cx_Oracle
import os
os.environ["NLS_LANG"] = "JAPANESE_JAPAN.JA16SJISTILDE"
try:
    tns = cx_Oracle.makedsn("localhost", 1521, "Sample")
    conn = cx_Oracle.connect("user", "pass", tns)
    cur = conn.cursor()
    from_cd = 45
    to_cd = 200
    cur.execute("""SELECT * FROM T01PREFECTURE
                WHERE PREF_CD BETWEEN :arg1 AND :arg2""",
                arg1=from_cd,
                arg2=to_cd)
    rows = cur.fetchall()
    for r in rows:
        print("%d : %s" % (r[0], r[1]))

    print ("===================")
    print ("Effacer 100")
    cur.execute("""DELETE FROM T01PREFECTURE WHERE PREF_CD=:arg1""",
                arg1=100)

    cur.execute("""SELECT * FROM T01PREFECTURE
                WHERE PREF_CD BETWEEN :arg1 AND :arg2""",
                arg1=from_cd,
                arg2=to_cd)
    rows = cur.fetchall()
    for r in rows:
        print("%d : %s" % (r[0], r[1]))

    print ("------------------")
    print ("Ajouter 100")
    cur.execute("""INSERT INTO T01PREFECTURE
                VALUES (:arg1, :arg2)""",
                arg1=100,
                arg2="je")
    conn.commit()

    cur.execute("""SELECT * FROM T01PREFECTURE
                WHERE PREF_CD BETWEEN :arg1 AND :arg2""",
                arg1=from_cd,
                arg2=to_cd)
    rows = cur.fetchall()
    for r in rows:
        print("%d : %s" % (r[0], r[1]))

    print ("===================")
    print ("101 ajoutés")
    cur.execute("""INSERT INTO T01PREFECTURE
                VALUES (:arg1, :arg2)""",
                arg1=101,
                arg2="Hokuto")

    cur.execute("""SELECT * FROM T01PREFECTURE
                WHERE PREF_CD BETWEEN :arg1 AND :arg2""",
                arg1=from_cd,
                arg2=to_cd)
    rows = cur.fetchall()
    for r in rows:
        print("%d : %s" % (r[0], r[1]))

    print ("------------------")
    print ("retour en arriere")
    conn.rollback()
    cur.execute("""SELECT * FROM T01PREFECTURE
                WHERE PREF_CD BETWEEN :arg1 AND :arg2""",
                arg1=from_cd,
                arg2=to_cd)
    rows = cur.fetchall()
    for r in rows:
        print("%d : %s" % (r[0], r[1]))

except (cx_Oracle.DatabaseError) as ex:
    error, = ex.args
    print (error.message)

Convivialité

Il semble que vous travaillez via OCI, vous devez donc installer le client ORACLE. J'ai l'habitude de me connecter. Spécifiez également le code de caractère avec la variable d'environnement.

PL / SQL dans ORACLE ne renvoie pas de jeu de résultats contrairement à SQLSERVER. (Je peux renvoyer la séquence, mais je n'ai pas expérimenté ici car c'est gênant)

Les modifications sont ignorées sans COMMIT explicite.

Postgresql

environnement

Python 2.x / 3.x PostgresSQL 9.3

Utilisez psycopg2 comme bibliothèque Pour Windows, téléchargez à partir de la page suivante et exécutez Exe http://www.stickpeople.com/projects/python/win-psycopg/

Paramètres de la base de données

__ définition de la table__

CREATE TABLE t01prefecture
(
  pref_cd integer NOT NULL,
  pref_name character varying(10),
  CONSTRAINT t01prefecture_pkey PRIMARY KEY (pref_cd)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE t01prefecture
  OWNER TO postgres;

__Fonction définie par l'utilisateur PostgresSQL __

CREATE OR REPLACE FUNCTION test_sp(IN from_cd integer, IN to_cd integer)
  RETURNS TABLE(code integer, name varchar) AS
$$
DECLARE
BEGIN
    RETURN QUERY SELECT PREF_CD,PREF_NAME FROM t01Prefecture
            WHERE PREF_CD BETWEEN from_cd AND to_cd;
END;
$$ LANGUAGE plpgsql;

Code Python

# -*- coding: cp932 -*-
#Pour Windows, téléchargez à partir de ce qui suit
#  http://www.stickpeople.com/projects/python/win-psycopg/
# Python3.Pour x, unicode(row[1],'utf-8')Est inutile.
#
import psycopg2

try:
    cnn = psycopg2.connect("dbname=Sample001 host=localhost user=postgres password=xxxxx")
    cur = cnn.cursor()

    #Organiser les données de test
    pref_cd = 100
    cur.execute("""DELETE FROM t01prefecture WHERE PREF_CD >= %s"""
                , (pref_cd,))
    cnn.commit()

    print("Instruction SELECT simple==========================")
    from_id = 45
    to_id = 999
    cur.execute("""SELECT PREF_CD,PREF_NAME FROM t01prefecture
                WHERE PREF_CD BETWEEN %s AND %s""" , (from_id, to_id, ))
    rows = cur.fetchall()
    for row in rows:
        #print("%d %s" % (row[0], unicode(row[1],'utf-8')))
        print("%d %s" % (row[0], row[1]))

    print("Examen d'engagement==========================")
    pref_cd = 100
    pref_name = u"Pays de Mote Mote"
    cur.execute(u"""INSERT INTO t01prefecture(PREF_CD, PREF_NAME)
                VALUES (%s, %s)""" , (pref_cd, pref_name))

    pref_cd = 101
    pref_name = u"Pays d'ambition"
    cur.execute(u"""INSERT INTO t01prefecture(PREF_CD,PREF_NAME)
                VALUES (%s, %s)""" , (pref_cd, pref_name,))
    cnn.commit()
    cur.execute("""SELECT PREF_CD,PREF_NAME FROM t01prefecture
                WHERE PREF_CD BETWEEN %s AND %s""" , (from_id, to_id, ))
    rows = cur.fetchall()
    for row in rows:
        #print("%d %s" % (row[0],unicode(row[1],'utf-8')))
        print("%d %s" % (row[0],row[1]))


    print("Test de restauration==========================")
    pref_cd = 102
    pref_name = u"rouleau"
    cur.execute(u"""INSERT INTO t01prefecture(PREF_CD,PREF_NAME)
                VALUES (%s, %s)""" , (pref_cd, pref_name,))

    cur.execute("""SELECT PREF_CD,PREF_NAME FROM t01prefecture
                WHERE PREF_CD BETWEEN %s AND %s""" , (from_id, to_id, ))
    rows = cur.fetchall()
    for row in rows:
        #print("%d %s" % (row[0], unicode(row[1],'utf-8')))
        print("%d %s" % (row[0], row[1]))

    print("-------------------------")
    cnn.rollback()
    cur.execute("""SELECT PREF_CD,PREF_NAME FROM t01prefecture
                WHERE PREF_CD BETWEEN %s AND %s""" , (from_id, to_id, ))
    rows = cur.fetchall()
    for row in rows:
        #print("%d %s" % (row[0], unicode(row[1],'utf-8')))
        print("%d %s" % (row[0], row[1]))

    print("Défini par l'utilisateur==========================")
    cur.execute("""SELECT * FROM test_sp(%s,%s)""" , (from_id, to_id, ))
    rows = cur.fetchall()
    for row in rows:
        #print("%d %s" % (row[0], unicode(row[1],'utf-8')))
        print("%d %s" % (row[0], row[1]))

    cur.close()
    cnn.close()

except (psycopg2.OperationalError) as e:
    print (e)

Convivialité

Python2.X renvoie le jeu d'enregistrements en UTF8, vous devez donc le convertir une fois en UNICODE. Pas besoin de système Python3.

Les procédures stockées Postgres sont similaires à ORACLE PL / SQL. Cependant, vous pouvez spécifier une fonction qui renvoie le type de table.

SQLite

environnement

aucune instruction spéciale. Si vous disposez de Python 2.5 ou version ultérieure, vous devriez pouvoir utiliser SQLITE3 en standard.

Code Python

# -*- coding: cp932 -*-
#sqlite3 est Python2.Devrait être standard à partir de 5.
import sqlite3
conn = sqlite3.connect('test.sqlite3')
sql = '''CREATE TABLE  IF NOT EXISTS  t01prefecture(
                         pref_cd INTEGER,
                         pref_name TEXT);'''
conn.execute(sql)

conn.execute(u"DELETE FROM t01prefecture")

#Examen d'engagement
pref_cd = 100
pref_name = u"Pays de Mote Mote"
conn.execute(u"""INSERT INTO t01prefecture(PREF_CD, PREF_NAME)
            VALUES (?, ?)""" , (pref_cd, pref_name))

pref_cd = 101
pref_name = u"Pays d'ambition"
conn.execute(u"""INSERT INTO t01prefecture(PREF_CD,PREF_NAME)
            VALUES (?, ?)""" , (pref_cd, pref_name,))
conn.commit()

#Test de restauration
pref_cd = 102
pref_name = u"back"
conn.execute(u"""INSERT INTO t01prefecture(PREF_CD,PREF_NAME)
            VALUES (?, ?)""" , (pref_cd, pref_name,))
conn.rollback()

rows = conn.execute(u'SELECT * FROM t01prefecture WHERE pref_cd > ?', (0,))
for row in rows:
    print(u"%d %s" % (row[0], row[1]))

#Défini par l'utilisateur
#Concaténer uniquement les caractères
class UserDef:
    def __init__(self):
        self.values = []
    def step(self, value):
        self.values.append(value)
    def finalize(self):
        return "/".join(map(str, self.values)) 

conn.create_aggregate("userdef", 1, UserDef)
rows = conn.execute(u'SELECT userdef(PREF_NAME) FROM t01prefecture')
for row in rows:
    print(u"%s" % (row[0]))

conn.close()

Convivialité

Contrairement aux bases de données conventionnelles, il n'est pas nécessaire de créer un serveur. Les fonctions définies par l'utilisateur peuvent être définies côté client.

Recommended Posts

Manipulez diverses bases de données avec Python
FizzBuzz en Python3
Grattage avec Python
Statistiques avec python
[Automation] Manipulez la souris et le clavier avec Python
Grattage avec Python
Python avec Go
Twilio avec Python
Intégrer avec Python
Jouez avec 2016-Python
AES256 avec python
Testé avec Python
Manipulation des données DynamoDB avec Lambda (Node et Python)
python commence par ()
# 3 [python3] Divers opérateurs
avec syntaxe (Python)
1. Statistiques apprises avec Python 1-3. Calcul de diverses statistiques (statistiques)
Bingo avec python
Zundokokiyoshi avec python
Excel avec Python
Micro-ordinateur avec Python
Cast avec python
[Diverses analyses d'images avec plotly] Visualisation dynamique avec plotly [python, image]
Conseils personnels lorsque vous faites diverses choses avec Python 3
1. Statistiques apprises avec Python 1-2. Calcul de diverses statistiques (Numpy)
Utilisez diverses fonctionnalités de rabbimq avec python pika
Communication série avec Python
Zip, décompressez avec python
Django 1.11 a démarré avec Python3.6
Jugement des nombres premiers avec Python
Python avec eclipse + PyDev.
Communication de socket avec Python
Analyse de données avec python 2
Grattage en Python (préparation)
Apprendre Python avec ChemTHEATER 03
Recherche séquentielle avec Python
Exécutez Python avec VBA
Manipuler yaml avec python
Résolvez AtCoder 167 avec python
Communication série avec python
[Python] Utiliser JSON avec Python
Apprendre Python avec ChemTHEATER 05-1
Apprenez Python avec ChemTHEATER
Exécutez prepDE.py avec python3
1.1 Premiers pas avec Python
Collecter des tweets avec Python
Binarisation avec OpenCV / Python
3. 3. Programmation IA avec Python
Méthode Kernel avec Python
Non bloquant avec Python + uWSGI
Grattage avec Python + PhantomJS
Publier des tweets avec python
Utiliser mecab avec Python 3
[Python] Redirection avec CGIHTTPServer
Divers outils de visualisation Python
Utiliser Kinesis avec Python
Premiers pas avec Python
Utiliser DynamoDB avec Python
Getter Zundko avec python
Gérez Excel avec python