delphi课件数据库基础
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
delete from 表名 [where 条件表达式] 从表中删除符合条件的元组,如果没有where语句, 则删除所有元组 • 示例:清除所有选课记录
delete from SC
四.SQL语句
4.3 数据更新操作 • 更新命令
update 表名 set 列名 = 表达式
[,列名 =表达式]… [where 条件表达式] 指定对哪些列进行更新,以及更新后的值是什么 • 示例:老师工资上调5% update PROF set SAL = SAL * 1.05
四.SQL语句
4.2 数据类型 • char(n):固定长度的字符串 • varchar(n):可变长字符串 • int:整数 • smallint:小整数类型 • Numeric(p,d): 定点数,共p位,小数点后有q位 • real:浮点数 • double precision:双精度浮点数 • date:日期(年、月、日) • time:时间(小时、分、秒)
select PNAME from PROF where SAL between 500 and 800
四.SQL语句
4.4 数据查询操作 • 确定集合范围 ➢ 运算符:
IN 、NOT IN ➢ 示例:查询信息系(IS)、数学系(MA)和计算机科学
系(CS)的学生的姓名和性别
SELECT sname, sex FROM S WHERE DName IN (‘IS',‘MA',‘CS') ;
例:学生选修课 姓名 程学号 系别
用椭圆表示实 体的属性
课程名 先修课
学分
学生 选修 用无向边把
实体与其属
m
n
课程
性连接起来
用矩形表示实体 型,在框内写上
实体名
联系的 数量
成绩
将参与联系的实 体用线段连接
用菱形表示实 体间的联系
二.数据库基础知识
2.3 值和型 • 值和型的区别:型是指对某一类数据的结构和属
Select Sname,Sage from s
where sage<20
查询姓名为张三的学生年龄
Select Sage from S where Sname=‘张三’;
四.SQL语句
4.4 数据查询操作 • 确定范围:判断表达式的值是否在某范围内 ➢ 运算符
[not ]between and ➢ 示例:列出工资在500~800之间的老师姓名
select distinct SNO from SC
四.SQL语句
4.4 数据查询操作 • 查询满足条件的元组(WHERE) ➢ 比较运算符 ➢ 确定范围 ➢ 确定集合范围 ➢ 字符匹配 ➢ 空值测试 ➢ 多重条件查询
四.SQL语句
4.4 数据查询操作 • 比较运算符 ➢ 运算符:
、 、、、=、 ➢ 示例:查询年龄在20以下的所有学生姓名及年龄
四.SQL语句
4.3 数据更新操作 • 插入命令
insert into 表名 [(列名[,列名]…] values (值 [,值]…)
• 示例:插入一条指定好值的元组 insert into PROF values ( ‘P123’, ‘王明’, 35, ‘D08’, 498 )
四.SQL语句
4.3 数据更新操作 • 删除命令
零件关系P(主码是“零件号”,外码是“供应商 D.(‘105’,‘蓝’,
号”)
‘B01’)
零件号
颜色
供应商号
E.(‘101’,‘黄’,
010
红
‘T11’) B01
312
白
S10
201
蓝
T20
四.SQL语句
4.1 功能
SQL功能 数据查询 数据定义 数据操纵 数据控制
操作符 SELECT CREATE,ALTER,DROP INSERT,UPDATE,DELETE GRANT,REVOKE
一.数据处理与数据管理
1.2 数据管理的发展 • 人工管理 • 文件管理 • 数据库管理
一.数据处理与数据管理
1.3 数据库系统的特点 • 面向全组织的复杂的数据结构 • 数据的冗余度小,易扩充 • 具有较高的数据和程序的独立性 • 统一的数据控制功能
一.数据处理与数据管理
1.4 相关术语 • 数据库(DataBase DB) • 数数据库管理系统DBMS
Sloc 曹光标大楼 竺可桢大楼 华罗庚大楼
Sname 计算机科学 信息科学 数学
…
…
…
三.关系数据库
3.7.3 用户定义完整性
• 用户针对具体的应用环境定义的完整性约束条件, 如教授工资不能小于2000元,S#要求是8位整 数,SEX取值为“男”或“女”
三.关系数据库
3.7.4 系统支持 • 实体完整性和参照完整性由系统自动支持 • 系统应提供定义和检验用户定义的完整性的机制
DB2
三.关系数据库
3.2 关系的表示 • 用二维表来表示实体型及其相互联系,表的每行
对应一个元组,表的每列对应一个域
属性
元组
学号 S01 S02 S03
姓名 张军 李红 王伟
年龄 21 22 19
性别 男 女 男
系号 D01 D01 D02
三.关系数据库
3.3 关系的性质 • A每一列中的分量来自同一域,是同一类型的数据 • 不同的列可来自同一域,每列必须有不同的属性
基本表B1
视图V1
视图V1
基本表B2 基本表B3
存储文件S1 存储文件S2 存储文件S3
Stored file
二.数据库基础知识
2.5 数据库应用系统的结构 • C/S结构 • B/S结构
三.关系数据库
3.1 主要产品 • Access,Foxpro,Foxbase • Oracle,Informix,Sybase,SQL Server,
名。 • 行列的顺序无关紧要 • 任意两个元组不能完全相同(集合内不能有相同
的两个元素) • 每一分量必须是不可再分的数据。满足这一条件
的关系称作满足第一范式(1NF)的
三.关系数据库
3.4 关系的性质 • 实体集、联系都表示成关系
系
属于 学生 选修
工作 管理教师来自课程先修DEPT(D# , DN , DEAN) S(S# , SN , SEX , AGE , D#) C(C# , CN , PC# , CREDIT) SC(S# , C# , SCORE) PROF(P# , PN, D# , SAL)
实体完整性 参照完整性 用户定义的完整性 • 实体完整性和参照完整性是关系模型必须满足的 完整性约束条件,被称作是关系的两个不变性, 应该由关系系统自动支持
三.关系数据库
3.7.1 实体完整性 • 关系的主键中的属性值不能为空值 • 空值:不知道或无意义 • 意义:关系对应到现实世界中的实体集,元组对
select * from DEPT • 查询经过计算的列
给出所有老师的姓名及税后工资额。 select PNAME,SAL 0.95 from
PROF
四.SQL语句
4.4 数据查询操作 • 更名:为关系和属性重新命名,可出现在select和
from子句中
old_name as new_name 注:as可选
三.关系数据库
供应商关系S(主码是“供应商号”)
今要向关系P中插入新行 ,新行的值分别列出如下
供应商号
供应商名
所在城市 。哪些行能够插入?
B01
红星
北京
A.(‘037’,‘绿’, null)
S10
宇宙
上海
B.(null,‘黄’,
T20
黎明
天津
‘T20’)
Z01
立新
重庆
C.(‘201’,‘红’,
‘T20’)
• 主键(Primary Key) 进行数据库设计时,从一个关系的多个候选键中 选定一个作为主键,如可选定D#作为DEPT的主 键
• 外键(Foreign Key) 关系R中的一个属性组,它不是R的键,但它与另 一个关系S的键相对应,则称这个属性组为R的外 键,如S关系中的D#属性
三.关系数据库
3.7 完整性 • 关系模型的完整性规则是对关系的某种约束条件 • 三类完整性
三.关系数据库
3.5 键 • 候选键(Candidate Key):
关系中的一个属性组,其值能唯一标识一个元组。 若从属性组中去掉任何一个属性,它就不具有这 一性质了,这样的属性组称作候选键,如DEPT中 的D#,DN都可作为候选键,任何一个候选键中的 属性称作主属性,如SC中的S#,C#
三.关系数据库
• 示例:属性更名(使用列别名改变查询结果的列标 题) 给出所有老师的姓名及税后工资额。
select PNAME,SAL0.05 as taxi,SAL*0.95 as incoming from PROF
四.SQL语句
4.4 数据查询操作 • 消除取值重复的行
缺省为保留重复元组,也可用关键字all显式指明。 若要去掉重复元组,可用关键字distinct指明 示例 :找出所有选修课程的学生
四.SQL语句
4.4 数据查询操作 • 字符匹配:找出满足给定匹配条件的字符串 ➢ 运算符
列名 [not] like ‘匹配串’ [Escape ‘转义字 符’]
➢ 匹配规则: (1)“%” :匹配零个或多个字符 (2)“_” :匹配任意单个字符 (3)Escape:定义转义字符,使转义字符后面的字符
计算机科学与技术专业
第四部分
数据库编程基础
主讲教员:李 雷 讲 师 通信工程学院计算机中心
主要内容
数据处理与数据管理 数据库基础知识 关系数据库 SQL语句
一.数据处理与数据管理
1.1 数据管理的意义 • 数据管理:数据处理中负责对数据进行组织、
存储、更新、检索和维护等任务。 • 数据管理是MIS的中心问题。 • 数据管理的最新技术是数据库技术
四.SQL语句
4.4 数据查询操作 • 语句格式
SELECT [ALL|DISTINCT] <目标列表达式> [,<目标列表达式>] …
FROM <表名或视图名>[, <表名或视图名> ] … [ WHERE <条件表达式> ] [ GROUP BY <列名1> [ HAVING <条件表达式> ] ] [ ORDER BY <列名2> [ ASC|DESC ] ];
被作为普通字符看待,如escape “\”,定义 \ 作为 转义字符,则可用\%去匹配%,用\ _去匹配_
性的说明,值是型的一个具体赋值 • 型是相对稳定的,值是随时间不断变化的 • 示例:学生记录
记录型: (学号,姓名,性别,系别,年龄,籍贯) 该记录型的一个记录值: (900201,李明,男,计算机,22,江苏)
二.数据库基础知识
2.4 数据库模式结构
SQL用户
用户1
用户2
用户3
用户4
VIEW Base Table
四.SQL语句
4.4 数据查询操作 • 投影:选择表中若干列 • 目标列表达式可以为列名,* ,算术表达式,函数
和聚集函数 • 查询指定列
select deptno,dname from dept; 指定列表达式时,先后顺序可以与定义表的顺序不 同,即可以改变列的显示顺序
四.SQL语句
4.4 数据查询操作 • 查询全部列
DataBase Management System,是数据库系 统的核心,是为DB的建立、使用和维护而配置的 系统软件,负责对数据库进行统一管理和控制 • 数据库应用系统 面向某方面实际应用且由系统开发人员利用数据 库系统资源开发出来的应用软件系统
二.数据库基础知识
2.1 数据模型 • E-R图
应到实体,实体是相互可区分的,通过主键来唯 一标识,若主键为空,则出现不可标识的实体, 这是不容许的
三.关系数据库
3.7.2 参照完整性 • 如果关系R2的外部码Fk与关系R1的主码Pk相对应,
则R2中的每一个元组的Fk值或者等于R1 中某个元 组的Pk 值,或者为空值 • R2 称为参照关系,R1 称为被参照(目标)关系 • 意义:如果关系R2的某个元组t2参照了关系R1的 某个元组t1,则t1必须存在
三.关系数据库
3.7.2 参照完整性 • 例如关系S在D#上的取值有两种可能: (1)空值,表示该学生尚未分到任何系中 (2)若非空值,则必须是DEPT关系中某个元组的D#
值,表示该学生不可能分到一个不存在的系中
三.关系数据库
Student
Sno Snam Ssex e
99101 张三 男
Sage 20
99103 李四 男
19
Sdept
CS CS
外键,不是Student的 主键,但是Department 的主键。
Student中Sdept中的值 都取自Department表中 相应Sdept的值。 指定外键时,列名不 一定要求相同。
…
…
…
…
…
98102 王五 女
19
主码
IS
Department
Sdept CS IS MA
delete from SC
四.SQL语句
4.3 数据更新操作 • 更新命令
update 表名 set 列名 = 表达式
[,列名 =表达式]… [where 条件表达式] 指定对哪些列进行更新,以及更新后的值是什么 • 示例:老师工资上调5% update PROF set SAL = SAL * 1.05
四.SQL语句
4.2 数据类型 • char(n):固定长度的字符串 • varchar(n):可变长字符串 • int:整数 • smallint:小整数类型 • Numeric(p,d): 定点数,共p位,小数点后有q位 • real:浮点数 • double precision:双精度浮点数 • date:日期(年、月、日) • time:时间(小时、分、秒)
select PNAME from PROF where SAL between 500 and 800
四.SQL语句
4.4 数据查询操作 • 确定集合范围 ➢ 运算符:
IN 、NOT IN ➢ 示例:查询信息系(IS)、数学系(MA)和计算机科学
系(CS)的学生的姓名和性别
SELECT sname, sex FROM S WHERE DName IN (‘IS',‘MA',‘CS') ;
例:学生选修课 姓名 程学号 系别
用椭圆表示实 体的属性
课程名 先修课
学分
学生 选修 用无向边把
实体与其属
m
n
课程
性连接起来
用矩形表示实体 型,在框内写上
实体名
联系的 数量
成绩
将参与联系的实 体用线段连接
用菱形表示实 体间的联系
二.数据库基础知识
2.3 值和型 • 值和型的区别:型是指对某一类数据的结构和属
Select Sname,Sage from s
where sage<20
查询姓名为张三的学生年龄
Select Sage from S where Sname=‘张三’;
四.SQL语句
4.4 数据查询操作 • 确定范围:判断表达式的值是否在某范围内 ➢ 运算符
[not ]between and ➢ 示例:列出工资在500~800之间的老师姓名
select distinct SNO from SC
四.SQL语句
4.4 数据查询操作 • 查询满足条件的元组(WHERE) ➢ 比较运算符 ➢ 确定范围 ➢ 确定集合范围 ➢ 字符匹配 ➢ 空值测试 ➢ 多重条件查询
四.SQL语句
4.4 数据查询操作 • 比较运算符 ➢ 运算符:
、 、、、=、 ➢ 示例:查询年龄在20以下的所有学生姓名及年龄
四.SQL语句
4.3 数据更新操作 • 插入命令
insert into 表名 [(列名[,列名]…] values (值 [,值]…)
• 示例:插入一条指定好值的元组 insert into PROF values ( ‘P123’, ‘王明’, 35, ‘D08’, 498 )
四.SQL语句
4.3 数据更新操作 • 删除命令
零件关系P(主码是“零件号”,外码是“供应商 D.(‘105’,‘蓝’,
号”)
‘B01’)
零件号
颜色
供应商号
E.(‘101’,‘黄’,
010
红
‘T11’) B01
312
白
S10
201
蓝
T20
四.SQL语句
4.1 功能
SQL功能 数据查询 数据定义 数据操纵 数据控制
操作符 SELECT CREATE,ALTER,DROP INSERT,UPDATE,DELETE GRANT,REVOKE
一.数据处理与数据管理
1.2 数据管理的发展 • 人工管理 • 文件管理 • 数据库管理
一.数据处理与数据管理
1.3 数据库系统的特点 • 面向全组织的复杂的数据结构 • 数据的冗余度小,易扩充 • 具有较高的数据和程序的独立性 • 统一的数据控制功能
一.数据处理与数据管理
1.4 相关术语 • 数据库(DataBase DB) • 数数据库管理系统DBMS
Sloc 曹光标大楼 竺可桢大楼 华罗庚大楼
Sname 计算机科学 信息科学 数学
…
…
…
三.关系数据库
3.7.3 用户定义完整性
• 用户针对具体的应用环境定义的完整性约束条件, 如教授工资不能小于2000元,S#要求是8位整 数,SEX取值为“男”或“女”
三.关系数据库
3.7.4 系统支持 • 实体完整性和参照完整性由系统自动支持 • 系统应提供定义和检验用户定义的完整性的机制
DB2
三.关系数据库
3.2 关系的表示 • 用二维表来表示实体型及其相互联系,表的每行
对应一个元组,表的每列对应一个域
属性
元组
学号 S01 S02 S03
姓名 张军 李红 王伟
年龄 21 22 19
性别 男 女 男
系号 D01 D01 D02
三.关系数据库
3.3 关系的性质 • A每一列中的分量来自同一域,是同一类型的数据 • 不同的列可来自同一域,每列必须有不同的属性
基本表B1
视图V1
视图V1
基本表B2 基本表B3
存储文件S1 存储文件S2 存储文件S3
Stored file
二.数据库基础知识
2.5 数据库应用系统的结构 • C/S结构 • B/S结构
三.关系数据库
3.1 主要产品 • Access,Foxpro,Foxbase • Oracle,Informix,Sybase,SQL Server,
名。 • 行列的顺序无关紧要 • 任意两个元组不能完全相同(集合内不能有相同
的两个元素) • 每一分量必须是不可再分的数据。满足这一条件
的关系称作满足第一范式(1NF)的
三.关系数据库
3.4 关系的性质 • 实体集、联系都表示成关系
系
属于 学生 选修
工作 管理教师来自课程先修DEPT(D# , DN , DEAN) S(S# , SN , SEX , AGE , D#) C(C# , CN , PC# , CREDIT) SC(S# , C# , SCORE) PROF(P# , PN, D# , SAL)
实体完整性 参照完整性 用户定义的完整性 • 实体完整性和参照完整性是关系模型必须满足的 完整性约束条件,被称作是关系的两个不变性, 应该由关系系统自动支持
三.关系数据库
3.7.1 实体完整性 • 关系的主键中的属性值不能为空值 • 空值:不知道或无意义 • 意义:关系对应到现实世界中的实体集,元组对
select * from DEPT • 查询经过计算的列
给出所有老师的姓名及税后工资额。 select PNAME,SAL 0.95 from
PROF
四.SQL语句
4.4 数据查询操作 • 更名:为关系和属性重新命名,可出现在select和
from子句中
old_name as new_name 注:as可选
三.关系数据库
供应商关系S(主码是“供应商号”)
今要向关系P中插入新行 ,新行的值分别列出如下
供应商号
供应商名
所在城市 。哪些行能够插入?
B01
红星
北京
A.(‘037’,‘绿’, null)
S10
宇宙
上海
B.(null,‘黄’,
T20
黎明
天津
‘T20’)
Z01
立新
重庆
C.(‘201’,‘红’,
‘T20’)
• 主键(Primary Key) 进行数据库设计时,从一个关系的多个候选键中 选定一个作为主键,如可选定D#作为DEPT的主 键
• 外键(Foreign Key) 关系R中的一个属性组,它不是R的键,但它与另 一个关系S的键相对应,则称这个属性组为R的外 键,如S关系中的D#属性
三.关系数据库
3.7 完整性 • 关系模型的完整性规则是对关系的某种约束条件 • 三类完整性
三.关系数据库
3.5 键 • 候选键(Candidate Key):
关系中的一个属性组,其值能唯一标识一个元组。 若从属性组中去掉任何一个属性,它就不具有这 一性质了,这样的属性组称作候选键,如DEPT中 的D#,DN都可作为候选键,任何一个候选键中的 属性称作主属性,如SC中的S#,C#
三.关系数据库
• 示例:属性更名(使用列别名改变查询结果的列标 题) 给出所有老师的姓名及税后工资额。
select PNAME,SAL0.05 as taxi,SAL*0.95 as incoming from PROF
四.SQL语句
4.4 数据查询操作 • 消除取值重复的行
缺省为保留重复元组,也可用关键字all显式指明。 若要去掉重复元组,可用关键字distinct指明 示例 :找出所有选修课程的学生
四.SQL语句
4.4 数据查询操作 • 字符匹配:找出满足给定匹配条件的字符串 ➢ 运算符
列名 [not] like ‘匹配串’ [Escape ‘转义字 符’]
➢ 匹配规则: (1)“%” :匹配零个或多个字符 (2)“_” :匹配任意单个字符 (3)Escape:定义转义字符,使转义字符后面的字符
计算机科学与技术专业
第四部分
数据库编程基础
主讲教员:李 雷 讲 师 通信工程学院计算机中心
主要内容
数据处理与数据管理 数据库基础知识 关系数据库 SQL语句
一.数据处理与数据管理
1.1 数据管理的意义 • 数据管理:数据处理中负责对数据进行组织、
存储、更新、检索和维护等任务。 • 数据管理是MIS的中心问题。 • 数据管理的最新技术是数据库技术
四.SQL语句
4.4 数据查询操作 • 语句格式
SELECT [ALL|DISTINCT] <目标列表达式> [,<目标列表达式>] …
FROM <表名或视图名>[, <表名或视图名> ] … [ WHERE <条件表达式> ] [ GROUP BY <列名1> [ HAVING <条件表达式> ] ] [ ORDER BY <列名2> [ ASC|DESC ] ];
被作为普通字符看待,如escape “\”,定义 \ 作为 转义字符,则可用\%去匹配%,用\ _去匹配_
性的说明,值是型的一个具体赋值 • 型是相对稳定的,值是随时间不断变化的 • 示例:学生记录
记录型: (学号,姓名,性别,系别,年龄,籍贯) 该记录型的一个记录值: (900201,李明,男,计算机,22,江苏)
二.数据库基础知识
2.4 数据库模式结构
SQL用户
用户1
用户2
用户3
用户4
VIEW Base Table
四.SQL语句
4.4 数据查询操作 • 投影:选择表中若干列 • 目标列表达式可以为列名,* ,算术表达式,函数
和聚集函数 • 查询指定列
select deptno,dname from dept; 指定列表达式时,先后顺序可以与定义表的顺序不 同,即可以改变列的显示顺序
四.SQL语句
4.4 数据查询操作 • 查询全部列
DataBase Management System,是数据库系 统的核心,是为DB的建立、使用和维护而配置的 系统软件,负责对数据库进行统一管理和控制 • 数据库应用系统 面向某方面实际应用且由系统开发人员利用数据 库系统资源开发出来的应用软件系统
二.数据库基础知识
2.1 数据模型 • E-R图
应到实体,实体是相互可区分的,通过主键来唯 一标识,若主键为空,则出现不可标识的实体, 这是不容许的
三.关系数据库
3.7.2 参照完整性 • 如果关系R2的外部码Fk与关系R1的主码Pk相对应,
则R2中的每一个元组的Fk值或者等于R1 中某个元 组的Pk 值,或者为空值 • R2 称为参照关系,R1 称为被参照(目标)关系 • 意义:如果关系R2的某个元组t2参照了关系R1的 某个元组t1,则t1必须存在
三.关系数据库
3.7.2 参照完整性 • 例如关系S在D#上的取值有两种可能: (1)空值,表示该学生尚未分到任何系中 (2)若非空值,则必须是DEPT关系中某个元组的D#
值,表示该学生不可能分到一个不存在的系中
三.关系数据库
Student
Sno Snam Ssex e
99101 张三 男
Sage 20
99103 李四 男
19
Sdept
CS CS
外键,不是Student的 主键,但是Department 的主键。
Student中Sdept中的值 都取自Department表中 相应Sdept的值。 指定外键时,列名不 一定要求相同。
…
…
…
…
…
98102 王五 女
19
主码
IS
Department
Sdept CS IS MA