html的table标签怎么嵌套
HTML语言是谁发明的?
HTML语言是谁发明的?
HTML是由Web的发明者TimBerners-Lee和同事于1990年创立的一种标记式语言,它是通用标记语言SGML的简化。用它的语法规则建立的文档可以运行在不同操作系统平台上。因此,HTML文档属于纯文本文件(它能用任意的文本编写器书写)。现在有很多网迷称HTML为程序语言,把写HTML文档理解为编程,这显然是走进了一个误区。其实,要想学习HTML,一钵(记事本)一甑(浏览器)足矣。
在了解了HTML的定义后,接下来我们便来学习此语言。由于篇幅有限,本文不可能把HTML语言的属性一一讲解。笔者只是选了一些比较重要而又广泛使用的标签进行分析。看完这篇文章后,你就会对HTML的工作原理有一个初步的认识。
一、HTML语言基础
用HTML语言编写的文档就称为HTML文档。我们平时上网所见到的就是HTML文档在浏览器中显示的结果。控制HTML文档外观的是HTML标签,浏览器可以将标签解释成具体的内容,如超级链接、标题、段落、列表等。
要学会编写HTML文档,就要掌握各种HTML标签。关于HTML标签,有五点非常重要:
1.标签始终以尖括号相围(小于号/大于号)——如ltheadgt或ltigt、lt/igt。
2.多数标签都成对出现,并且围在作用材料的两侧。它们的工作方式就和电灯开关一样:第一个标签启动操作,第二个标签把它关闭。(当然,也有一些例外。例如,标签创建段落,但并没有“关闭开关”。段落创建完后,不能再把后面的部分恢复为创建之前的状态。)
3.第二个标签——“关闭开关”总是以前斜杠开始。例如,启动粗体时使用ltbgt,表达完你的强烈感情后再用lt/bgt恢复到一般文本。
4.前一个标签打开,后一个标签关闭。标签都是嵌入的。所以如果你写下了这样一段HTML文本:
ltheadgt
那么它是无效的。正确的顺序应该是ltheadgtlt/headgt。
5.许多标签都有可选的属性,这些属性使用只修改标签的行为。例如,使用ltpgt标签的ALIGN属性,你可以更改缺省的段落对齐方式(左对齐)。比如,ltpalignCENTERgt就可以使它后面的段落居中。
◎HTML语言可以在任何文本编辑器中编写,如Word、记事本等,然后保存为.html语言,最后在浏览器中浏览。
下面,就让我们开始动手用记事本来写网页。
在“开始”→“程序”→“附件”中打开记事本。
1.先输入几个符号试验一下,然后将记事本另存为.html文件。
2.再看看,文本保存的格式是不是和原来不一样了?!很容易认出来。
3.打开这个新文件,看看出来的是什么?
一个基本的HTML页面包括以下基本标签:
lthtmlgt
ltheadgt
lttitlegt页面标题lt/titlegt
lt/headgt
ltbodygt
页面内容
lt/bodygt
lt/htmlgt
是不是很简单?在这里,HTML标签用来表示你做的页面是HTML文档;HEAD标签用来描述HTML页的内容。在ltheadgt与lt/headgt之间可以插入其它标签,其中最重要的就是TITLE标签,在lttitlegt与lt/titlegt之间的内容就将出现在浏览器的标题栏中。
Body标签用来表示页面的主体。在ltbodygt与lt/bodygt之间可以设置页面的背景颜色、背景图像、文字色彩、页面边距等。BODY标签的基本用法如下:
ltbody
backgroundurl设置页面的背景图片
bgcolorcolor设置页面的背景颜色(颜色值为英文和十六进制代码,代码表见文章末)
textcolor设置页面文本的颜色
leftmarginn设置整个页面的左边距。当n0时,页面的边缘便紧贴左边缘
下面让我们先来试验一下。
注:以下例图是将InternetExplorer浏览器(以下简称IE浏览器)和记事本同时并排打开,调整窗口大小后的对比效果。需要注意,每当在记事本中做改动后,都要保存一次,同时在用IE浏览器浏览时也要刷新一下。
在WORD中设置文字大小是很容易的,不过那是拜其强大的所见即所得功能所赐,上不了台面的。来利用HTML语言标签设置一下文字效果吧,你一定会很有成就感!
HTML语言可以用标签对文档字符进行字体设置,包括标题、字体、字号、字符颜色等。
1.H标题标签
一个页面当然要有一个醒目的标题,这样别人才能方便迅速地了解你页面的内容,并根据标题的级别来了解内容的重要程度。HTML可以定义六级标题:H1、H2、H3、H4、H5、H6。与其它标签一样,它们也是成对使用的。格式为ltHngt……lt/Hngt,n可以是1至6的整数。例如:
2.设置文字大小
除了对标题的文字大小进行设置以外,HTML语言还可以利用FONT标签对文档内的文字的大小进行设置。FONT标签包括三种属性:size属性,color属性,face属性。size属性用来确定字号的大小,其有效数字范围在-7(最小)和 7之间。如果不设置,系统的默认值为3。其设置格式为ltfontsizengt……lt/fontgt。例如:
3.设置文字颜色
FONT的color属性可以用来设置文字的颜色。这里所介绍的颜色设置与前面介绍的textcolor不同。textcolor是设置整个页面的文字颜色,而这里所介绍的是设置特定文字的颜色,这样可以使你的页面更加丰富多彩。其设置格式为ltfontcolor?gt……lt/fontgt。例如:
4.设置版面
你不想页面中的文字总是从左边开始吧?要想在页面中进行分行和段落设置,必须通过HTML语言进行版面设计。
分段标签ltpgt……lt/pgt表示一段文字的开始和结束,单独一个ltpgt标签表示一个空行。
换行标签ltbrgt……lt/brgt表示浏览器执行一个换行动作,它与ltpgt标签不同的是,它并不改变段落位置。
居中标签ltcentergt……lt/centergt可以将文本居中显示。例如:
三、列表的设置
列表标签在文档制作中有重要作用,同样主页制作也少不了列表标签。HTML规定了多种列表标签,可以设置无序列表、有序列表、自定义列表和目录列表。我们下面可以看看实际效果。
1.无序列表包括UL标签和LI标签。UL标签创造一个标有圆点的列表,LI标签放在每个圆点列表前,并加上一个圆点。例如:
2.有序列表包括OL标签和LI标签,OL标签用来创建一个标有数字的列表,LI标签放在每个数字列表项之前,并加上一个序列数字。例如:
3.自定义列表包括DL、DT、DD等标签,在这里限于篇幅不多解释。简单地说,自定义列表就是解释词语。例如:
4.目录列表则包括DIR、LI元素,举例如下:
大家都知道,超链接是互联网的一大特点,用鼠标轻轻一点,就可以转到其它网页,这是多么神奇啊。超链接正是HTML语言的优势,它是通过A标签实现的,其属性是href。
href属性的用法:当A标签中包含href属性时,A标签的起始标记和结束标记之间的文字就成为超文本,也就是说,用鼠标点击这个超文本文字,你就可以进入另外一个网址或者自动打开默认电子邮件程序。另外,你也一定注意到,许多时候当我们把鼠标光标放到页面某个位置时,旁边就会出现一个小小的黄色文字说明,不要把这种技巧想像得太神秘,其实并不难。让我们一起试试看:
怎么样,HTML语言并不神秘吧!
四、建立超链接
做主页,难免要在页面中加入表格,那就需要用到以下这些基本标签:
TABLE标签:说明一个表格的开始和结束
BORDER标签:为表格加边框
TR标签:用以定义表格行数
TH标签:用以定义表头
TD标签:用以定义表格内容
COLSPAN标签:可以实现跨几列显示
ROWSPAN标签:可以实现跨几行显示
这些标签的用法都可以在下例中看到:
够神奇吧,只需要加几个符号,表格就出来了。当然,这个表格还是很简单的,不过我们可以用其他标签来修饰、美化它。限于篇幅,这里就不再赘述。
五、在页面中制表
用MARQUEE标签可以让你的主页动起来。该标签有许多属性,以下列举其中几种:
属性:决定文本的滚动方向,分为向左left和向右right,默认状态向左。
ltmarqueedirectionleftgt从右向左滚动lt/marqueegt
ltmarqueedirectionrightgt从左向右滚动lt/marqueegt
属性:指定文本的滚动方式,分为三种:
Scroll:从一端消失后,在另一端出现并继续滚动。
ltmarqueebehaviorscrollgt一圈一圈地滚动lt/marqueegt
Slide:从一端滚动,接触到另一端后停止
ltmarqueebehaviroslidegt只滚动一次就停止lt/marqueegt
Alternate:从一端滚动到另一端后,反向滚动。
ltmarqueebehavioralternategt来回滚动lt/marqueegt
六、页面中的滚动文本
我们上面看到的都是HTML语言的一些基本使用方法,这些常用的语法可以帮助你看懂别人网页的源代码,同时也方便你对自己的主页作些小的修改。以后当你上网冲浪时看到漂亮的页面,可以通过查看这个页面的源代码来分析其采用了什么技术,也许你一时看不懂,但看到那些由HTML基础语言编写的代码,你一定不会觉得陌生了。
注:查看网页源代码方法:用鼠标左键点击IE浏览器中的“查看”栏,再在下拉菜单中点击“源文件”,这时这个网页的所有源代码即可让你一览无余。
用SQL创建表限制年龄,怎么限制?
在Oracle数据库中,可以利用Create Table语句中嵌套子查询来实现基于已有的表或者视图来创建新表。这个功能可能对于大部分用户来说,不会感到陌生。但是在使用这个语句的过程中,需要遵循哪些限制条件呢?对于这一点,可能不少数据库管理员没有一个清晰的认识。
为此,笔者就在这里给大家总结一下,利用查询来创建表时需要遵守的一些限制。
限制条件一:不能够改变数据类型与长度。
在利用子查询来创建新表的时候,数据库管理员可以修改新表中列的名称,但是不能够修改列的数据类型和长度。新表中所有列的数据类型和长度必须与查询列一致。
如数据库管理员从一个员工信息表中获取员工姓名、员工出生日期等信息创建一个新表。如果在员工信息表中员工出生日期是一个日期型的字段,那么在新表中就必须也是日期型的数据类型。在创建新表的过程中,数据库管理员不能够修改数据类型。
那么如果系统管理员需要更改数据类型,如想把日期型的数据调整为字符型的数据,难道就没有其他办法了吗?其实,通过一些其他方法,这个需求仍然可以实现。
上面的限制条件说,新表中的数据类型必须与查询列中的数据类型相同,而不是说跟基表中的数据类型相同。为此如果数据库管理员想要把日期型的数据(基表中的数据类型)调整为字符型的数据类型(新表中的数据类型),那么只需要在查询语句中,利用日期字符转换函数,将日期型的数据转换为字符型的数据即可。
在创建新表时,数据类型是以查询列为准,而不是以基表中列的数据类型为准。所以通过在查询语句中使用数据类型转换函数,就可以改变新表中的数据类型。
限制条件二:不能够复制约束条件与列的默认值。
在基表中,可能某些字段有约束条件,如唯一性约束等等。
某些字段也可能设置了默认值,如系统的当前时间等等。但是,如果利用子查询来创建信标的话,那么这些字段的约束条件、默认值等等都不会在新表中体现出来。也就是说,这些内容需要数据库管理员在新表创建后手工重新建立。如果有需要的话,要对照基表的约束条件与默认值,分别在新表的字段中进行定义。
这个没有取巧的方法。至少到限制为止,笔者还没有找到可以利用其他方法来突破这个限制。为此数据库管理员在利用子查询来创建这个新表的时候,要特别注意这个约束条件。特别是默认值,不少管理员在利用这个方法创建新表后,会忘记重新设置相关列的默认值。
限制条件三:不能够为新表指定表空间。
在正常情况下,利用Create创建表的时候,数据库管理员可以为表指定其所属的表空间。如果不指定的话,则其默认情况下采用的是当前用户的默认表空间。但是在使用查询来创建新表的时候,在语句中不能够为新表指定表空间。如使用TableSpace关键字为其指定表空间的话,则系统会提示错误信息:SQL命令未正确结束。
注意这并不是说这个SQL语句哪里有问题,而是指不能够在这种方式下为新表指定表空间。从这里也可以看出,Oracle数据库系统的错误提示还是有模棱两可的地方,还需要改进,即错误信息要能够反映出真实的问题所在。因为不能够为新表指定表空间,此时其所属的表空间就是执行这条语句的用户的默认表空间。
那么数据库管理员就可以通过采用不同的用户来为新表指定所属的表空间。如现在数据库管理员要想把这个新表放置在sales表空间下。那么就可以新建一个用户或者利用原有的用户,先把这个用户的默认表空间设置为sales。然后再利用这个用户来执行这条语句(必要的时候可能需要调整这个用户的权限)。
通过这种方式就可以控制这种形式创建新表所属的表空间。俗话说,条条道路通罗马。既然不能够利用直接的方式来为这新表设定表空间,那么就只能够采取这曲线救国的方法了。只要最终能够达到预计的目的就好。
限制条件四:某些数据类型的数据不能够导入。
如果在查询结果中,带有大对象数据类型或者Long数据类型的数据,则这个语句就会执行不成功。
换句话说,如果采用子查询来创建新表,则在Select语句中就不能够包含大对象数据类型或者Long数据类型。这是Oracle数据库的一种强制性规定。如果确实需要这些数据的话,则可以采用其它的方式来解决。如先不导入这些类型的数据。先利用子查询把表建立起来。
等新表建立完成后。再利用Update关键字结合子查询来更新这些列的数据即可。虽然这么操作比较麻烦一点,但是总比不能够实现要好。
在使用这种方法创建新表时,除了要注意上面这些限制条件之外,最好再掌握下面这些技巧。这有助于提高通过查询来创建新表的利用价值。
技巧一:使用Nologging选项提高建表效率。
Nologging这个可选项相信大部分数据库管理员都知道其作用。但是到真的需要用到这个选项时,很多人就忘记了。这个选项主要是用来控制重做日志的。即在对数据库进行相关的操作时,是否需要日志文件中写入相关的记录。
因为日志文件是一把双刃剑。一方面王日志文件中记录所有的操作,有利于数据库的安全。当出现一些错误的操作时,可以通过恢复事务日志挽回损失。另一方面,由于数据库同时需要更新数据、更新事务日志信息,为此当对数据库进行大批量的操作时,就会降低这个操作的性能,延长时间。
通过查询来创建新表是也遇到了类似的问题。因为在利用子查询创建新表时,如果不采用这个选项的话,则在新表中每插入一条记录都将会产生重做日志信息,这会占用额外的空间与时间。如果插入的记录比较多的话,这会给数据库的正常运行带来很大的负面影响。在大部分情况下,笔者建议使用Nologging选项来节省创建新表的时间。
因为通过子查询来创建新表,基本上不会对基表的内容产生任何不利的影响。所以即使不用重做日志,也不会带来多大的风险。换句话话说,此时投入与产出不成正比。也就是说,此时牺牲性能,来换取所谓的安全,是不值得的。因为不影响其它表的数据,所以风险基本上就谈不上。
在这种情况下,采用Nologging选项,让数据库在创建记录的时候,不往事务日志中记录信息,以缩短创建新表的时间。笔者认为这是非常明智的做法。
技巧二:利用查询来创建表结构,不导入数据。
有时候我们需要复制表的结构,而不需要复制数据。在PL Developer开发工具中,可以直接复制某张表。
但是这么操作的话,除了会复制表的结构外,还会把相关的数据都复制过去。显然,这不符合我们的要求。而表中的纪录比较多的时候,这个复制作业就会占用比较长的时间与数据库服务器的资源,会给数据库的性能带来不利的影响。那么是否有方法,可以只复制表的结构,而不导入任何数据呢?
在谈这个解决方案之前,大家先来回顾一下Select语句。
在使用Select语句中,可以带Where条件语句。如果要查询的记录没有一条记录符合Where条件中规定的限制条件时,则在显示窗口,仍然会显示要查询的各个列的名称。但是不会显示任何一条记录。现在要复制表的结构,而不需要导入任何数据,就可以参考这种实现机制来完成。
其实要实现这个需求的话,数据库管理员就可以利用通过查询来创建新表的方法。如先利用Select语句将相关的列等结构查询出来,然后再在Where查询语句中,设置一些根本不存在的条件。如此的话,最终的新表中就只有表的结构,而没有任何基础表中的纪录。
可见,虽然通过子查询来创建新表是一项比较强大的功能,可以实现一些复杂的管理需求。但是在使用这个功能的时候,上面对这些限制条件数据库管理员要铭记在心。否则的话,很可能在使用这项功能的时候,四处碰壁或者最后竹篮子打水一场空。