1、使用sqlite:python內建
**演示:列印出成績在60-100之間的使用者名稱
import os, sqlite3
db_file = 'db/school.db'
if os.path.isfile(db_file):
os.remove(db_file)
# 初始資料
:conn = sqlite3.connect(db_file)
cursor = conn.cursor()
cursor.execute('create table user(id varchar(20) primary key, name varchar(20), score int)')
cursor.execute(r"insert into user values ('a-001', 'adam', 95)")
cursor.execute(r"insert into user values ('a-002', 'bart', 62)")
cursor.execute(r"insert into user values ('a-003', 'lisa', 78)")
def get_score_in(low, high):
cursor.execute(r"select name from user where score>? and score<? order by score" , (low,high)) #
用sql
排序# cursor.execute(r"s
elect * from user where score>? and score<?" , (low,high))
result = cursor.fetchall()
# result = sorted(result,key=lambda t:t[2]) #
用python
排序# names = [row[1] for row in result] #
遍歷result
,每一次遍歷結果記為
row ,
取所有的
row[1]
print(result)
get_score_in(60,100) #
方法的定義必須在使用之前
cursor.close()
conn.commit()
conn.close()
2、使用mysql(只有第一步連線資料庫與sqlite不同)
# -*- coding: utf-8 -*-
import mysql.connector
# 初始資料
:conn = mysql.connector.connect(
user=
'root',
password=
'password',
database=
'test')
# 建立游標來執行
sql語句
cursor = conn.cursor()
# cursor.execute('create table user(id varchar(20) primary key, name varchar(20), score int)')
# cursor.execute(r"insert into user values ('a-001', 'adam', 95)")
# cursor.execute(r"insert into user values ('a-002', 'bart', 62)")
# cursor.execute(r"insert into user values ('a-003', 'lisa', 78)")
def get_score_in(low, high):
cursor.execute(
r"select name from user where score>%s and score<%s order by score", (low, high))
# 用sql
排序,mysql
的佔位符是
%s,sqlite
的佔位符是
?# cursor.execute(r"select * from user where score>? and score<?" , (low,high))
result = cursor.fetchall()
# result = sorted(result,key=lambda t:t[2]) #
用python
排序# names = [row[1] for row in result] #
遍歷result
,每一次遍歷結果記為
row ,
取所有的
row[1]
print(result)
get_score_in(
60,100)
# 方法的定義必須在使用之前
cursor.close()
conn.commit()
conn.close()
orm框架的作用就是把資料庫表的一行記錄與乙個物件互相做自動轉換。
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm
import sessionmaker
from sqlalchemy
import *
# from sqlalchemy import column,string,int,create_engine
# 建立物件的基類
base = declarative_base()
class user(base):
__tablename__ =
'user'
# 與資料庫表名一致
id = column(string(
20),
primary_key=
true)
name = column(string(
20))
score = column(int)
# 初始化資料庫連線
engine = create_engine(
'mysql+mysqlconnector://root:password@localhost:3306/test')
dbsession = sessionmaker(
bind=engine)
# dbsession
相當於mysql.connector.connection
session = dbsession()
# new_user = user(id='2',name='bob',score=98)
## session.add(new_user)
user = session.query(user).filter(user.id==
'5').one()
print(user.name)
session.commit()
# 一定要記得提交
session.close()
宣告:學習廖雪峰的python教程學習筆記,感謝micheal liao.
Python學習筆記 ADO訪問資料庫
因為工作中用到ado訪問工業資料庫,在這做乙個記錄。ado activex data objects,activex資料物件 是microsoft提出的應用程式介面 api 用以實現訪問關係或非關聯式資料庫中的資料。ado的五個基本物件型別 connection object連線物件 連線物件經常用...
Python學習筆記(2) 資料庫訪問
本來打算繼續用access的,但費了非常大的勁,還是沒有搞定。回過頭,發現使用sqlite,簡單到令人髮指。乾脆,把c 的commoncode往這邊遷移,先把accessdb搬過來再說。類結構和c 版完全一樣 訪問介面idb,由sqlitedb sqlserverdb等實現,而accessdb是對外...
Python筆記 訪問資料庫
匯入mysql驅動 import mysql.connector 注意把password設為你的root口令 conn mysql.connector.connect user root password password database test cursor conn.cursor 建立use...