定义:数据库是存储数据的仓库,按照一定的数据模型进行组织、描述和存储。可以以最大的程度减少冗余度。
- DBMS:用管理数据库的操作,增删改查
- DDl
- DML
- 数据库管理系统的分类:
- 适合于企业用户的网络版DBMS:Oracle、SQL Server、 DB2、MySQL等
- 适合于个人用户的桌面版DBMS:Access、MySQL5.0
- 常用的数据库模型
- 关系模型
- 层次模型
- 网状模型
- 面向对象的模型
主要使用的是关系型数据库,特点是都是由实体和联系构成。- 实体:表、视图、序列、同义词
- 数据库表:行、列
- 联系:一对一等
通用数据库访问模块
- ODBC 提供一些访问数据库的模块:ODBC Interface、pyodbc、mxODBC
- JDBC Jython
SQLite数据库
支持的类型:NULL、integer、real、text、blob
py对应的类型:none、int、float、str、bytes
sqlite3模块:该模块定义了一些最基本的常量、函数和对象:
- sqlite3.version
- sqlite3.connect()连接数据库
- sqlite3.Connect 数据库连接对象
- sqlite3.Cursor 游标对象
- sqlite3.Row 行对象
操作步骤:
1.导入相应的数据库模块
import sqlite3
2.建立数据库连接
con=sqlite3.connect()
3.创建游标对象
cur=con.cursor()
4.使用Cursor对象的execute()执行sql语句
cur.execute()
5.结果
6.数据库的提交与回滚
con.commit()
con.rollback()
7.关闭-注意顺序
cur.close()
con.close()
import sqlite3
con=sqlite3.connect( r'd:\sales.db' )
#创建表
con.execute("create table region(id primary key,name)")
#使用不同方式插入记录
con.execute("insert into region(id,name) values('020','广东')")
con.execute("insert into region(id,name) values(?,?)",('001','北京'))
#插入多行
regions=[('021','上海'),('022','天津'),('023','重庆')]
con.executemany("insert into region(id,name) values(?,?)",regions)
#修改
con.execute('update region set name=? where id=?',("广州","020")
#删除
con.execute('delete from region where id=?',("023,")#只有一个占位符,必须加逗号
print('删除了',n.rowcount,'行记录')
con.commit()
con.close()