第八讲 数据库基础

第八讲    数据库基础

  1. 数据库的基础知识
  2. 关系型数据库
  3. 关系型数据库的分类
  4. Access 数据库简介
  5. SQL Server 数据库简介
  6. SQL 结构化查询语句

1. 数据库基础知识

1.  数据库:

所谓数据库( Database )是指一组排列成易于处理或读取的相关信息,它是由一个或多个表对象组成的集合。这有些类似于 Excel 的工作簿和工作表。

  2. 数据库管理系统:

数据库管理系统( DataBase Management System, 简称 DBMS )是指在操作系统支持下为数据库建立、使用和维护而配置的系统软件。

3. 数据库应用程序:

数据库应用程序是指用 VB FoxPro 等开发工具设计的、实现某种特定功能的应用程序。如学生成绩管理系统、工资管理系统、物资管理系统等等。它利用数据库管理系统提供的各种手段访问一个或多个数据库,实现其特定的功能。

4. 数据库系统:

数据库系统是由计算机硬件、操作系统、数据库管理系统以及在其他对象支持下建立起来的数据库、数据库应用程序、用户和维护人员等组成的一个整体。

2. 关系型数据库

关系型数据库是根据表、记录和字段之间的关系进行数据组织和访问的一种数据库,它通过若干个表( Table )来存储数据,并通过关系( Relation )将这些表联系在一起。

近几年来,关系型数据库已成为数据库设计事实上的标准,这不仅因为关系模型本省具有强大的功能,而且还由于它提供了称为结构化查询语言 Structure Query Language SQL )的标准接口,该接口允许以一致的和可以理解的方法来一起使用多种数据库工具和产品。

在一个关系型数据库中可以包含若干张表,每张表又由若干记录组成,记录由若干字段组成。表与表之间通过关系连接。

关系

医生编号

姓名

职称

科室编号

专长

01104

李博

主任医师

01

牙科

01106

刘晓

副主任医师

01

 

01020

王林

副主任医师

01

 

02100

李颦

医师

02

 

03002

王西平

主任医师

03

 

04005

吴星智

副主任医师

04

 

06007

李可茹

主任医师

06

 

序号

日期

患者病例号

医生编号

诊断结果

1

2001-10-1

200212002

01104

牙龈炎

2

2002-1-9

200306007

01104

智齿

3

2002-11-3

200307006

01020

牙周炎

4

2003-6-3

200212002

02100

皮炎

5

2003-10-7

200306007

01020

牙龈炎

 

常用术语一

l       关系

       一个关系就是一张二维表,每个关系有一个关系名。在计算机里,一个关系可以存储为一个数据库文件的表,例如,医生表或患者表。

l         元组

       表中的行称为元组。一行是一个元组,对应表中的一个记录

l         属性

       表中的列称为属性,每一列有一个属性名,对应数据表中的一个字段,例如医生编号、姓名、职称等字段。

l        

       属性的取值范围,即不同元组对同一个属性的取值所限定的范围。例如,在 患者 是性别的取值范围,对应 性别 字段的一个域

l       关键字(主键)

        属性或属性组合,其值能够唯一地标识一个元组。比如, 医生 表中的 医生编号 字段, 患者 表中的 患者病历号 都唯一地表示一名医生、一名患者,那么它们都可以作为记录的关键字。

l         外键

        在关系 A 中存在一个属性,不是关系的主属性,但与另一个关系 B 的主键对应,则称其为关系 A 的外键。比如学生关系中院系代码属性,与院系关系的主键 院系代码 对应,所以是学生关系的外键。

l         索引

       为了更快地访问数据,大多数数据库都是用关键字对表进行索引。也就是按关键字对数据库进行排序,并建立一张索引表 ,每个索引输入项指向该记录在数据库中的行。类似于书籍的目录,章节内容指向所在的页码,而并不直接在目录中放置内容。

 

3. 关系型数据库的分类

关系型数据库一般可分为两类:

l       一类是桌面数据库,如 Access Paradox FoxPro dBase

l       桌面数据库主要用于小型的、单机的数据库应用程序,不需要网络和服务器,实现起来比较方便,是初学者常用的数据库类型。

l       另一类是客户 / 服务器 (Client/Server) 数据库,如 SQL Server Oracle Sybase 等。

l       客户 / 服务器数据库 (C/S) 主要应用于大型的、多用户的数据库管理系统。其数据库应用程序分为两部分:一部分驻留在客户机上,用于向用户提供信息及操作界面。另一部分驻留在服务器中,主要用来实现对数据库的操作、进行具体的计算,并将结果发送回客户机。这对客户机档次较低的情况尤为适合。

关系型数据的设计规则

l       数据库表的特征

  1. 表中不能再包含表

课程名

学时数

讲课

上机

计算机基础

65

15

C 语言

70

20

 

课程名

讲课学时

上机学时

计算机基础

65

15

C 语言

70

20

 

  1. 在同一个关系中不能 出现相同的属性名。
  2. 关系中不允许 有完全相同的元组。
  3. 在一个关系中元组的次序无关紧要
  4. 在一个关系中列的次序无关紧要

数据完整性约束

l       实体完整性

l       表中的主键不能为空

l       参照完整性

l       若一个表中含有外键,则外键要么为空,要么为另一个表的主键,不能自创外键。

l       用户定义完整性

l       反映某一具体应用所涉及的数据必须满足的语义要求。

 

4. ACCESS 数据库简介

Access 数据库管理系统是 Microsoft Office 套件的重要组成部分, Access2008 是最新版本,可在 Windows 环境下运行。 Access 适用于小型商务活动,用以存贮和管理商务活动所需要的数据。

Access 数据库由六种对象组成,它们是表、查询、窗体、报表、宏和模块。

l       (Table)

l       查询 (Query)

l       窗体 (Form)

l       报表 (Report)

l       (Macro)

l       模块 (Module)

5. SQL Server 数据库简介

SQL Server 2000 C/S 设计处理示意图

SQL Server 数据库概述

l       SQL Server 2000 的版本

l       企业版( Enterprise Edition

l       标准版( Standard Edition

l       个人版( Personal Edition

l       开发者版( Developer Edition

l       SQL Server 2000 工具和实用程序

l       企业管理器

l       服务管理器

l       查询分析器

l       事件探查器

6. SQL 结构化查询语句

          SQL Structured Query Language (结构化查询语言)的缩写。 SQL 是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出 做什么 的命令,具体 怎么做 是无需使用者考虑的。 SQL 功能强大、简单易学、使用方便,已经成为数据库操作的基础,并且现在几乎所有的数据库均支持 SQL       

SQL 基本语句

1. SELECT 语句(使用最频繁)

一般格式:

SELECT[ALL/DISTINCT ]  *| < 字段列表 >

FROM  < 表名 >

[WHERE< 条件表达式 >]

[GROUP BY < 字段 >]

[HAVING < 条件表达式 >]

[ORDER BY< 列名 >{[ASC|DESC]}];

其中:

<>: 表示在实际的语句中要采用实际的内容进行替代

[ ]: 表示可以根据需要进行选择,也可以不选

|  : 表示多项选项只能选其中之一

{ }: 表示必选项

对数据进行统计

l       用户经常需要对结果集进行统计,例如求和、平均值、最大值、最小值、个数等,这些统计可以通过集合函数、 COMPUTE 子句、 GROUP  BY 子句来实现。

l       查询 教师 表中教师总数

SELECT  COUNT(*)  AS  教师总数   FROM  教师    // 新生成教师总数表

l       查询 课程注册 表中课程选课人数 4 人以上的各个课程号和相应的选课人数。

SELECT  课程号 , COUNT(*) AS 选课人数

FROM 课程注册

GROUP BY 课程号              ;同一个课程号分组

HAVING COUNT(*)>=4    ;用到聚集函数 count 后必须用 having 做条件

l       创建 课程注册 表的一个副本。

SELECT * INTO  课程注册副本    FROM   课程注册

SELECT *  FROM  课程注册副本

带有比较运算符的子查询

l       使用 教师 表,查询与 王钢 同在一个系的教师基本信息。

SELECT 教师编号 , 姓名 , 性别 , 学历 , 职务 , 职称

FROM   教师   WHERE  系部代码 =

( SELECT 系部代码   FROM 教师 WHERE 姓名 =’ 王钢 ’ )

插入语句 INSERT

语法格式:

INSERT [INTO] table_name [column_list ] VALUES (data_values )

最简单的 INSERT 语句

INSERT 专业

   ( 专业代码 , 专业名称 , 系部代码 )

VALUES

    ('0103',' 电子商务 ','01')

INSERT INTO 课程 1

( 课程号 , 课程名 , 学分 )

SELECT 课程号 , 课程名 , 学分

FROM 课程

数据的修改 UPDATE

语法格式:

UPDATE table_name

SET  {column_name ={expression | DEFAULT | NULL ]}[ …n]

[FROM{<table_source >}[, n]] [WHERE<search_condition >]

UPDATE   教学计划   SET  开课学期 =2  WHERE 专业代码 =’0101’

数据的删除 DELETE

l       语法格式:

DELETE table_name [FROM{ <table_source >}[, n]]

[WHERE {<search_condition >}]

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值