Top / Programming / Python / Python Tips / SQLite3���g�p����

SQLite3���g�p����

�y�ʁE�����ȃf�[�^�x�[�XSQLite��Python���爵�����߂̃��C�u�����B

�C���X�g�[��

Python2.5����W�����C�u�����ɓ���܂����B
�C���X�g�[����Ƃ͕s�v�ł��B

�g�p���@

sqlite3���C���|�[�g����

#!python2.6
# -*- coding: utf-8 -*-
import sqlite3

�f�[�^�x�[�X���쐬����

con = sqlite3.connect("data.db")

isolation_level��None���w�肷��ƁA�����R�~�b�g���[�h�ɂȂ�܂��B

con = sqlite3.connect('temp.db', isolation_level=None)

���ʂȖ��O�ł��� ":memory:" ���g����RAM��Ƀf�[�^�x�[�X����邱�Ƃ��ł��܂��B

con = sqlite3.connect(":memory:")

�f�[�^�x�[�X��‚���

con.close()

�e�[�u�����쐬����

String�^�́u�����v�t�B�[���h�A Integer�^�́u�N��v�t�B�[���h�A String�^�́u�����v�t�B�[���h�A�����u�Ј��v�e�[�u�����쐬����B

sql = u"""
create table �Ј� (
  ���O varchar(10),
  �N�� integer,
  ���� varchar(200)
);
"""
con.execute(sql)

�g�p�ł���f�[�^�^

���R�[�h��o�^����

���R�[�h��o�^����

sql = u"insert into �Ј� values ('���{', 26, '�L��')"
con.execute(sql)

�v���[�X�z���_�ƃo�C���h�l���g�p�����ꍇ

sql = u"insert into �Ј� values (?, ?, ?)"
con.execute(sql, (u"����", 35, u"�c�ƕ�"))
con.execute(sql, (u"�T��", 40, u"�c�ƕ�"))

�ꊇ�o�^����

executemany()���\�b�h���g�p����ƁA������SQL�����ꊇ���Ď��s�ł��܂��B

con.executemany(u"insert into �Ј� values (?, ?, ?)",
                [(u"����", 35, u"�c�ƕ�"),
                 (u"�T��", 40, u"�c�ƕ�")])

���R�[�h���擾����

c = con.cursor()
c.execute(u"select * from �Ј�")
for row in c: # row��tuple
    print row[0], row[1], row[2]

����

���{ 26 �L��
���� 35 �c�ƕ�
�T�� 40 �c�ƕ�

execute()���\�b�h�́Acursor()���\�b�h�̃V���[�g�J�b�g�ł��B

c = con.execute(u"select * from �Ј�")
for row in c:
    print row[0], row[1], row[2]

����

���{ 26 �L��
���� 35 �c�ƕ�
�T�� 40 �c�ƕ�

�ʒu�ł͂Ȃ����O�ŃJ�����ɃA�N�Z�X����

con = sqlite3.connect("data.db")
con.row_factory = sqlite3.Row
for row in con.execute(u"select * from �Ј�"):
    print row["���O"], row["�N��"], row["����"]

�ŏ��̃��R�[�h���擾����

�J�[�\����fetchone()���\�b�h���ĂԂƈ�s���’l���擾�ł��܂��B

c = con.execute(u"select * from �Ј�")
row = c.fetchone()
print row[0], row[1], row[2]
row = c.fetchone()
print row[0], row[1], row[2]

����

���{ 26 �L��
���� 35 �c�ƕ�

�c��̃��R�[�h���擾����

�J�[�\����fetchall()���\�b�h���ĂԂƎc��̂��ׂĂ̍s���擾�ł��܂��B

c = con.execute(u"select * from �Ј�")
row = c.fetchone()
print row[0], row[1], row[2]

print "---"
for row in c.fetchall():
    print row[0], row[1], row[2]

����

���{ 26 �L��
---
���� 35 �c�ƕ�
�T�� 40 �c�ƕ�

���R�[�h���X�V����

#����̕������L�񕔂ɍX�V����
con.execute(u"update �Ј� set ����='�L��' where ���O='����'")

���R�[�h���폜����

# �T����폜
con.execute(u"delete from �Ј� where ���O='�T��'")

�g�����U�N�V����

�R�~�b�g����

con.commit()

���[���o�b�N

con.rollback()

�����R�~�b�g���[�h

Connection�I�u�W�F�N�g��isolation_level��None�ɂ���ƁA�����R�~�b�g���[�h�ɂȂ�܂��B

con = sqlite3.connect("data.db")
con.isolation_level = None

�܂��͐ڑ�����

con = sqlite3.connect('temp.db', isolation_level=None)

�֘A