vb第八讲数据库基础_第1页
vb第八讲数据库基础_第2页
vb第八讲数据库基础_第3页
vb第八讲数据库基础_第4页
vb第八讲数据库基础_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

十天掌握VB.NET程序设计基础

—第八讲数据库基础潘志红ITCAST签约讲师本讲内容数据库的基础知识关系型数据库关系型数据库的分类Access数据库简介SQLServer数据库简介SQL结构化查询语句1.数据库基础知识1.数据库:所谓数据库(Database)是指一组排列成易于处理或读取的相关信息,它是由一个或多个表对象组成的集合。这有些类似于Excel的工作簿和工作表。

2.数据库管理系统:数据库管理系统(DataBaseManagementSystem,简称DBMS)是指在操作系统支持下为数据库建立、使用和维护而配置的系统软件。有关数据库的概念3.数据库应用程序:数据库应用程序是指用VB、FoxPro等开发工具设计的、实现某种特定功能的应用程序。如学生成绩管理系统、工资管理系统、物资管理系统等等。它利用数据库管理系统提供的各种手段访问一个或多个数据库,实现其特定的功能。4.数据库系统:数据库系统是由计算机硬件、操作系统、数据库管理系统以及在其他对象支持下建立起来的数据库、数据库应用程序、用户和维护人员等组成的一个整体。2.

关系型数据库关系型数据库是根据表、记录和字段之间的关系进行数据组织和访问的一种数据库,它通过若干个表(Table)来存储数据,并通过关系(Relation)将这些表联系在一起。近几年来,关系型数据库已成为数据库设计事实上的标准,这不仅因为关系模型本省具有强大的功能,而且还由于它提供了称为结构化查询语言StructureQueryLanguage(SQL)的标准接口,该接口允许以一致的和可以理解的方法来一起使用多种数据库工具和产品。在一个关系型数据库中可以包含若干张表,每张表又由若干记录组成,记录由若干字段组成。表与表之间通过关系连接。关系医生编号姓名职称科室编号专长01104李博主任医师01牙科01106刘晓副主任医师0101020王林副主任医师0102100李颦医师0203002王西平主任医师0304005吴星智副主任医师0406007李可茹主任医师06患者病例号姓名性别年龄200212002李小青男36200306007羡平女28200307003王东男12200307006刘戈女40

序号日期患者病例号医生编号诊断结果12001-10-120021200201104牙龈炎22002-1-920030600701104智齿32002-11-320030700601020牙周炎42003-6-320021200202100皮炎52003-10-720030600701020牙龈炎关联常用术语一关系一个关系就是一张二维表,每个关系有一个关系名。在计算机里,一个关系可以存储为一个数据库文件的表,例如,医生表或患者表。元组表中的行称为元组。一行是一个元组,对应表中的一个记录属性表中的列称为属性,每一列有一个属性名,对应数据表中的一个字段,例如医生编号、姓名、职称等字段。域属性的取值范围,即不同元组对同一个属性的取值所限定的范围。例如,在“患者”表“女”或“男”是性别的取值范围,对应“性别”字段的一个域常用术语二关键字(主键)属性或属性组合,其值能够唯一地标识一个元组。比如,“医生”表中的“医生编号”字段,“患者”表中的“患者病历号”都唯一地表示一名医生、一名患者,那么它们都可以作为记录的关键字。外键在关系A中存在一个属性,不是关系的主属性,但与另一个关系B的主键对应,则称其为关系A的外键。比如学生关系中院系代码属性,与院系关系的主键“院系代码”对应,所以是学生关系的外键。索引为了更快地访问数据,大多数数据库都是用关键字对表进行索引。也就是按关键字对数据库进行排序,并建立一张索引表,每个索引输入项指向该记录在数据库中的行。类似于书籍的目录,章节内容指向所在的页码,而并不直接在目录中放置内容。

3.关系型数据库的分类关系型数据库一般可分为两类:一类是桌面数据库,如Access、Paradox、FoxPro和dBase等桌面数据库主要用于小型的、单机的数据库应用程序,不需要网络和服务器,实现起来比较方便,是初学者常用的数据库类型。另一类是客户/服务器(Client/Server)数据库,如SQLServer、Oracle、Sybase等。客户/服务器数据库(C/S)主要应用于大型的、多用户的数据库管理系统。其数据库应用程序分为两部分:一部分驻留在客户机上,用于向用户提供信息及操作界面。另一部分驻留在服务器中,主要用来实现对数据库的操作、进行具体的计算,并将结果发送回客户机。这对客户机档次较低的情况尤为适合。关系型数据的设计规则数据库表的特征表中不能再包含表在同一个关系中不能出现相同的属性名。关系中不允许有完全相同的元组。在一个关系中元组的次序无关紧要。在一个关系中列的次序无关紧要。课程名学时数讲课上机计算机基础6515C语言7020课程名讲课学时上机学时计算机基础6515C语言7020数据完整性约束实体完整性表中的主键不能为空参照完整性若一个表中含有外键,则外键要么为空,要么为另一个表的主键,不能自创外键。用户定义完整性反映某一具体应用所涉及的数据必须满足的语义要求。4.ACCESS数据库简介Access数据库管理系统是MicrosoftOffice套件的重要组成部分,Access2008是最新版本,可在Windows环境下运行。Access适用于小型商务活动,用以存贮和管理商务活动所需要的数据。Access数据库由六种对象组成,它们是表、查询、窗体、报表、宏和模块。

表(Table)查询(Query)窗体(Form)报表(Report)宏(Macro)模块(Module)5.SQLServer数据库简介SQLServer2000C/S设计处理示意图

SQLServer数据库概述SQLServer2000的版本企业版(EnterpriseEdition)标准版(StandardEdition)个人版(PersonalEdition)开发者版(DeveloperEdition)

SQLServer2000工具和实用程序企业管理器服务管理器查询分析器事件探查器

SQL是StructuredQueryLanguage(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,具体“怎么做”是无需使用者考虑的。SQL功能强大、简单易学、使用方便,已经成为数据库操作的基础,并且现在几乎所有的数据库均支持SQL。6.SQL结构化查询语句SQL基本语句1.SELECT语句(使用最频繁)一般格式:SELECT[ALL/DISTINCT]*|<字段列表>FROM<表名>[WHERE<条件表达式>][GROUPBY<字段>][HAVING<条件表达式>][ORDERBY<列名>{[ASC|DESC]}];其中:<>:表示在实际的语句中要采用实际的内容进行替代[]:表示可以根据需要进行选择,也可以不选|:表示多项选项只能选其中之一{}:表示必选项SELECT语句输出表中的所有列查询“学生”表中全体学生的记录。SELECT*FROM学生

输出表中的部分列查询所有教师的教师编号,姓名和职称SELECT教师编号,姓名,职称FROM教师查询满足条件的元组查询“课程注册”表成绩大于50分的记录。SELECT*FROM课程注册WHERE成绩>=50排序

子句ORDERBY{列名[ASC|DESC]}[,…n]查询选修了“0001”号课程的同学的学号,并按成绩的降序排列SELECT学号,成绩FROM课程注册

WHERE课程号=’0001’ORDERBY成绩DESC对数据进行统计用户经常需要对结果集进行统计,例如求和、平均值、最大值、最小值、个数等,这些统计可以通过集合函数、COMPUTE子句、GROUPBY子句来实现。查询“教师”表中教师总数SELECTCOUNT(*)AS教师总数FROM教师对结果进行分组查询“课程注册”表中课程选课人数4人以上的各个课程号和相应的选课人数。SELECT课程号,COUNT(*)AS选课人数FROM课程注册GROUPBY课程号HAVINGCOUNT(*)>=4用查询结果生成新表在实际的应用系统中,用户有时需要将查询结果保存成一个表,这个功能可以通过SELECT语句中的INTO子句实现。INTO子句语法格式如:

INTO新表名创建“课程注册”表的一个副本。SELECT*INTO课程注册副本FROM课程注册SELECT*FROM课程注册副本带有比较运算符的子查询使用“教师”表,查询与“王钢”同在一个系的教师基本信息。SELECT教师编号,姓名,性别,学历,职务,职称FROM教师WHERE系部代码=(SELECT系部代码FROM教师WHERE姓名=’王钢’)插入语句INSERT语法格式:INSERT[INTO]table_name[column_list]VALUES(data_values)最简单的INSERT语句在结构如右图所示的“专业”表中添加一行记录:在计算机系部中添加一个电子商务专业INSERT专业

(专业代码,专业名称,系部代码)VALUES('0103','电子商务','01')省略清单的INSERT语句在结构如图所示的“班级”表中添加2004级电子商务班INSERT班级VALUES('20041521','2004电子商务班','0103','01','<null>')省略VALUES清单的INSERT语句创建“课程”表的一个副本“课程l”表,将“课程”表的全部数据添加到“课程l”表中。USEstudentGOCREATEtable课程1(课程号char(4)notnull,课程名char(20)notnull,学分smallintnull)GOINSERTINTO课程1(课程号,课程名,学分)SELECT课程号,课程名,学分FROM课程GO数据的修改UPDATE语法格式:UPDATEtable_nameSET{column_name={expression|DEFAULT|NULL]}[,…n][FROM{<table_source>}[,…n]][WHERE<search_condition>]实例:将“教学计划”表中专业代码为“0101”的“开课学期”的值改为第2学期UPDATE教学计划SET开课学期=2WHERE专业代码=’0101’将“课程注册”表中所有记录的成绩值改为(“注册号”-10000415)表达式的值,学分为3分UPDATE课程注册SET成绩=(注册号-10000415),学分=3数据的删除DELETE语法格式:DELETE

table_name[FROM{<table_sourc

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论