数据库SQL语言及python自带数据库sqlite3

打印 上一主题 下一主题

主题 969|帖子 969|积分 2907

一、数据库简介

        界说:数据库是存放数据的仓库,其存储空间很大,可以容纳百万条乃至上亿条数据。
        数据库分为关系型数据库与非关系型数据库。关系型数据库的表现情势雷同于表格,关系型数据库中表与表之间是有很多复杂的关联关系的。 常见的关系型数据库有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文件顶部调用即可。
  1. import sqlite3
复制代码
三、SQL数据库应用

        在python里,执行数据库的操作分为以下几个步骤:1.创建(链接)数据库、2.创建游标(声明对象)、3.执行SQL语句、4.提交事务(生存SQL操作)、5.关闭游标、6.关闭链接数据库。
  1. #链接数据库 如果路径内无该数据库则创建
  2. conn = sqlite3.connect('example.sql')
  3. #创建游标
  4. cursor = conn.cursor()
  5. #执行SQL命令,例如创建一个表
  6. #CREATE TABLE 创建表的语句
  7. #IF NOT EXISTS 用于检查指定的表是否已经存在。如果表不存在,那么执行创建表的操作;如果表已经存在,#则不执行任何操作
  8. #users  表的名字
  9. #(id INTEGER PRIMARY KEY, name TEXT, age INTEGER) 字段(表头 类型)
  10. cursor.execute('''CREATE TABLE IF NOT EXISTS usersss (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)''')
  11. #插入数据
  12. cursor.execute("INSERT INTO usersss (name, age) VALUES (?, ?)", ('Alico', 10))
  13. cursor.execute("INSERT INTO usersss (name, age) VALUES ('Blico', 20)")
  14. cursor.execute("INSERT INTO usersss (name, age) VALUES (?, ?)", ('Clico', 30))
  15. #提交事务  上述.execute后并不会保存 需要.commit()
  16. conn.commit()
  17. #查询数据
  18. cursor.execute("SELECT * FROM usersss")
  19. rows = cursor.fetchall()
  20. for row in rows:
  21.     print(row)
  22. #关闭游标和连接
  23. cursor.close()
  24. conn.close()
复制代码

        

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

熊熊出没

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表