1、数据库编程介绍数据库编程介绍新教材必修二U4数据(Data):是数据库中存储的基本对象,是用来描述事物的符号记录。1.什么是数据?数据的含义:又称为数据的语义,数据与其语义不可分割。例如:李小明,男,1998-05-06,江西九江,经济管理学院,电子商务技术。数据库(DataBase,简称DB)是长期存储在计算机内、有组织、可共享的大量数据的集合。2.什么是数据库?数据是怎么存储到计算机的呢?我们又怎么搜索到自己所需的数据?2.什么是数据库?数据库系统(DataBase System,简称DBS):是计算机的记录保持系统,存储和产生所需要的有用信息。是指在计算机系统中引入数据库后的系统构成。3
2、.什么是数据库系统?学生信息管理系统(1)数据(库)(2)用户(3)软件(DBMS)(4)硬件数据库系统组成l 数据(库):Database,简称 DB,在计算机存储设备上长期、集中存储的一批有组织、可共享的数据集合,是 DBS 的核心和工作对象。数据库中数据的特点:a)长期的。除非删除,否则可以永久保存。但注意不是历史数据被永久保存,是当前数据。b)集成的。数据是集中统一存储。需注意:目前随着互联网技术的发展,分布式数据库、网络数据库的应用非常普遍。数据库中的数据可能是一种逻辑上集中、物理上分布的状态。c)有组织的。有统一的组织结构。d)共享的。数据库中的数据对于合法用户或程序是共享的。数据
3、库系统组成l 用户:开发、管理、维护和使用数据库系统的各类人。可以大致分为 4 类:a)数据库管理员(Database Administrator,简称 DBA)b)系统分析员(System Analyst,SA)c)应用程序员(Application Programmer,AP)d)终端用户(End-User):使用和访问数据库的一般用户。如你我在携程查询机票余票、购买机票的人。数据库系统组成l 软件:数据库系统中主要的软件有数据库管理系统 DBMS,支持 DBMS 运行的操作系统,开发应用程序的高级语言及编译系统、开发工具,数据库应用程序等。数据库管理系统作为数据库系统中最为重要的软件,是
4、管理和控制数据库系统的专门的计算机系统软件。目前流行的数据库主要以关系型数据库为主,如Oracle,My SQL,SyBase等等l 硬件:硬件是数据库系统的基础,引入数据库的计算机系统对于硬件的特殊要求是足够的内存、足够的外存空间、较高的通道能力三个方面。数据库系统组成SQL语言,是结构化查询语言(Structured Query Language)的简称。SQL语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。需要掌握的操作有增删改查,都能够有对应的SQL语句实现。注:SQL 语句不区分大小写。数据库操作数据库操作一般流程创建连接获取游标执行 SQL 语句
5、处理数据关闭游标关闭连接格式如下:import sqlite3#导入数据库模块conn=sqlite3.connect(数据库文件名)#连接到数据库文件 cur=conn.cursor()#创建游标,用于执行 SQL 命令cur.execute(命令语句)#执行 SQL 语句#处理数据过程代码省略#cur.close()#关闭游标conn.close()#关闭连接CREATE TABLE 表名称(字段 1 数据类型,字段 2 数据类型,.)SQL创建数据表如创建一个表,名称是cs,字段结构如图所示。import sqlite3conn=sqlite3.connect(data.db)#连接到数
6、据库文件 data.dbcur=conn.cursor()#创建一个 cursorcur.execute(CREATE TABLE cs(学号 INTEGER,姓名 TEXT,性别 TEXT,联系地址 TEXT)mit()#提交事务(更新数据库)cur.close()#关闭游标conn.close()#关闭连接SQL操作增INSERT INTO表名(字段名 1,字段名 2,)VALUES(值 1,值 2,)import sqlite3conn=sqlite3.connect(data.db)#连接到数据库文件 data.dbcur=conn.cursor()#创建一个 cursorcur.ex
7、ecute(INSERT INTO cs(学号,姓名,性别,联系地址)VALUES(202206,马名,男,台州)mit()#提交事务(更新数据库)cur.close()#关闭游标conn.close()#关闭连接SQL操作删DELETE FROM 表名称 WHERE 列名称=值(WHERE表示限定条件)import sqlite3conn=sqlite3.connect(data.db)#连接到数据库文件 data.dbcur=conn.cursor()#创建一个 cursorcur.execute(DELETE FROM cs WHERE 学号=202206)mit()#提交事务(更新数据
8、库)cur.close()#关闭游标conn.close()#关闭连接SQL操作改UPDATE 表名称 SET 列名称=新值 WHERE 列名称=某值import sqlite3conn=sqlite3.connect(data.db)#连接到数据库文件 data.dbcur=conn.cursor()#创建一个 cursorcur.execute(UPDATE cs SET 姓名=李四 WHERE 学号=202202)mit()#提交事务(更新数据库)cur.close()#关闭游标conn.close()#关闭连接SQL操作查SELECT 字段名 1,字段名 2,.FROM 表名 WHER
9、E 查询条件注:如果查询所有字段信息,则字段名用*表示import sqlite3#导入数据库模块conn=sqlite3.connect(data.db)#连接到数据库文件 cur=conn.cursor()#创建游标,用于执行 SQL 命令cur.execute(SELECT*FROM cs WHERE 性别=男)#执行 SQL 命令data=cur.fetchall()#获取查询结果的全部数据print(data)#输出男生的所有数据for i in range(len(data):print(datai1,end=,)#循环输出所有男生的姓名,以逗号分割cur.close()#关闭游标
10、conn.close()#关闭连接课堂练习针对test.bd数据库中的data数据表依次实现如下操作:1)查找所有宁波的同学,并循环输出他们的学号2)将顾白的名字改为顾柏3)新增一名同学的数据:202207 丁四月 女 温州4)删除张三的数据数据模型 实体(Entity)使用分类将现实世界中可以区别的事物抽象为实体,如:会员。属性(Attribute)使用聚集将实体的某一特征抽象为属性,如会员的会员号、姓名、出生日期、性别。属性有“型”和“值”之分。属性名为型,属性具体内容为值。如会员的会员号为 C00001,则会员号为型,C00001 为值。实体集(Entity Set,实体的整体)性质相同
11、的同类实体的集合成为实体集,如:会员实体集,是所有会员实体的集合,他们具有共同的属性型:会员号,会员姓名,性别,联系电话,身份证号码,家庭地址,微信号,余额,头像。概念世界 实体类型(Entity Type,简称实体型)这一组共同的属性型组成了这个实体集的实体类型。概念模型实体型的集合,反映应用场景下所有实体型及其联系的结构形式,又称实体模型。实体型之间的联系a)一对一的联系(1:1)实体型 A 中的一个实体至多与实体型 B 中的一个实体相对应(相联系),反之亦然。如:电影票和座位,一张电影票只能与一个座位相对应,反之亦然。概念世界b)一对多的联系(1:n)实体型 A 中的一实体与实体型 B
12、中的多个实体相对应,反之,实体型 B 中的一实体至多与实体型 A 中的一个实体相对应。如:一个部门有多名员工,一名员工只能在一个部门工作。【注】其中的 n 表示“多”,以下的 m、p、q 都表示“多”的意思,之所以不全用 n 表 示“多”,是为了说明与 n 不相等的。c)多对多的联系(n:m)实体型 A 中的一实体与实体型 B 中的多个实体相对应,而实体型 B 中的一实体与实体型 A 中的多个实体相对应。如:一名会员可以借阅多种图书,一种图书可以被多名会员借阅。概念世界 E-R 图(实体联系图)形象化直观表示概念世界的图,因表达实体之间的联系而称为实体联系图。用 E-R 图描述的概念模型被称为 E-R 模型。在 E-R 图中,使用 3 个语义符号:a)用矩形表示实体,矩形里写上这个概念的名字,作为实体的名字b)用圆角矩形(也有用椭圆的)表示属性型,圆角矩形里写上属性的名字c)用菱形表示实体之间的联系,可以给联系起个名字。如:鸟与树之间的联系,若起不出好的名字,可以写成鸟_树或鸟与树,来表示是他们之间有联系。概念世界在数据世界里会将概念世界中的实体及其联系抽象为数据模型,是对概念及其联系编码,进行数据化的结果。实体编码的结果即产生了记录。属性编码的结果即产生了字段或称数据项,实体型编码的结果即产生了记录型,实体型之间的联系就成为记录型之间的联系,实体模型也就成了数据模型。数据世界