sqlite資料庫操作

2021-10-05 06:45:24 字數 3068 閱讀 7418

''

'一、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...