




免费预览已结束,剩余328页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
网页设计与网站建设,陈书henshulin0923,课时计划,本课程共64个学时48个学时讲授基础知识16个学时上机试验课程在第16周结束成绩:期末考试(70)平时成绩(30),第一章电子商务网站建设概述,电子商务网站定义电子商务网站是指一个企业、机构或公司在互联网上建立的站点,其目的是为了宣传企业形象、发布产品信息、宣传经济法规、提供商业服务等。电子商务网站功能企业形象宣传新闻发布、供求信息发布产品和服务项目展示商品和服务定购转账与支付、物流应用信息搜索与查询客户信息管理销售业务信息管理,第一章电子商务网站建设概述,电子商务网站的架构,第一章电子商务网站建设概述,电子商务网站的构成要素网站域名网站物理地点网站页面商品目录购物车付款台计数器留言板会员管理商品盘点更新客户资料管理商品配送,第二章网站总体设计,网站CI设计网站的CI设计,主要是指网站的标志、色彩、字体、标语,是一个网站建立CI形象的关键,是网站的表面文章、形象工程。通过对网站的标志、色彩、字体、标语设计,建立起网站的整体形象。网站的标志(Logo)、名称标准色彩标准字体宣传标语,第二章网站总体设计,网站的目录结构网站的目录是指建立网站时创建的目录。不要将所有文件都存放在根目录下按栏目内容建立子目录在每个主栏目目录下都建立独立的Images目录目录的层次不要太深不要使用中文目录不要使用过长的目录尽量使用意义明确的目录,第二章网站总体设计,链接结构网站的链接结构是指页面之间相互链接的拓扑结构。研究网站的链接结构的目的在于:用最少的链接,使浏览最有效率。一般建立网站的链接结构有两种基本方式:树状链接结构星状链接结构,第三章Web页面制作基础HTML标记,HTML语言HTML是超文本标记(HyperTextMarkupLanguage)的缩写,是一种描述文档结构的语言,它使用描述性的标记符来指明文档的结构。,第三章Web页面制作基础HTML标记,例:这是标题部分你好,这是正文部分!,第三章Web页面制作基础HTML标记,HTML标记符一般有两种:一般标记符(容器标记符)这些标记符的起始部分与结束部分必须成对出现空标记符只是单一的一个标记符而已,如标记符,第三章Web页面制作基础HTML标记,文件结构标记符文件结构标记符标识文件的结构。主要包括如下标记符:HTML标记符一般格式为:.HEAD标记符一般格式为:BODY标记符一般格式为:,第三章Web页面制作基础HTML标记,第三章Web页面制作基础HTML标记,区段格式标记符区段格式标记符将HTML文件中的某个区段文字以特定格式显示,以增加可视性。此类标记符主要包括:Title标记符用于规定HTML文档的标题。一般格式为:HI标记符HI用于简要描述段落的标题,共有六个级别:H1,H2,H3,H4,H5,H6。其中以H1标题级别为最高,H6标题级别最低。,第三章Web页面制作基础HTML标记,例:HTML标题演示示例标题h1文字显示!标题h2文字显示!标题h3文字显示!标题h4文字显示!标题h5文字显示!标题h6文字显示!,第三章Web页面制作基础HTML标记,第三章Web页面制作基础HTML标记,换行标记符是换行标记符,它是单独出现的,作用相当于插入一个回车符。段落标记符标记符用于划分段落,控制文本放置。一般格式为:水平标记符标记符是单独使用的标记符,它的作用是换行并在该行下面画一条水平直线。标记符的属性有:Size、Width、align和color。,第三章Web页面制作基础HTML标记,size属性用以规定水平线的高度,该属性的参数值必须是数字;width属性用以规定水平线的宽度,该属性的参数值可以是数字(代表字符数)或者百分比(占浏览器宽度的百分比),缺省时水平线占整个浏览器窗口宽度;align属性规定水平线在浏览器窗口的位置,其参数值为left(左侧)、center(中间)、right(右侧)之一;color属性用以指定水平线的颜色。,第三章Web页面制作基础HTML标记,预格式化标记符标记符是预格式化标记符,它是成对出现的。Web浏览器按编辑文档时的字符位置将和标记符之间的内容一成不变地显示出来。,第三章Web页面制作基础HTML标记,例:PRE标记符测试文档1992JanuaryOn15th,thefirstlinemodebrowserwasAvailablebyanonymousFTP,第三章Web页面制作基础HTML标记,第三章Web页面制作基础HTML标记,字符格式标记符字符格式标记符用来改变HTML文档的显示外观,增加文件的美观程度。HTML文档的字符格式标记符主要有:之间的内容将显示为黑体文字;之间的内容将显示为斜体文字;之间的内容将显示为带下划线的文字;之间的内容将显示为删除线;之间的内容加大显示;文本采用small字体之间的内容居中显示;之间的内容显示上标;,第三章Web页面制作基础HTML标记,之间的内容显示下标;之间的内容显示强调;之间的内容显示加重强调;之间的内容通过标记符内的属性设置来改变字体。它具有的属性有size、face和color。设置字体大小的属性size的有效值是从1到7的整数Face属性是设置字体的类型,其值就是字体类型的名字,如“楷体_GB2312”Color属性设置字体的颜色,其值是颜色值是十六进制值例:这是Font设置的文字。,第三章Web页面制作基础HTML标记,链接标记符HTML中的链接包括两部分:锚标和目标点。锚标就是链接的源点,当鼠标被移到锚标处时会变成小手状。此时,用户通过点击鼠标就可以到达链接的目标点。HTML是通过链接标记符来实现超链接的。超链接标记符是成对出现的标记符,首标记符和尾标记符之间的内容就是锚标。标记符有一个不可缺省的属性HREF,用于指定链接目标点的位置。链接标记符的一般形式为:,第三章Web页面制作基础HTML标记,从一个文件链接到另一个文件有两种方法:链接到一个文件的本身例如:Pagetwo链接到一个文件中的特定位置若要链接到文件中的特定位置,就需要先在文档中加入链接点,即链接的目标点。实例如下:PointA字符串“PointA”就是待链接的目标点。通过语句:ThisLink实现了超链接。,第三章Web页面制作基础HTML标记,表格标记符表格标记符一般格式为:标记符的属性主要有:border属性width属性Height属性align属性cellspacing属性cellpadding属性行标记符一般格式为:标记符有两个属性:Align属性Valign属性单元格标记符一般格式为:标记符的属性主要有:rowspan属性colspan属性align属性valign属性列标题定义标记符一般格式为:,第三章Web页面制作基础HTML标记,第三章Web页面制作基础HTML标记,HTML标记测试实例HTML标记显示结果本实例是对HTML标记的学习效果的一个展示!HTML标记是学好网页设计与网站建设这门课的基础,必须掌握它!链接下面是表格的设计,其中它的边框宽度为1,表格的宽度占屏幕的50,表格中的内容居中显示学号姓名001张三002李四共2名学生,第三章Web页面制作基础制作表单,表单(Form)是用于采集用户输入的信息,从而实现与用户交互的表格。例如,用表单设计订货单、征集用户意见、收集用户信息等等。每一个表单都有一个“提交”按钮,当用户填写完表单并按下“提交”按钮时,用户所填写的信息就发送到web服务器,由服务器负责处理所提交的信息。表单一般由两个部分组成:HTML代码和CGI程序。其中HTML代码主要用来生成表单的可视化界面,CGI程序用来负责对表单所包含的信息进行解释或处理。,第三章Web页面制作基础制作表单,表单标记符一般格式为:标记符有两个不可缺省的属性:ACTION属性一般格式为:ACTION属性后面的等号表明当这个表单提交后,用于指定服务器端处理该表单的CGI程序。它的参数值就是该程序的URL。,第三章Web页面制作基础制作表单,METHOD属性一般格式为:用于指定表单信息传送到服务器的方式。属性的参数值为get和post之一。使用GET时,将Form的输入信息作为字符串附加到Action所设定的URL后面,中间用“?”隔开,每个表单域之间用“URL=newpath/newpage.asp”这等同于客户机端元素:这是一个测试文本!或:主页的第一行文字这是第二行文字。)%,第四章ASP内置对象Response对象,Response对象属性Buffer属性Buffer属性用于指示是否缓冲页输出:当缓冲页输出时,只有当前页的所有服务器脚本处理完毕或者调用了Flush或End方法后,服务器才将响应发送给客户端。应该在.asp文件的第一行调用Response.Buffer。语法如下:Response.Buffer=Flag。Flag为布尔值。当Flag为False,表示不缓冲,该值是默认值。服务器在处理脚本的同时将输出发送给客户端。当Flag为TRUE,除非当前页的所有ASP脚本处理完毕或调用了Flush或End方法,否则服务器不将响应发送给客户端。,第四章ASP内置对象Response对象,CacheControl属性该属性可以用来设置Web服务器是否将ASP的处理结果暂时存放在代理服务器上,如果客户端的浏览器没有设置,则这个属性值不起作用。当设置其属性为Public时,代理服务器可以缓冲由ASP产生的输出。用户的浏览器以及他们和服务器之间的任一代理服务器,都可以缓存HTML和用ASP创建的网页。当用户随后请求页面时,浏览器就发送一个“最新修改”的请求到服务器(使用一个包含缓存版本的日期的HTTP_IF_MODIFIED_SINCE报头),询问网页是否已被修改。若没有被修改,服务器应用状态码和消息“304NotModified”来响应,浏览器将使用缓存的内容而不会通过网络下载一个副本。若已经存在已修改的版本,它就会与“200OK”状态码和消息一道被发送出去。语法如下:Response.cachecontrol=CacheControlHeaderCacheControl的属性值为Public或Private两种:前者表示Web服务器是将ASP的处理结果暂时存放在代理服务器上,后者则不会。,第四章ASP内置对象Response对象,Charset属性将字符集名称(如GB2312,这是中文字符集)附加到Response对象中Content-type标题的后面,用来设置Web服务器响应给客户端的文件字符编码。语法如下:Response.Charset(字符集名称)ContentType属性用来指定响应的HTTP内容类型。如果未指定ContentType,默认为text/HTML。语法如下:Response.ContentType=内容类型一般来说,ContentType都是以“类型/子类型”的字符串来表示的。例如:Response.ContentType=text/textResponse.ContentType=image/GIF“Response.ContentType=image/JPEG,第四章ASP内置对象Response对象,Expires属性指定了在浏览器上缓冲存储的页距过期还有多少时间。如果用户在某个页过期之前又回到此页,就会显示缓冲区中的版本。这种设置有助于数据的保密。语法如下:Response.Expires=分钟数注意:该属性必须放在标签之前,否则会出错。例:实现功能:本地无缓存,每次自动刷新response.expires=0或response.addheader“pragma”,“no-cache”/不要网页存于缓存之中或或response.addheadercache-control,private”或response.CacheControl=no-cache/你也可以自己设置刷新分钟数response.AddHeaderREFRESH,”15”,第四章ASP内置对象Response对象,ExpiresAbsolute属性指定缓存于浏览器中的页的到期日期和时间。在未到期之前,若用户返回到该页,该缓存的页就显示;如果未指定时间,该主页在当天午夜到期;如果未指定日期,则该主页在脚本运行当天的指定时间到期。语法如下:Response.ExpiresAbsolute=日期时间其中参数“日期”为指定页的到期日期,参数“时间”指定页的到期时间。例:让网页不缓存:Response.Expires=0或Response.ExpiresAbsolute=Now()-1/昨天这个时刻或Response.Addheader“pragma”,“no-cache”或Response.Addheader“cache-control”,“private”或Response.CacheControl=no-cache,第四章ASP内置对象Response对象,IsClientConnect属性该属性为只读属性。指示自上次调用Response.Write之后,客户端是否与服务器端相连。语法如下:布尔值Response.IsClientConnected()PICS属性用来设置PICS标签,并把响应添加到标头(responseheader)PICS(ThePlatformforInternetContentSelection,互联网内容选择平台)是一个负责定义互联网网络等级及等级数据的W3C团体,他们通过多个指标来对网站的内容进行评级。评级后的网站会有一个评级标签。语法如下:Response.PICS(PICS字符串),第四章ASP内置对象Response对象,例:by,第六章数据库的创建与存取数据定义,模式的删除语法如下:DropSchema其中,CASCADE、RESTRICT两者必选其一。CASCADE(级联),表示在删除模式的同时把该模式中所有的数据库对象全部一起删除。RESTRICT(限制),表示如果该模式中已经定义了下属的数据库对象(如表、视图等),则拒绝该删除语句的执行。只有当该模式中没有任何下属的对象时才能执行DROPSchema语句。例:DropSchemaSTCASCADE创建了一个模式,就是建立了一个数据库。因此在许多RDBMS中就把创建模式称为创建数据库。即用CreateDatabase语句来代替CreateSchema语句。相应地用DropDatabase语句来代替DropSchema语句。,第六章数据库的创建与存取数据定义,基本表的定义创建了一个模式,就是建立了一个空数据库,更确切地讲是建立了一个数据库的命名空间,一个框架。在这个空间中首先要定义的是该模式包含的数据库基本表。SQL语言使用CreateTable语句定义基本表,其基本格式如下:CreateTable(列级完整性约束条件,列级完整性约束条件,);建表的同时,通常还可以定义与该表有关的完整性约束条件。这些完整性约束条件被存入系统的数据字典中,当用户操作表中数据时由RDBMS自动检查该操作是否违背这些完整性约束条件。如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定义在表级。,第六章数据库的创建与存取数据定义,数据类型定义表的各个属性时需要指明其数据类型及长度。,表6-2SQL中支持的数据类型,第六章数据库的创建与存取数据定义,例:建立一个学生表Student:CreateTableStudent(Snointprimarykey,Snamechar(20)Unique,Ssexchar(2),Sagesmallint,Sdeptchar(20)建立一个课程表Course:CreateTableCourse(Cnointprimarykey,Cnamechar(40),Ccreditsmallint)建立学生选课表Score。CreatetableScore(Snoint,Cnoint,Scoresmallint,primarykey(Sno,Cno),Foreignkey(Sno)referencesStudent(Sno),Foreignkey(Cno)referencesCourse(Cno),第六章数据库的创建与存取数据定义,基本表的修改语法如下:AlterTableAdd完整性约束AltercolumnDropcolumn其中Add子句用于添加新列和新的完整性约束条件,Altercolumn子句用于修改已有的列属性。该命令可以实现两种形式的修改:在原有的表中添加一个或多个列;修改原表中已有列的属性;删除指定的列。在删除列时下面几种情况的列不能被删除:被复制列;用在索引中的列;用在CHECK、FOREIGNKEY、UNIQUE或PRIMARYKEY约束中的列;有相关联的默认值(由DEFAULT关键字定义)的列,或绑定到默认对象的列;绑定到规则的列。,第六章数据库的创建与存取数据定义,例:在表Student中,要添加一个字段“sID”,数据类型为10个字符长的字符串AlterTableStudentAddsIDchar(10)在后面使用Student表中,发现该字段小了,决定要改为20个字符长的字符串AlterTableStudentAltercolumnsIDchar(20)删除学生表中sID字段AltertablestudentdropcolumnsID,第六章数据库的创建与存取数据定义,基本表的删除当某个基本表不再需要时,可以使用DropTable语句删除它。其一般格式为:DropTable基本表定义一旦被删除,表中的数据、此表上建立的索引和视图都将自动被删除掉。例:删除学生表Droptablestudent,第六章数据库的创建与存取数据定义,索引的建立建立索引是加快查询速度的有效手段。用户可以根据应用环境的需要,在基本表上建立一个或多个索引,以提供多种存取路径,加快查找速度。一般格式为:createuniqueCLUSTERED|NONCLUSTEREDindexon(,)其中,是要建索引的基本表的名字。索引可以建立在该表的一列或多列上,各列名之间用逗号分隔。每个后面还可以用指定索引值的排列次序,可选ASC(升序)或DESC(降序),缺省值为ASC。Unique表明此索引的每一个索引值只对应唯一的数据记录。Clustered表示要建立的索引是聚簇索引。所谓聚簇索引,是指表中记录的物理顺序与索引值的顺序一致的索引组织。用户可以在最经常查询的列上建立聚簇索引以提高查询效率。在一个基本表上最多只能建立一个聚簇索引。,第六章数据库的创建与存取数据定义,例:为学生课程数据库中的Student、Course、Score三个表建立索引。其中Student表按学号升序建唯一索引,Course表按课程号升序建唯一聚簇索引,Score表按学号升序和课程号降序建唯一索引。createuniqueindexstusNoonstudent(sno);createuniqueclusteredindexcoucNooncourse(Cno);createuniqueindexSCNoonscore(SnoASC,CnoDESC)索引的删除索引一经建立,就由系统使用和维护它,不需用户干预。建立索引是为了减少查询操作的时间,但如果数据增删改频繁,系统就会花费许多时间来维护索引降低查询效率。这时,可以删除一些不必要的索引。一般格式为:DropIndex例:删除Student表的stusNo索引。dropindexstusname,第六章数据库的创建与存取数据查询,数据库查询是数据库的核心操作,SQL语言提供了Select语句进行数据库的查询,该语句具有灵活的使用方式和丰富的功能。其一般格式为:selectAll|distinct,from,whereGroupbyHavingorderbyASC|DESC;,第六章数据库的创建与存取数据查询(单表查询),选择表中的若干列选择表中的全部列或部分列,这就是关系代数的投影运算。查询指定列在很多情况下,用户只对表中的一部分属性列感兴趣,这时也可以通过在Select子句的中指定要查询的属性列。例:查询全体学生的学号与姓名SelectSno,SnamefromStudent查询全部列将表中的所有属性列都选出来,可以有两种方法。一种方法就是在Select关键字后面列出所有列名。如果列的显示顺序与其在基表中的顺序相同,也可以简单地将指定为*。例:查询全体学生的详细记录。Select*fromstudent等价于:SelectSno,Sname,Ssex,Sage,Sdeptfromstudent,第六章数据库的创建与存取数据查询(单表查询),查询经过计算的值Select子句的不仅可以是表中的属性列,也可以是表达式。例:查询全体学生的姓名及其出生年份。SelectSname,2008-SagefromStudent不仅可以是算术表达式,还可以是字符串常量、函数等。例:查询全体学生的姓名、出生年份SelectSname,YearofBirth:,2008-SagefromStudent求学生总人数selectcount(*)fromstudent用户可以通过指定别名来改变查询结果的列标题,这对于含算术表达式、常量、函数名的目标列表达式尤为有用。SelectSnameasname,YearofBirth:asbirth,2008-SageasbirthdayfromStudent,第六章数据库的创建与存取数据查询(单表查询),选择表中的若干元组消除取值重复的行两个本来并不完全相同的元组,投影到指定的某列上后,就可能变成相同的行了,可以用distinct消除取值重复的行。例:查询选修了课程的学生学号。selectdistinctsnofromscore查询满足条件的元组查询满足条件的元组可以通过where子句实现。where子句常用的查询条件如下表所示:,表6-3常用的查询条件,第六章数据库的创建与存取数据查询(单表查询),比较大小例:查询所有年龄在20岁以下的学生的姓名和年龄。selectsname,sagefromstudentwheresage、=、)等。当连接运算符为“=”时,称为等值连接。使用其它运算符称为非等值连接。例:查询每个学生及其选修课程的情况。若在等值连接中把目标列中重复的属性列去掉则为自然连接。,selectstudent.*,score.*fromstudent,scorewherestudent.sno=score.sno,selectstudent.sno,sname,ssex,sdept,cno,scorefromstudent,scorewherestudent.sno=score.sno,第六章数据库的创建与存取数据查询(连接查询),复合条件连接Where子句中可以有多个连接条件,称为复合条件连接。例:查询选修2号课程且成绩在70分以上的所有学生selectstudent.sno,snamefromstudent,scorewherestudent.sno=o=2andscore.score70连接操作除了可以是两表连接,还可以是两个以上的表进行连接,后者通常称为多表连接。例:查询每个学生的学号、姓名、选修的课程名和成绩selectstudent.sno,sname,cname,scorefromstudent,course,scorewherestudent.sno=o=o,第六章数据库的创建与存取数据查询(连接查询),嵌套查询在SQL语言中,一个select-from-where语言称为一个查询块。将一个查询块嵌套在另一个查询块的where子句或having短语的条件中的查询称为嵌套查询。例:查询选修了2号课程的学生的姓名selectsnamefromstudentwheresnoin(selectsnofromscorewherecno=2)SQL语言允许多层嵌套查询。即一个子查询中还可以嵌套其它子查询。需要特别指出的是,子查询的Select语句中不能使用OrderBy子句,OrderBy子句只能对最终查询结果排序。嵌套查询一般的求解方法是由里向外处理。即每个子查询在上一级查询处理之前求解,子查询的结果用于建立其父查询的查找条件。,第六章数据库的创建与存取数据查询(连接查询),带有In谓词的子查询例:查询与“刘继平”在同一个系学习的学生先分步来完成此查询,然后再构造嵌套查询:(1)确定“刘继平”所在系名。SelectSdeptfromstudentwhereSname=刘继平(2)查找所有在CS系学习的学生SelectSno,Sname,SdeptfromstudentwhereSdept=CS将第(1)步查询嵌入到第(2)步查询的条件中,构造嵌套查询如下:SelectSno,Sname,SdeptfromstudentwhereSdeptIn(selectSdeptfromstudentwhereSname=刘继平),第六章数据库的创建与存取数据查询(连接查询),带有比较运算符的子查询带有比较运算符的子查询是指父查询与子查询之间用比较运算符进行连接。当用户能确切知道内层查询返回的是单值时,可以用,=,等比较运算符。上例的解法二:SelectSno,Sname,SdeptfromstudentwhereSdept=(selectSdeptfromstudentwhereSname=刘继平)需要注意的是,子查询一定要跟在比较符之后,下列写法是错误的:SelectSno,Sname,Sdeptfromstudentwhere(selectSdeptfromstudentwhereSname=刘继平)=Sdept,第六章数据库的创建与存取数据查询(连接查询),带有ANY或ALL谓词的子查询子查询返回单值时可以用比较运算符,但返回多值时要用Any或All谓词修饰符。,第六章数据库的创建与存取数据查询(连接查询),例:查询其他系中比计算机系某一学生年龄小的学生姓名和年龄。SelectSname,SagefromStudentwhereSageCS本查询也可以用聚集函数来实现:SelectSname,SagefromStudentwhereSageCS查询其他系中比计算机系所有学生年龄都小的学生姓名及年龄。SelectSname,SagefromStudentwhereSageCS本查询同样也可以用聚集函数实现。SelectSname,SagefromStudentwhereSageCS,第六章数据库的创建与存取数据查询(连接查询),事实上,用聚集函数实现子查询通常比直接用ANY或ALL查询效率要高。表6-5Any、All与聚集函数的对应关系,第六章数据库的创建与存取数据查询(连接查询),带有Exists谓词的子查询带有Exists谓词的子查询不返回任何数据,只产生逻辑真值True或逻辑假值False。可以利用Exists来判断xS、SR、S=R、SR非空是否成立例:查询所有选修了1号课程的学生姓名。SelectSnamefromStudentwhereExists(select*fromScorewhereSno=Student.SnoandCno=1)使用存在量词Exists后,若内层查询结果非空,则外层的Where子句返回真值,否则返回假值。由Exists引出的子查询,其目标列表达式通常都用*,因为带Exists的子查询只返回真值或假值,给出列名无实际意义。,第六章数据库的创建与存取数据查询(连接查询),与Exists谓词相对应的是NotExists谓词。使用存在量词NotExists后,若内层查询结果为空,则外层的Where子句返回真值,否则返回假值。例:查询没有选修1号课程的学生的姓名。SelectSnamefromStudentwhereNotExists(select*fromScorewhereSno=Student.SnoandCno=1),第六章数据库的创建与存取数据更新,数据更新操作有3个:向表中添加若干行数据、修改表中的数据和删除表中的若干行数据。添加数据SQL的数据添加语言Insert通常有两种形式。添加一个元组语法Insertinto(,)values(,)Values子句对新元组的各属性赋值,字符串常数要用单引号(英文符号)括起来。Into子句中没有出现的属性列,新记录在这些列上将取空值;在表定义时说明了NotNull的属性列不能取空值,否则会出错;如果Into子句中没有指明任何列名,则新添加的记录必须在每个属性列上均有值。,第六章数据库的创建与存取数据更新,例:将一个新的学生记录(学号:10;姓名:陈冬;性别:男;所在系:IS;年龄:18岁)插入到student表中。Insertintostudent(sno,sname,ssex,sdept,sage)values(10,陈冬,男,IS,18)或Insertintostudentvalues(10,陈冬,男,IS,18),第六章数据库的创建与存取数据更新,添加子查询结果子查询可以嵌套在Insert语句中,用以生成要插入的批量数据。插入子查询结果的Insert语句的格式为:Insertinto(,)子查询;例:对每个系,求学生的平均年龄,并把结果存入数据库中。首先创建一个新表,其中一列存放系名,另一列存放相应的学生平均年龄。createtabledept_age(sdeptchar(15),avg_agesmallint)然后对student表按系分组求平均年龄,再把系名和平均年龄存入新表中。Insertintodept_age(sdept,avg_age)selectsdept,AVG(sage)fromstudentgroupbysdept,第六章数据库的创建与存取数据更新,修改数据语法:updateset=,=where注意:如果省略where子句,则表示要修改表中的所有元组。修改某一个元组的值例:将学生2的年龄改为22岁updatestudentsetsage=22wheresno=2修改所有元组的值例:将所有学生的年龄增加1岁updatestudentsetsage=sage+1带子查询的修改语句(修改多个元组的值)例:将计算机科学系全体学生的成绩置零updatescoresetscore=0wheresnoin(selectsnofromstudentwheresdept=CS),第六章数据库的创建与存取数据更新,删除数据语法:Deletefromwhere删除某一个元组例:删除学号为6的学生记录deletefromstudentwheresno=6删除所有元组例:删除所有的学生选课记录deletefromScore带子查询的删除语句例:删除计算机科学系所有学生的选课记录deletefromscorewheresnoin(selectsnofromstudentwheresdept=CS),第六章数据库的创建与存取视图,视图是从一个或多个基本表(或视图)导出的表。数据库中只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。建立视图语法:CreateView(,)AsWithCheckOption;子查询可以是任意复杂的Select语句,但通常不允许含有OrderBy子句和Distinct短语。WithCheckOption表示对视图进行Update、Insert和Delete操作时要保证更新、插入或删除的行满足视图定义中的谓词条件。,第六章数据库的创建与存取视图,组成视图的属性列名或者全部省略或者全部指定,没有第三种选择。如果省略了视图的各个属性列名,则隐含该视图由子查询中Select子句目标列中的诸字段组成。但在下列三种情况下必须明确指定组成视图的所有列名:某个目标列不是单纯的属性名,而是聚集函数或列表达式。多表连接时选出了几个同名列作为视图的字段。需要在视图中为某个列启用新的更合适的字段。,示例:建立信息系学生的视图CreateViewIs_StudentAsSelectSno,Sname,SagefromStudentwhereSdept=ISWithCheckOption,第六章数据库的创建与存取视图,示例:建立信息系选修了1号课程的学生的视图。CreateViewIs_S1(Sno,Sname,score)AsSelectStudent.Sno,Sname,scorefromStudent,ScoreWhereSdept=ISandStudent.Sno=Score.SnoandScore.Cno=1;,视图不仅可以建立在单个基本表上,也可以建立在多个基本表上。视图不仅可以建立在一个或多个基本表上,也可以建立在一个或多个已定义好的视图上,或建立在基本表与视图上。,示例:建立信息系选修了1号课程且成绩在90分以上的学生的视图。CreateViewIs_S2AsSelectSno,Sname,scorefromIs_S1wherescore=90,第六章数据库的创建与存取视图,删除视图语法:DropView视图删除后视图的定义将从数据字典中删除。但是由该视图导出的其他视图定义仍在数据字典中,不过这些视图也已失效,用户使用时会出错,要用DropView语句将它们一一删除。,示例:删除视图IS_S1。DropViewIS_S1,第六章数据库的创建与存取视图,查询视图RDBMS执行对视图的查询时,首先进行有效性检查。检查查询中涉及的表、视图等是否存在。如果存在,则从数据字典中取出视图的定义,把定义中的子查询和用户的查询结合起来,转换成等价的对基本表的查询,然后再执行修正了的查询。,示例:在信息系学生的视图中找出年龄小于20岁的学生。SelectSno,SagefromIs_StudentwhereSage,第七章网络数据库的访问Connection对象,Close方法关闭Connection对象或Recordset对象以便释放所有关联的系统资源。关闭对象并非将它从内存中删除,可以更改它的属性设置并且在此后再次打开。要将对象从内存中完全删除,可将对象变量设置为nothing。语法:Conn.CloseBeginTrans、CommitTrans和RollbackTrans方法BeginTrans表示开始事务;当调用BeginTrans方法开始一个事务后,就在内存中为这次操作开辟一个缓冲区。语法:Conn.BeginTransCommitTrans表示保存任何更改并结束当前事务,它也可能启动新事务。语法:Conn.CommitTransRollbackTrans表示取消当前事务中所作的任何更改并结束事务,它也可能启动新事务。语法:Conn.RollbackTrans,第七章网络数据库的访问Connection对象,Connection对象的属性ConnectionTimeOut属性设置Connection对象的Open方法与数据库连接时的最长等待时间,缺省值为15秒。如果希望没有时间限制,则可以将其设置为0。CommandTimeOut属性CommandTimeOut属性是设置Connection对象的Execute方法运行时等待的最长时间,缺省值为30秒,如果设为0,则系统会一直等到运行结束为止。ConnectionString属性设置Connection对象的数据库连接信息。它支持以下几个参数Provider:指定用于连接的数据提供者的名称。DataSource/DSN:指定需要连接的数据源名称。UserID/UID:指定打开这个连接的用户ID(身份标识)。Password/PWD:指定连接到数据库的用户密码。,第七章网络数据库的访问Connection对象,Mode属性该属性用来设置或取得Connection对象连接的权限。,表7.2Mode属性的取值,第七章网络数据库的访问Connection对象,Provider属性设置或返回Connection对象的数据提供者的名称。该属性值由ConnectionStrin属性或Open方法的ConnectionString参数的内容确定。如没有设置该属性,则该属性将设置为MSDASQL.1,表示使用MicrosoftOLEDBProviderforODBC连接。State属性用来取得Connection对象的状态。语法:long=connection.state,第七章网络数据库的访问Connection对象,Attributes属性它定义了Connection对象的事务处理方式,控制事务成功或失败后Connecion对象向数据库写数据的方式。,第七章网络数据库的访问Connection对象,Connection对象的数据集合Connection对象提供Errors、Properties两种数据集合。前者表示Connection对象运行是最近一次的错误或警告信息,后者表示Connection对象所定义的相关属性。例:利用Properties数据集合取得Connection对象的所有相关属性。Setconn=Server.CreateObject(ADODB.Connection)Conn.Provider=Microsoft.Jet.Oledb.4.0Conn.openserver.mappath(student.mdb)建立一个表,把属性的结果保存到表中。Response.WriteResponse.Write相关属性Response.Write属性值Response.Write把属性值填入表中FpertiesResponse.Writedatasource=+server.mappath(student.mdb)conn.openstrprovider利用Server对象的CreateObject方法建立Recordset对象DimresSetres=Server.CreateObject(ADODB.Recordset)DimstrSQLstrSQL=select*fromstudentwithres.source=strSQL.ActiveConnection=conn.cursortype=AdOpenDynamic.locktype=adlockOptimistic.openEndwith,第七章网络数据库的访问Recordset对象,Close方法Close方法释放所有关联的系统资源。使用Close方法关闭Recordset对象后,系统并没有将其占有的内存释放,要将对象从内存中完全删除,可将该对象变量设置为Nothing。在Recordset对象使用Open方法再次打开前,一定要先使用Close方法将其关闭,否则ADO将给出错误信息。语法:Recordset.closeMoveFirst、MoveLast、MoveNext、MovePrevious、Move方法这些方法都是用来移动指针的,通过使用这些方法可以很方便的移动到所要的位置。语法:Recordset.MoveFirst/MoveLast/MoveNext/MovePreviousMove是可以将指针移动到指定位置。语法:Recordset.MoveNumRecords,Start其中:NumRecords表示指针移动的数目,正数表示往下移动,负数表示往上移动;Start表示指针移动的基准点。,第七章网络数据库的访问Recordset对象,表7.8Start参数的取值范围,注意:如果Recordset对象不支持游标向前移动,则MoveFirst、MovePrev
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 临床规范诊疗知识考试题及答案2025年版
- 兰大临床研究生试题及答案2025年版
- 临床病理学技术试题及答案2025年版
- 2025无产权车位转让合同模板
- 2025年污染修复工程试卷及答案
- 潮流玩具市场IP运营与品牌战略研究报告
- 综艺股份审阅报告及备考财务报表
- 2025年美容理论试题答案及答案
- 2025炉窑衬材料供应合同主要条款
- 2025年终止租赁合同协议书:轿车租赁合同协议书
- 餐饮部各岗位工作流程标准化手册
- 2025年度国家广播电视总局直属事业单位公开招聘310人笔试带答案
- 小学课件培训:AI赋能教育创新
- 口腔癌手术护理
- 基层群众自治制度讲座课件
- 开学后学科竞赛准备计划
- 《金融行业客户服务礼仪培训》课件
- (新版)园林绿化工职业技能考试题(附答案)
- 气体充装安全培训课件
- 玻璃隔断制作安装合同
- 小学生防控近视课件
评论
0/150
提交评论