python的数据库编程
数据库的基础知识
一、数据库的概念
数据库将大量数据按照一定的方式组织并存储起来,是相互关联的数据的集合。数据库中的数据不仅包括描述事物数据的本身,还包括相关数据之间的联系。数据库可以分为关系型数据库和非关系型数据库。关系型数据库使用二维表来存储数据,非关系型数据库通常以对象的形式存储数据,目前的数据库管理系统几乎都支持关系模型。数据库具有如下特点:
以一定的方式组织、存储数据。
能为多个用户共享
具有尽可能小的冗余数据
是与程序彼此独立的数据集合
数据库系统
数据库系统是基于数据库的计算机应用系统,主要包括数据库、数据库管理系统、相关软硬件环境和数据库用户。其中,数据库管理系统是数据库系统的核心。
数据库管理系统
数据库管理系统是用来管理和维护数据库的、位于操作系统之上的系统软件,其主要功能如下:
1.数据定义功能。DBMS提供数据定义语言,用户通过它可以方便的对数据库中的对象进行定义,如对数据库、表、视图和索引进行定义。
2.数据操纵功能。DBMS向用户提供数据操纵语言,实现对数据库的基本操作,如查询、插入、删除和修改数据库中的数据。
3.数据库的运行管理。这是DBMS的核心部分,包括并发控制、存取控制、安全性检查、完整性约束条件的检查和执行,以及数据库的内部维护(如索引、数据字典的自动维护)等。所有数据库的操作都要在这些控制程序的统一管理下进行,以保证数据的安全性、完整性和多个用户对数据库的并发操作。
4.数据通信功能。包括与操作系统的联机处理、分时处理和远程作业传输的相应接口等,这一功能对分布式数据库系统尤为重要。
二、关系型数据库
关系型数据库是目前的主流数据库。通常,一个关系型数据库中可包含多个表,例如,一个雇员管理数据库中可以包含雇员表、订单表、工资表等多个表。通过在表之间建立关系,可以将不同表中的数据联系起来,实现更强大的数据管理功能。
关系数据库的基本概念
1.关系。一个关系就是一张二维表,通常将一个没有重复行、重复列的二维表看成一个关系,每个关系都一个关系名,也就是表名。
2.元组。二维表的水平方向的行在关系中称为元组。每个元组均对应表中的一条记录。
3.属性。二维表的垂直方向的列在关系中称为属性,每个属性都有一个属性名,属性值则是各个元组属性的取值。属性名也称为字段名,属性值也称为字段值。
4.域。属性的取值范围称为域。域作为属性的集合,其类型与范围与属性的性质及其所表示的意义来确定。同一属性只能在相同的域中进行取值。
5.关键字。其值能唯一的标识一个元组的属性或属性的组合称为关键字。关键字可表示为属性或属性的组合,例如,雇员表的id字段可以作为表示一条记录的关键字。
实体间的关系类型
1.一对一关系。
2.一对多关系。
3.多对多关系。
创建表 create table <表名>(
列名1 数据类型或长度1 列属性1,
列明2 数据类型和长度2 列属性2,
...
列明n 数据类型和长度n 列属性n
)
create table employee(
emp_id integer primary key,
emp_name varchar(20) NOT NULL,
sex char(2) default('男'),
title varchar(20),
wage float,
dep_id integer
)
primary key:定义此列为主关键字列。定义为主键的列可以唯一标识表中的每条记录。
NOT NULL:指定此列不允许为空,NULL表示允许为空,是默认设置。
default:指定此列的默认值。
查看表的结构(任选一个):
select *from sqlite_master where type="table"and name="emplyee"
.schema employee
删除表 drop table <表名>
drop table employee
向表中添加列 alter table <表名> add column <字段名>[ <类型>]
alter table employee add column tele varchar(50) not null
向表中插入数据 insert into <表名>[<字段名表>] values(<表达式表>)
insert into employee (emp_id,emp_name,sex,title,wage,dep_id) values(1132,'李四','男','部门经理',7548.6,11)
insert into employee (emp_id,emp_name,sex,title,wage,dep_id) values(1143,'王五','男','职员',6656,14)
insert into employee (emp_id,emp_name,sex,title,wage,dep_id) values(1036,'高七','女','经理',7600,10)
修改表中的数据 update <表名> set <字段名>=<表达式> [,<字段名2>=<表达式2>...] [where<条件表达式>]
update employee set wage=7550 where emp_name="李四"
删除数据 delete from <表名> [where <条件表达式>]
delete from employee where sex='女'
查询数据 select <字段名表>|* from <表名> [join <表名> on <连接条件>] [where <条件表达式>] [group by <分组字段名>[having <条件表达式>]] [oeder by <排序选项>[asc|desc]]
各项功能如下:
select子句说明要查询的字段名,如果是*,表示查询表中的所有字段。
from子句说明查询的数据来源,如果查询的结果来自多个表,需要join选项指明连接条件。
where子句说明查询的筛选条件。多个条件之间可以逻辑运算符and、or、not连接。
group by子句用于将查询结果按分组字段名分组。having子句必须跟随group by使用,它用来限定分组必须满足的条件。
oeder by子句用于对查询结果进行排序。
python的数据库编程的更多相关文章
- 运用Python语言编写获取Linux基本系统信息(三):Python与数据库编程,把获取的信息存入数据库
运用Python语言编写获取Linux基本系统信息(三):Python与数据库编程 有关前两篇的链接: 运用Python语言编写获取Linux基本系统信息(一):获得Linux版本.内核.当前时间 运 ...
- python之数据库编程
python之数据库编程 sqlite 1.前期准备工作 导入模块: import sqlite3 连接数据库 conn = sqlite3.connect("test.db") ...
- Python学习系列(七)( 数据库编程)
Python学习系列(七)( 数据库编程) Python学习系列(六)(模块) 一,MySQL-Python插件 Python里操作MySQL数据库,需要Python下安装访 ...
- Python程序设计9——数据库编程
1 数据持久化 持久化是将内存中的对象存储在关系数据库中,当然也可以存储在磁盘文件.XML数据文件中.实现数据持久化至少需要实现以下3个接口 void Save(object o):把一个对象保存到外 ...
- python 闯关之路四(下)(并发编程与数据库编程) 并发编程重点
python 闯关之路四(下)(并发编程与数据库编程) 并发编程重点: 1 2 3 4 5 6 7 并发编程:线程.进程.队列.IO多路模型 操作系统工作原理介绍.线程.进程演化史.特点.区别 ...
- python 教程 第二十章、 数据库编程
第二十章. 数据库编程 环境设置 1).安装MySQL-python http://www.lfd.uci.edu/~gohlke/pythonlibs/ MySQL-python-1.2.3.win ...
- Python黑帽编程 2.0 第二章概述
Python黑帽编程 2.0 第二章概述 于 20世纪80年代末,Guido van Rossum发明了Python,初衷据说是为了打发圣诞节的无趣,1991年首次发布,是ABC语言的继承,同时也是一 ...
- Python金融应用编程(数据分析、定价与量化投资)
近年来,金融领域的量化分析越来越受到理论界与实务界的重视,量化分析的技术也取得了较大的进展,成为备受关注的一个热点领域.所谓金融量化,就是将金融分析理论与计算机编程技术相结合,更为有效的利用现代计算技 ...
- 使用Python管理数据库
使用Python管理数据库 这篇文章的主题是如何使用Python语言管理数据库,简化日常运维中频繁的.重复度高的任务,为DBA们腾出更多时间来完成更重要的工作.文章本身只提供一种思路,写的不是很全 ...
随机推荐
- PhpStorm 编辑器上更改文件后自动上传服务器
在编辑器内设置自动上传后很方便,,,就不用编辑完了之后还要去服务器里面上传,很麻烦!!!设置了自动上传Ctrl +S 就可以上传了 方便至极~~~~~~~希望可以帮到大家 1.菜单栏找到[工具/To ...
- [翻译] TensorFlow 分布式之论文篇 "Implementation of Control Flow in TensorFlow"
[翻译] TensorFlow 分布式之论文篇 "Implementation of Control Flow in TensorFlow" 目录 [翻译] TensorFlow ...
- 【面经】Python面试的16个高频问题
(一)Python 是如何进行内存管理的? 答:从三个方面来说,一对象的引用计数机制,二垃圾回收机制,三内存池机制 ⒈对象的引用计数机制 Python 内部使用引用计数,来保持追踪内存中的对象,所有对 ...
- MyEclipse 05_连接mysql数据库进行增删改查
例子: 1.在数据库中建立如下表 2. 在MyEclipse里按本主博客文MyEclipse 03_jdbc连接数据库,注意数据库名要一致 运行后在Navicat里如下: 代码如下: package ...
- 6月4日 python学习总结 装饰器复习
1. 装饰器的原理以及为什么要使用装饰器 在代码运行期间动态增加功能的方式,称之为"装饰器"(Decorator). 在不影响原代码结构的情况下为其添加功能 2. 装饰器的基本 ...
- el-upload用form的方式多文件上传的方法
使用el-upload组件遇到的坑. 1.第一种感觉最好,首先多个文件是一个http请求,另外还可以传除文件外其他的参数,但是没有进度条了. 发送请求的部分没有注释的部分是我分装了调后台的api,注释 ...
- 什么叫 CC 攻击?什么叫 DDOS 攻击?
CC 攻击,主要是用来攻击页面的,模拟多个用户不停的对你的页面进行访问,从而使你的系统资源消耗殆尽.DDOS 攻击,中文名叫分布式拒绝服务攻击,指借助服务器技术将多个计算机联合起来作为攻击平台,来对一 ...
- redux和vuex以及dva?
redux: 通过store存储,通过action唯一更改,reducer描述如何更改.dispatch一个action dva: 基于redux,结合redux-saga等中间件进行封装 vuex: ...
- XML技术的作用?
XML技术用于数据存储.信息配置.数据交换三方面. 可以将数据存储在XML中,通过节点.元素内容.属性标示数据内容及关系. 可以使用XML很方便的做信息配置,软件的各种配置参数和对象关系都存贮在XML ...
- 为什么redis 需要把所有数据放到内存中?
答:Redis 为了达到最快的读写速度将数据都读到内存中,并通过异步的方式将数 据写入磁盘.所以 redis 具有快速和数据持久化的特征.如果不将数据放在内存中, 磁盘 I/O 速度为严重影响 red ...