psycopg2 commands
# conn = psycopg2.connect(...)
Establish a connection, starting a session, begins a transaction
# cursor = conn.cursor()
Sets a cursor to begin executing commands
# cursor.execute(<sql command string>)
# cursor.commit() commit the transaction (not done automatically)
# cursor.rollback() rollback the transaction
# cursor.fetchall()
# cursor.fetchmany(3)
# cursor.fetchone() fetches the first result in the result set
# cursor.close()
# conn.close() close the connection (not done automatically)
代码:
import psycopg2
# Establish the connection to our database
connection = psycopg2.connect('dbname=example')
# Working within session where we can start committing these transactions
# Queue up work into our transaction, we first have to start interacting with a cursor
# Cursor is basically an interface that allows you to start queuing up work and transactions.
cursor = connection.cursor()
# cursor.execute immediately start executing work on the database.
# Create a transaction
cursor.execute('DROP TABLE IF EXISTS table2;')
cursor.execute('''
CREATE TABLE table2 (
id INTEGER PRIMARY KEY,
completed BOOLEAN NOT NULL DEFAULT False
);
''')
# Use %s which turns this string into a template that we can then inject data in,
cursor.execute('INSERT INTO table2 (id, completed) VALUES (%s, %s);', (1, True))
SQL = 'INSERT INTO table2 (id, completed) VALUES (%(id)s, %(completed)s);'
data = {
'id': 2,
'completed': False
}
cursor.execute(SQL, data)
# cursor.execute('INSERT INTO table2 (id, completed)' + ' VALUES (%(id)s, %(completed)s);',{
# 'id': 2,
# 'completed': False
# })
cursor.execute('INSERT INTO table2 (id, completed) VALUES (%s, %s);', (3, True))
cursor.execute('SELECT * from table2;')
result = cursor.fetchall()
print(result)
result2 = cursor.fetchone()
print(result2)
# Commit the work to the database
# connection.commite() will wound up committing both the create table and the insert into altogether.
connection.commit()
# Clost the connection
# Psychopg2 will not automatically close out your connection for you.
connection.close()
cursor.close()
运行上面的python, 结果如下:
[(1, True), (2, False), (3, True)]
None