【python】資料庫

來源:互聯網
上載者:User

標籤: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】資料庫

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.