数据库的连接
导入模块
import sqlite3 #导入模块
connnect = sqlite3.connect('test.db') #创建与数据库的连接
如果这个数据库存在,就连接这个数据库,如果这个数据库不存在,就直接新建一个数据库,".db"是sqlite3数据库的文件格式。
代码格式:
变量名=sqlite3.connect("数据库名.db")
创建游标
cursor = connect.cursor()
在创建与数据库之间的连接后,需要一个游标来执行sql命令,括号内填写sql命令
代码格式:
变量名 = 数据库连接的变量名.cursor()
数据库sql命令
新建表格
sql_order = '''CREATR TABLE roster(序号 TEXT,
姓名 TEXT,
性别 TEXT,
籍贯 TEXT);'''
cursor.execute(sql_order)
roster--为表格的名称
序号、姓名、性别--为表格中的列名称
TEXT--为数据在表格中的存储格式
sqlite3中的数据格式
格式 | 含义 |
NULL | 一个NULL值 |
INTEGER | 整数 |
REAL | 浮点值(小数) |
TEXT | 文本格式 |
BLOB | 值是一个blob数据,完全根据值的输入存储 |
向数据库中的表格添加数据
Data = [("1", "张山", "男", "山东"),
("2", "李诗", "女", "北京"),
("3", "王午", "男", "北京")]
cursor.executemany('''INSERT INTO roster VALUES(?,?,?,?)''', Data)
connect.commit()
(?,?,?) -- 占位符,需要与对应表格中的列数对应,过多过少都会报错
connect.commit() -- 数据保存,如果没有添加这行代码数据就添加不成功
修改数据
cursor.execute(''' UPDATE roster SET 姓名="王武" where 序号="3" ''')
姓名="王武" -- 这是需要的数据,roster中的“王午”修改“王武”
序号=“3” -- 用来数据定位,告诉计算机,修改的数据在序号为“3”的位置
获取数据
获取所有数据
cursor.execute("select * from roster")
Data_list = cursor.fetchall()
for i in Data_list:
print(i)
获取“姓名”这一列数据
cursor.execute("select 姓名 from roster")
Data_list = cursor.fetchall()
for i in Data_list:
print(i)
获取“姓名+性别”两列列数据
cursor.execute("select 姓名, 性别 from roster")
Data_list = cursor.fetchall()
for i in Data_list:
print(i)
查询数据
查询表中男的共有几人
cursor.execute("select * from roster where 性别='男'")
Data_list = cursor.fetchall()
print(len(Data_list))
查询来自北京的共有几人
cursor.execute("select * from roster where 籍贯='北京'")
Data_list = cursor.fetchall()
print(len(Data_list))
删除数据
删除所有数据
cursor.execute("delete from roster").rowcount
删除个别数据
cursor.execute("delete from roster where 姓名='张山' ")
删除表格
cursor.execute('drop table roster')
查看数据库中的表格
cursor.execute('select name from sqlite_master where type="table" ')
table_list = cursor.fetchall()
print(table_list)
在已有表格中新增列
cursor.execute(''' alter table roster add column "年龄" ''')