SQLite


  SQLite是一個小型的關系型數據庫,最大的特點是不需要單獨的服務、零配置。Python的標准庫中自帶了SQLite數據庫相應的驅動模塊了。安裝了Python,就可以直接使用SQLite數據庫。
建立數據庫連接對象

>>> import sqlite3    # 導入sqlite3模塊
>>> conn = sqlite3.connect('mydb')    # 創建數據庫連接對象

  通過上面的方式就創建了數據庫的連接對象了,在sqlite3.connect('mydb')中,如果數據庫mydb已經存在,就連接上它;如果不存在,則會自動創建一個並連接。注意,這里的路徑是隨意指定的。

建立游標對象
  和MySQL類似,建立了數據庫連接后,還要建立游標對象,通過游標對象操作數據庫

>>> cur = conn.cursor()    # 創建游標對象

通過游標對象操作數據庫
  操作方法和MySQL類似。

# 創建數據表
>>> create_table = "create table stu(id int auto_increment primary key, name char(8) not null, class char(8) default null)"    # 創建數據庫
>>> cur.execute(create_table)
<sqlite3.Cursor object at 0x10fae3b90>
>>> conn.commit()    # 執行提交
# 執行數據插入
>>> sql = "insert into stu(id, name, class) values(1, '張三', 'python3')"
>>> cur.execute(sql)
<sqlite3.Cursor object at 0x10fae3b90>
>>> conn.commit()
# 執行數據查詢
>>> sql = "select * from stu"
>>> cur.execute(sql)
<sqlite3.Cursor object at 0x10fae3b90>
>>> cur.fetchall()    # 取出所有數據
[(1, '張三', 'python3')]    # 以列表的形式返回
>>> cur.fetchall()
[]
>>> sql = "select * from stu where class='python3'"
>>> cur.execute(sql)
<sqlite3.Cursor object at 0x10fae3b90>
>>> cur.fetchone()    # 一條一條的取出數據
(1, '張三', 'python3')
>>> cur.fetchone()
(2, '李四', 'python3')
# 執行數據更新
>>> sql = "update stu set name='張三2' where id=1"    # 數據更新
>>> cur.execute(sql)
<sqlite3.Cursor object at 0x10fae3b90>
>>> sql = "select * from stu"
>>> cur.execute(sql)
<sqlite3.Cursor object at 0x10fae3b90>
>>> cur.fetchall()
[(1, '張三2', 'python3'), (2, '李四', 'python3'), (3, '王舞', 'python4')]
# 執行數據刪除
>>> sql = "delete from stu where id=3"    # 刪除數據
>>> cur.execute(sql)
<sqlite3.Cursor object at 0x10fae3b90>

# 執行提交
>>> conn.commit()    # 事務提交,每執行一次數據庫更改的操作,就執行提交

# 執行數據庫關閉
>>> cur.close()
>>> conn.close()

SQLite中的占位符
  SQLite中的占位符和Python中有區別,是以?作為占位符。

>>> data = [(3, '王舞', 'python4'), (4, '曲奇', 'python5'), (5, '語言', 'python5')] #批量數據放入列表
>>> sql = "insert into stu(id, name, class) values(?, ?, ?)"    # ?作為占位符
>>> cur.executemany(sql, data)    # 執行批量插入
<sqlite3.Cursor object at 0x10fae3f10>
>>> conn.commit()

更多操作訪問:https://docs.python.org/3.5/library/sqlite3.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM