一、数据库简介
界说:数据库是存放数据的仓库,其存储空间很大,可以容纳百万条乃至上亿条数据。
数据库分为关系型数据库与非关系型数据库。关系型数据库的表现情势雷同于表格,关系型数据库中表与表之间是有很多复杂的关联关系的。 常见的关系型数据库有Mysql,SqlServer等。这里重要介绍关系型数据库。
由于python强大的开发能力,博主不适用Mysql等软件,而且依托python内置的sqlite3库利用关系型数据库功能。
1.1 术语
- 数据库: 数据库是一些关联表的集合。
- 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。
- 列: 一列(数据元素) 包含了相同范例的数据, 例如邮政编码的数据。
- 行:一行(元组,或记载)是一组相关的数据,例如一条用户订阅的数据。
- 冗余:存储两倍数据,冗余降低了性能,但进步了数据的安全性。
- 主键:主键是唯一的。一个数据表中只能包含一个主键。你可以利用主键来查询数据。
- 外键:外键用于关联两个表。
- 复合键:复合键(组合键)将多个列作为一个索引键,一样平常用于复合索引。
- 索引:利用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种布局。雷同于册本的目次。
1.2 操作
可以实现的功能:数据库的重要功能包罗组织、存储和管理数据。它允许用户高效地进行数据的查询、修改、删除等操作。
在数据库中,利用的语言大概说语句重要是尺度SQL语句。
- 创建库: CREATE DATABASE IF NOT EXISTSmydb1,在名为 mydb1 的数据库不存在时创建该库,如许可以避免报错。
- 创建表: CREATE TABLE table1( 列名1 列范例, 列名1 列范例, ...... );创建名为table1的表,包含列名1,列名2两个字段
- 新增语句: INSERT INTO table(param1,param2,param3)VALUES(value1,value2,value3) 该语句可以理解为向table中的param1,param2,param3字段中分别插入value1,value2,value3。
- 查询语句: SELECT param FROM table WHERE condition该语句可以理解为从 table 中查询出满意condition条件的字段 param。
- 更新语句:UPDATE table SET param=new_value WHERE condition该语句可以理解为将满意condition条件的字段param更新为new_value值。
- 删除语句:DELETE FROM table WHERE condition该语句可以理解为将满意condition条件的数据全部删除。
- 去重语句:SELECT DISTINCT param FROM table WHERE condition该语句可以理解为从表table中查询出满意条件condition的字段param,但是param中重复的值只能出现一次。
- 排序查询:SELECT param FROM table WHERE condition ORDER BY param1该语句可以理解为从表table中查询出满意condition条件的param,而且要按照param1升序的顺序进行排序。
注:上述代码均为SQL语句,在mysql软件下中执行,若利用python需要依托上述语句。
二、python调用sqlite3
由于是python的内置库,因此不需要额外的安装与下载,只需要在.py文件顶部调用即可。
三、SQL数据库应用
在python里,执行数据库的操作分为以下几个步骤:1.创建(链接)数据库、2.创建游标(声明对象)、3.执行SQL语句、4.提交事务(生存SQL操作)、5.关闭游标、6.关闭链接数据库。
- #链接数据库 如果路径内无该数据库则创建
- conn = sqlite3.connect('example.sql')
- #创建游标
- cursor = conn.cursor()
- #执行SQL命令,例如创建一个表
- #CREATE TABLE 创建表的语句
- #IF NOT EXISTS 用于检查指定的表是否已经存在。如果表不存在,那么执行创建表的操作;如果表已经存在,#则不执行任何操作
- #users 表的名字
- #(id INTEGER PRIMARY KEY, name TEXT, age INTEGER) 字段(表头 类型)
- cursor.execute('''CREATE TABLE IF NOT EXISTS usersss (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)''')
- #插入数据
- cursor.execute("INSERT INTO usersss (name, age) VALUES (?, ?)", ('Alico', 10))
- cursor.execute("INSERT INTO usersss (name, age) VALUES ('Blico', 20)")
- cursor.execute("INSERT INTO usersss (name, age) VALUES (?, ?)", ('Clico', 30))
- #提交事务 上述.execute后并不会保存 需要.commit()
- conn.commit()
- #查询数据
- cursor.execute("SELECT * FROM usersss")
- rows = cursor.fetchall()
- for row in rows:
- print(row)
- #关闭游标和连接
- cursor.close()
- conn.close()
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |