標籤:into 目前的目錄 cal 執行 localhost creat nal type nmake
No1:
【SQLite】
插入
# 匯入SQLite驅動:>>> import sqlite3# 串連到SQLite資料庫# 資料庫檔案是test.db# 如果檔案不存在,會自動在目前的目錄建立:>>> conn = sqlite3.connect(‘test.db‘)# 建立一個Cursor:>>> cursor = conn.cursor()# 執行一條SQL語句,建立user表:>>> cursor.execute(‘create table user (id varchar(20) primary key, name varchar(20))‘)<sqlite3.Cursor object at 0x10f8aa260># 繼續執行一條SQL語句,插入一條記錄:>>> cursor.execute(‘insert into user (id, name) values (\‘1\‘, \‘Michael\‘)‘)<sqlite3.Cursor object at 0x10f8aa260># 通過rowcount獲得插入的行數:>>> cursor.rowcount1# 關閉Cursor:>>> cursor.close()# 提交事務:>>> conn.commit()# 關閉Connection:>>> conn.close()
查詢
>>> conn = sqlite3.connect(‘test.db‘)>>> cursor = conn.cursor()# 執行查詢語句:>>> cursor.execute(‘select * from user where id=?‘, (‘1‘,))<sqlite3.Cursor object at 0x10f8aa340># 獲得查詢結果集:>>> values = cursor.fetchall()>>> values[(‘1‘, ‘Michael‘)]>>> cursor.close()>>> conn.close()
No2:
【MySQL】
安裝mysql驅動
$ pip install mysql-connector-python --allow-external mysql-connector-python
如果上面的命令安裝失敗,可以試試另一個驅動:
$ pip install mysql-connector
# 匯入MySQL驅動:>>> import mysql.connector# 注意把password設為你的root口令:>>> conn = mysql.connector.connect(user=‘root‘, password=‘password‘, database=‘test‘)>>> cursor = conn.cursor()# 建立user表:>>> cursor.execute(‘create table user (id varchar(20) primary key, name varchar(20))‘)# 插入一行記錄,注意MySQL的預留位置是%s:>>> cursor.execute(‘insert into user (id, name) values (%s, %s)‘, [‘1‘, ‘Michael‘])>>> cursor.rowcount1# 提交事務:>>> conn.commit()>>> cursor.close()# 執行查詢:>>> cursor = conn.cursor()>>> cursor.execute(‘select * from user where id = %s‘, (‘1‘,))>>> values = cursor.fetchall()>>> values[(‘1‘, ‘Michael‘)]# 關閉Cursor和Connection:>>> cursor.close()True>>> conn.close()
No3:
【SQLAlchemy】ORM架構
安裝
$ pip install sqlalchemy
並初始化DBSession:
# 匯入:from sqlalchemy import Column, String, create_enginefrom sqlalchemy.orm import sessionmakerfrom sqlalchemy.ext.declarative import declarative_base# 建立對象的基類:Base = declarative_base()# 定義User對象:class User(Base): # 表的名字: __tablename__ = ‘user‘ # 表的結構: id = Column(String(20), primary_key=True) name = Column(String(20))# 初始化資料庫連接:engine = create_engine(‘mysql+mysqlconnector://root:[email protected]:3306/test‘)# 建立DBSession類型:DBSession = sessionmaker(bind=engine)
添加對象
# 建立session對象:session = DBSession()# 建立新User對象:new_user = User(id=‘5‘, name=‘Bob‘)# 添加到session:session.add(new_user)# 提交即儲存到資料庫:session.commit()# 關閉session:session.close()
查詢
# 建立Session:session = DBSession()# 建立Query查詢,filter是where條件,最後調用one()返回唯一行,如果調用all()則返回所有行:user = session.query(User).filter(User.id==‘5‘).one()# 列印類型和對象的name屬性:print(‘type:‘, type(user))print(‘name:‘, user.name)# 關閉Session:session.close()
【python】資料庫