''
'一、db-api2.0
在不同型別的資料來源之間轉換
資料庫連線:connect(),commit(),rollback(),close()
資料庫操作:cur=connect().curor():記錄指標;cur.execute(sql[,(引數化列表)]),fetchone(),fetchmany(-1)=fetchall()'''
import sqlite3 #匯入模組
#(1)建立資料庫連線:
conn=sqlite3.connect(
"db2.sqlites"
)print(type(conn))
conn.close(
)#(2)建立資料庫連線:with
with sqlite3.connect(
"db2.sqlites"
) as conn:
cur=conn.cursor()''
' (3)建立表
sql="create table student(no integer primary key autoincrement,name varchar(10),age int)"
cur.execute(sql)'
''''
'(4)表中資料插入
sql="insert into student values(null,'王麗',13)"
cur.execute(sql)
sql="insert into student values(null,'李麗',14),(null,'王海',14),(null,'李剛',14)"
cur.execute(sql)'
''''
'(5)表中資料查詢
sql="select * from student"
cur.execute(sql)
data1=cur.fetchone()
print(data1)
cur.execute(sql)
data2=cur.fetchmany(-1)
print(data2)
cur.execute(sql)
data3=cur.fetchall()
print(data3)'
''''
'(6)表中資料刪除
sql="delete from student where no=1"
cur.execute(sql)
sql = "select * from student"
cur.execute(sql)
data=cur.fetchall()
print(data)'
''''
'(7)表中資料修改
sql="update student set age=15 where no=2"
cur.execute(sql)
sql = "select * from student"
cur.execute(sql)
data=cur.fetchall()
print(data)'
''''
'(8)sql injection:用乙個永真表示式來注入sql,從而實現偽資訊
sql="create table login(name varchar(10) primary key,password varchar(10))"
cur.execute(sql)
sql="insert into login values('admin','1234'),('user1','123456'),('user2','12345')"
cur.execute(sql)
sql="select * from login"
cur.execute(sql)
data =cur.fetchall()
print(data)
引數化sql語句,防止永真表示式注入
name=input("name:")
password=input("password:")
#sql="select * from login where name='
' and password={}".format(name,password) #'
' or 1=1:登入我的操作介面
#sql="select * from login where name=? and password=?" #通用佔位符 :?
sql="select * from login where name=:n and password=:p" #具名佔位符
#cur.execute(sql,(name,password))#帶引數的執行:傳入元組(admin,)
cur.execute(sql,) #帶引數的執行:傳入字典
data=cur.fetchone()
print(data)
if data!=none:
print("login")
else:
print("fail")'
''''
'(8)批量插入'
'' lst1=[(
'user3','12'
),('user4','12'
),('user5','12')]
lst2 =[(
'user6', '12'
), (
'user7', '12'
), (
'user8', '12')]
sql=
"insert into login values(?,?)"
cur.executemany(sql,lst1)
#傳入列表,每個元素時元組,元組中的元素,與表中字段順序一一對應
for item in lst2:
cur.execute(sql,item)
#傳入元組中的元素,與表中字段順序一一對應
sql=
"select * from login"
cur.execute(sql)
data=cur.fetchall(
) print(data)
資料庫操作 SQLite
sqlite 是乙個輕量級的關聯式資料庫。sqlite最初的設計目標是用於嵌入式系統,它占用資源非常少,在嵌入式裝置中,只需要幾百k的記憶體就夠了,目前應用於android ios windows phone等智慧型手機。ios 使用時sqlite,只需要加入 libsqlite3.dylib 依賴...
資料庫操作 SQLite
sqlite 是乙個輕量級的關聯式資料庫。sqlite最初的設計目標是用於嵌入式系統,它占用資源非常少,在嵌入式裝置中,只需要幾百k的記憶體就夠了,目前應用於android ios windows phone等智慧型手機。ios 使用時sqlite,只需要加入 libsqlite3.dylib 依賴...
SQLite資料庫操作
建立資料庫需要使用的api sqliteopenhelper 必須定義乙個構造方法 arg1 資料庫的名字 people.db arg2 游標工廠 通常直接傳人null,則系統會使用預設的工廠 arg3 資料庫版本號 從1開始 方便公升級使用,不斷設定更大的值會呼叫,onupgrade方法 publ...