




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本章导读数据库的基本概念1结构化查询语言SQL语句2MicroftAccess2000数据库创建3本章导读:数据库技术是ASP实现动态网页功能的物质基础。利用ASP开发小型项目时,Access往往是首选的数据库管理系统。SQL(StructureQueryLanguage,结构化查询语言)是关系型数据库的通用查询语言,用于对数据库中的数据进行组织、管理和检索的工具。
本章要点:8.1数据库概述
8.1.1数据库的基本概念
数据:是指存储在某一种媒体上能够被识别的物理符号。它包括两方面的内容:一是描述事务特性的数据内容,二是存储在某一种媒体上的数据形式。描述事务特性必须借助一定的符号,这些符号就是数据形式。数据形式多种多样,例如,某人的出生日期可以是{^2008-1-18},也可以是#2008-1-18#,或者是”2008年1月18日”等。
8.1.1数据库的基本概念数据库管理系统:是用于管理数据库的计算机软件,是用户与数据库之间的接口。数据库管理系统使用户能方便地定义和操作数据,维护数据的安全性和完整性,以及进行多用户的并发控制和数据库恢复。根据数据之间的关系,数据库管理系统可以分为:层次型、网状型和关系型。现在使用较多的是关系型数据库管理系统。与ASP搭配的数据库主要是SQLServer和Access。8.1.1数据库的基本概念关系型数据库采用二维表的方式来描述数据与数据之间的关系,表格的每一列都是一个属性,俗称字段;字段有字段名和字段值,字段名在一个表中不能重复。表格的每一行都表示一个实体或者两个实体之间的联系,俗称记录;行列交叉位置称为值,值有数据类型、字节大小等相关属性。数据库系统:是指引进数据库技术的计算机系统,包括计算机硬件系统、数据库管理系统、操作系统以及在它支持下建立起来的数据库,应用程序、用户和维护人员的组成的一个整体。数据库管理系统是数据库系统的核心软件。8.2数据库SQLServer2000简介简介数据库SQLServer2000是创建面向大型联机事务处理,数据仓库和电子商务的一个新型平台。SQLServer2000支持完全集成的XML环境、分析服务中的新的数据开采特性,以及元数据服务器中增强的知识库技术。SQLServer2000的数据库能够被分散在一组独立的数据库服务器上,以支持大规模web站点的访问需求和企业级的数据处理系统。8.3数据库Access简介数据库Access是一个桌面关系型数据库管理系统和应用程序生成器。Access具有很强的数据处理功能,人们可以利用它来解决大量数据的管理功能。Access数据库是由二维表组成。它使用标准的SQL作为它的数据库访问语言。作为网站后台数据库的选择之一,Access具有简单易用,快捷方便的特点。本书主要以Access作为数据库平台。8.3.1建立数据库8.3.2建立查询
8.3.1建立数据库可以通过Access管理界面方便地创建Access数据库和数据库表,主要步骤如下:⑴启动Access程序,首次出现新建和打开数据库窗口,如图8-1所示的【新建数据库】对话框;8.3.1建立数据库⑵在当前对话框中选择“空Access数据库”单选按钮,并单击【确定】按钮,弹出如图8-2所示的【文件新建数据库】对话框,在当前窗口选择一个存储位置,并为数据库文件命名jxgl,最后单击【创建】按钮,弹出数据库设计器,如图8-3所示的【jxgl:数据库】对话框①;8.3.1建立数据库
⑶在当前对话框中双击“设计器创建表”,弹出表设计器如图8-4所示的【表1:表】对话框,设置相关字段名和数据类型等,单击菜单【文件→保存】命令,弹出如图8-5所示的【另存为】对话框,输入表名称“xsxx”,再单击【确定】按钮;返回表设计器;即如图8-4所示的【表1:表】对话框。
8.3.1建立数据库⑷单击当前窗口中的右上角的关闭按钮,回到主界面如图8-6所示的【jxgl:数据库】对话框②;在当前对话框中双击xsxx,打开记录输入如图8-7所示的【xsxx表】输入记录对话框,输入数据。
8.3.1建立数据库8.3.1建立数据库根据上述步骤依次建立课程表kc和选课表xx,如图8-8和图8-9所示。
8.3.2建立查询集合首先,回到数据库的主窗口,在左边对象列表中选择“查询”,如图8-10所示的【jxgl:数据库】对话框③,在右边双击“在设计视图中创建查询”,弹出查询设计器窗口,如图8-11所示;8.3.2建立查询集合其次选择对象表,如选择表xsxx,单击【添加】按钮,将表xsxx加入查询设计器窗口,然后单击【关闭】按钮,如图8-12所示,在本窗口中,可以进行可视化查询设计,从中选择查询的字段,如字段“籍贯”字段,双击即可。8.3.2建立查询集合最后单击【查询】→【运行】,则查询结果以表格形式出现,如图8-13所示。以上操作也可以通过SQL语句完成。在查询设计器窗口中单击【关闭】按钮,然后单击右键,选择“SQL视图”,弹出如图8-14所示的【查询2:选择查询】对话框,输入查询语句select籍贯fromxsxx也可。8.4SQL语言简介
SQL(StructureQueryLanguage,结构化查询语言)是一种被关系型数据库产品广泛使用的标准结构化查询语言。主要用于对数据库中的数据进行组织、管理和检索。各种关系型数据库都支持SQL指令。SQL语句是一种类似于英语的语句,很容易理解,大多数语句都直述其意,读起来像自然语言一样明了。SQL语言是非过程化的语言(第四代语言),不像C、Cobol、Fortran等那样是完整的计算机语言,确切地说,SQL是一种数据库子语言,SQL可以被嵌入到另一种语言中,从而使其具有数据库功能。学好SQL语言对ASP编程是非常重要的。
8.4SQL语言简介结合SQL语句分为4类:DDL数据定义语言:用于定义、修改或者删除数据库对象,如create、drop、alter;DQL数据查询语言:用于对数据进行查询,如select;DML数据操纵语言:用于访问、建立或者操纵在数据库中已经存在数据,如insert、update、delete;DCL数据控制语言:管理对数据库对象的访问权限和回收,如表grant、revoke。8.4.1基本SQL语句
8.4.2Select语句
8.4.3insert语句
8.4.4delete语句
8.4.5update语句
8.4.1基本SQL语句
基本SQL语句包括DQL和DML。也就是最常用的四大基本操作:查询(select)、插入(insert)、删除(delete)、更新(update)。
8.4.2Select语句select语句是SQL中功能最强大也是最复杂的语句,它负责从数据库中检索数据。它的基本形式由Select–From-Where查询块组成,多个查询块可以被嵌套执行,select-SQL的语法基本结构如下:select[all|distinct|top<数值>[percent]][*|字段名列表][<聚合函数><*|字段名>]from<表或查询视图>[[left|right|inner|full]join<表或查询>on<条件表达式>][where<条件表达式>][groupby<分组字段名>[having<条件表达式>]][orderby<排序字段名>[asc|desc]]
8.4.2Select语句功能:完成各种查询任务。说明:⑴
select:查询的命令;⑵
all|distinct|top<数值>[percent]:all表示输出所有满足条件的记录;distinct表示去掉重复的记录,只输出第一次出现的记录,即重复的记录不重复输出;top<数值>[percent]表示在满足条件的记录中选择前若干条记录输出,其中percent表示所占百分比;⑶*|字段名列表:查询输出的字段内容,“*”表示所有字段;⑷<聚合函数><*|字段名>:用于统计和计算;⑸
from<表或查询视图>:查询的数据来源哪些表和查询视图8.4.2Select语句集合⑹[left|right|inner|full]join<表或查询>on<条件表达式>:进行多表查询的联接方式及联接条件;⑺
where<条件表达式>:设置查询的条件,过滤不需要的记录行。where子句包以下几类条件运算符号:①比较运算符:>、>=、=、<、<=、<>;②范围运算符:[not]in、[not]between…and、is[not]null;③逻辑运算符:not、and、or;④模式匹配运算符:[not]like,模式匹配运算符可以使用一些通配符,不同数据库的通配符可能不一样,如SQLServer中,使用“%”匹配任意长度的字符串,使用“_”匹配一个未知的字符。在Access中,常用的通配符及其意义如表8-1所示:8.4.2Select语句集合通配符说明示例*匹配任意长度的字符串wh*可以找到what,white,why等,ASP语句恢复使用“%”?匹配1个长度的字符串b?ll可以找到ball,bill等,ASP语句恢复使用“_”[]匹配[]指定字符中的一个b[ae]ll可以找到ball,bell但找不到bill[!]匹配不在[]之内的字符b[!ae]ll能找到bill和bull,但不找ball和bell[-]匹配某个范围内一个字符b[a-c]d可以找到bad,bbd和bcd#匹配任意单个数字字符1#3可以找到103,113,123表8-1子字段取值及其含义8.4.2Select语句集合⑻[groupby<分组字段名>[having<条件表达式>]]:groupby用于对查询结果进行分组,进行分类汇总,不可以在子查询中使用该子句;having必须跟在groupby后面,用于限定分组的条件;⑼orderby<排序字段名>[asc|desc]:对查询结果输出进行排序,不可以在子查询中使用该子句,asc|desc表示升降序,缺省时为升序。
8.4.2.1简单查询简介简单查询是由select…from和where短语构成的基本语句。⑴从xsxx表中检索所有籍贯;select籍贯fromxsxx⑵从xsxx检索所有不同籍贯;selectdistinct籍贯fromxsxx⑶检索表中所有记录;select*fromkc⑷检索入学成绩高于600分的记录;select*fromxsxxwhere入学成绩>600⑸检索哪些籍贯的学生有男生;selectdistinct籍贯fromxsxxwhere性别="男"⑹检索工商管理或信息管理专业学习,并且入学成绩低于600分的学生学号;select学号fromxsxxwhere入学成绩<600and(专业="信息管理"or专业="工商管理")8.4.2.2简单的联接查询简介简单的联接查询是指基于多个表的基本语句。⑴找出入学成绩高于600分和他们的所选修的课程号;selectxsxx.学号,课程代号fromxsxx,xxwhere入学成绩>600andxsxx.学号=xx.学号;⑵找出男生所选修的课程代号及其姓名;select姓名,性别,课程代号fromxsxx,xxwhere性别="男"andxsxx.学号=xx.学号;
8.4.2.3嵌套查询
嵌套查询是基于多个表的查询,与联接查询的区别,查询的结果来自一个表,而查询的条件却涉及多个表。⑴找出选修课的成绩为85分的学生;select姓名fromxsxxwhere学号in(select学号fromxxwhere成绩=85);⑵查询所有选修课的成绩都高于80分的学生的信息;select*fromxsxxwhere学号notin(select学号fromxxwhere成绩<=80)and学号in(select学号fromxx);注意:查询所有选修课的成绩都高于80分的学生信息,并且这些学生至少选了一门课,所以加上and学号in(select学号fromxx);⑶找出和王同学同年出生的所有学生,输出他们的姓名,性别和出生日期;select姓名,性别,出生日期fromxsxxwhereyear(出生日期)=(selectyear(出生日期)fromxsxxwhere姓名="王同学");8.4.2.4特殊的运算符号
[not]in:[不]在……之中[not]between…and:[不]在……之间[not]like:[不]与……匹配is[not]null:是[否]空值⑴检索入学成绩在550分到590分之间的学生信息;select*fromxsxxwhere入学成绩between550and590;⑵找出籍贯不在湖北的全部学生的学号、姓名和籍贯信息;select学号,姓名,籍贯fromxsxxwherenot籍贯="湖北";⑶找出选修课成绩不在80分到90分之间的全部选修信息;select*fromxxwhere成绩notbetween80and90;⑷找出“学生”表里专业中含有“管”字的学生信息;select*fromxsxxwhere专业like"*管*";⑸找出尚未确定选课老师的课程情况;select*fromkcwhere教师isnull;8.4.2.5查询结果排序
格式:[orderby<排序选项1>[asc|desc]]功能:将结果排序。⑴按入学成绩的升序检索男生的学号、姓名、性别和入学成绩信息;select学号,姓名,性别,入学成绩fromxsxxwhere性别="男"orderby入学成绩;⑵先按学生的性别排序,再按出生年月排序,并输出全部学生信息;select*fromxsxxorderby性别,出生日期;8.4.2.6聚合函数查询方法集合函数在信息管理系统中经常使用,功能是进行一些基本的统计和计算,聚合函数有5个,这些函数如表8-2所示。
名称说明sum(<字段名>)计算出某个字段的总和avg(<字段名>)计算出某个字段的平均值Count(<*|字段名>)计算出返回记录的行数max(<字段名>)计算出某个字段的最大值min(<字段名>)计算出某个字段的最小值表8-2SQL聚合函数8.4.2.6聚合函数查询方法⑴求入学成绩的总分数;selectsum(入学成绩)fromxsxx;⑵求王同学和潘同学选修课程成绩的总和;selectsum(成绩)fromxxwhere学号in(select学号fromxsxxwhere姓名="王同学"or姓名="潘同学");⑶求选修课程代号为01的平均成绩;selectavg(成绩)fromxxwhere课程代号="01";⑷求选修了课程的教师人数;selectcount(教师)fromkc;⑸求出入学成绩最高的学生;selectmax(入学成绩)as最高分fromxsxx;⑹求出选修课成绩最小的学生;selectmin(成绩)as最低分fromxx;8.4.2.7分组查询
格式:[groupby<分组选项>[having<条件表达式>]]说明:指定输出分组和分组的条件。⑴求每门选修课程课的平均成绩;select课程代号,avg(成绩)fromxxgroupby课程代号;⑵求至少有3个学生选修的课程的平均成绩;select课程代号,count(*),avg(成绩)fromxxgroupby课程代号
havingcount(*)>=3;8.4.2.8超联接查询
格式:select…from<表1>inner|left|right|full|join<表2>on<连接条件>where……功能:根据联接条件对<表1>和<表2>进行内部联接,或左联接,或右联接,完全联接。说明:⑴innerjoin:内部联接,只有满足条件的记录才出现在查询结果中;例:查询学生姓名的同时查询对应的选修成绩。selectxsxx.姓名,xx.成绩
fromxsxxinnerjoinxxonxsxx.学号=xx.学号;⑵leftjoin:左联接,以<表1>为依据,显示<表2>与之关联的数据记录;⑶rightjoin:右联接,以<表2>为依据,显示<表1>与之关联的数据记录;⑷fulljoin:完全联接,先以<表1>为依据,显示<表2>与之关联的数据记录,再以<表2>为依据,显示<表1>与之关联的数据记录,去掉重复出现的记录行。8.4.3insert语句
ASP网页向数据库添加记录的方法主要分为两种:一种使用recordset对象的(记录对象)的addnew方法;另一种是直接执行SQL插入语句insert命令。insert语句可给数据库中的某一个表添加一条或多条新记录。单记录格式:insertinto<表名>[<字段名列表>]values<表达式清单>多记录格式:insertinto<表名>[<字段名列表>]select[<源字段名列表>]from<源表名>⑴往选修表里掺入记录("02301","05",90);insertintoxx(学号,课程代号,成绩)values("02501","05",90)⑵选修课“离散数学”老师尚未确定,往“课程”表追加记录("11","离散数学",null);insertintokc(课程代号,课程名称,教师)values("11","离散数学",null)8.4.4delete语句
格式:deletefrom<表名>where<条件表达式>功能:可删除表或视图中的一条或多条记录。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑施工中的质量控制体系考核试卷
- 液力机械耐磨损技术考核试卷
- 船舶建造过程中的能耗分析与节能措施考核试卷
- 航天器地球观测与应用技术考核试卷
- 毛巾企业产品追溯系统与品质保证考核试卷
- 电子书的未来发展趋势与挑战考核试卷
- 船舶维护与保养管理技术考核试卷
- 航运节能减排技术考核试卷
- 结构力学II 课件 第10章-动力学
- 高清影视动画衍生品授权生产与销售收益分成合同
- 河北省管道直饮水项目可行性研究报告
- 2024年甘肃省平凉市中考生物真题卷及答案解析
- 光电效应教学课件
- 【微训练】20天 背默填 玩转60篇(高语名默循环练)-教师版
- 保温隔热工程脚手架工程分包协议
- 科学读书分享
- 幼儿园班本课程中班花样篮球
- 充电桩运营管理协议
- 设备吊装作业施工方案
- 高标准农田 建设项目验收规程DB41-T 2415-2023
- 台球杆购买合同模板
评论
0/150
提交评论