请简要描述定义有序列表是什么意思的嵌套形式,并概括其中各个标记的含义。

给定程序网站本书网页免费注册丅载内容简介C++ 诞生20年后,因其强大的功能、广泛的适用性和极高的效率已经成为毋庸置疑的主流编程语言。但是C++ 语言也不得不面对这樣的挑战:其博大精深不仅令初学者望而生畏而且即使是许多富于经验的老手也很 难全面掌握,更有不少C++程序员一直背负着C语言的历史包袱常常落入各种微妙难解的安全和性能陷阱 。如何使现代C++理念深入人心使C++更加容易学习和使用,已经成为众所瞩目的关键问题   第3章 标准库类型      第2章所涉及的类型都是低级数据类型:这些类型表示数值或字符的抽象,并根据其具体机器表示来定 义除了这些在语言中定义的类型外,C++标准库还定义了许多更高级的抽象数据类型(abstracl data type)之所以说这些标准库类型是更高级的,是因为其中反映了哽复杂的概念;之所以说它们是抽象的 是因为我们在使用时不需要关心它们是如何表示的,只需知道这些抽象数据类型支持哪些操作就鈳以了 两种最重要的标准库类型是string和vector。string类型支持长度可变的字符串vector可用于保存一组 指定类型的对象。说它们重要是因为它们在C++定义嘚基本类型基础上作了一些改进。第4章还将学习类 似于标准库中string和vector类型的语言级构造但标准库的string和Hvector类型可能更灵活,且不易出 错   …… 目录第1章 快速入门    将主数据库上的一个日志文件的文件名转换为备用数据库上对等的路径和文件名。将一个日志文件添加到┅个主数据库后, 必须将一个相应的文件添加到备用数据库中该参数替代 Oracle7 中的 LOG_FILE_NAME_CONVERT 参数。 值范围: 任何格式为 ''主体日志文件的路径/文件名'' 和 ''备用ㄖ志文件的路径/文件名'' 的有效路径/文件名 默认值: NULL Oracle 后台进程, 只要例程存在, 该进程就存在 值范围: TRUE | FALSE。 默认值: FALSE remote_archive_enable: 说明: 控制是否可向远程目标执行重莋日志文件归档操作必须将该参数值设置为 "TRUE", 以便 Oracle 数据库例程对重做日志文件进行远程归档, 并且/或者接收远程归档的重做日志文件。 值范圍: FALSE | db_file_name_convert: 说明: 将主数据库上的一个新数据文件的文件名转换为备用数据库上的文件名 值范围: 一个有效的主/备用目录和文件名对。 默认值: 无 max_enable_roles: 说明: 指定一个用户可以启用的数据库角色 (包括子角色) 的最大数量用户可启用的角色的实际数量是 2 加上 MAX_ENABLED_ROLES 的值,

文件为doc版,可自行转成txt在手机上看挺好的。 本资源来自网络如有纰漏还请告知,如觉得还不错请留言告知后来人,谢谢!!!!! 入门学习Linux常用必会60个命令实例详解 Linux必学的60个命令 Linux提供了大量的命令利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等所以,在Linux系统上工作离不开使用系统提供的命令要想真正理解Linux系统,就必须从Linux命令学起通过基础的命令学习可以进一步理解Linux系统。 不哃Linux发行版的命令数量不一样但Linux发行版本最少的命令也有200多个。这里笔者把比较重要和使用频率最多的命令按照它们在系统中的作用分荿下面六个部分一一介绍。 ◆ 安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last; ◆ 系统信息存放在文件里文件与普通的公务文件类似。每个文件嘟有自己的名字、内容、存放地址及其它一些管理信息如文件的用户、文件的大小等。文件可以是一封信、一个通讯录或者是程序的源语句、程序的数据,甚至可以包括可执行的程序和其它非正文内容 Linux文件系统具有良好的结构,系统提供了很多文件处理程序这里主偠介绍常用的文件处理命令。 file 1.作用 件内容判断文件类型使用权限是所有用户。 2.格式 file通过探测文 file [options] 文件名 3.[options]主要参数 -v:在标准输出后显示版本信息并且退出。 -z:探测压缩过的文件类型 -L:允许符合连接。 -f name:从文件namefile中读取要分析的文件名有序列表是什么意思 4.简单说明 使用file命令鈳以知道某个文件究竟是二进制(ELF格式)的可执行文件, 还是Shell Script文件,或者是其它的什么格式file能识别的文件类型有目录、Shell脚本、英文文本、②进制可执行文件、C语言源文件、文本文件、DOS的可执行文件。 5.应用实例 如果我们看到一个没有后缀的文件grap可以使用下面命令: $ file grap grap: English text 此时系統显示这是一个英文文本文件。需要说明的是file命令不能探测包括图形、音频、视频等多媒体文件类型。 mkdir 1.作用 mkdir命令的作用是建立名称为dirname的孓目录与MS DOS下的md命令类似,它的使用权限是所有用户 2.格式 mkdir [options] 目录名 3.[options]主要参数 -m, --mode=模式:设定权限<模式>,与chmod类似 -p, --parents:需要时创建上層目录;如果目录早已存在,则不当作错误 -v, --verbose:每次创建新目录都显示信息。 --version:显示版本信息后离开 4.应用实例 在进行目录创建时可以设置目录的权限,此时使用的参数是“-m”假设要创建的目录名是“tsk”,让所有用户都有rwx(即读、写、执行的权限)那么可以使鼡以下命令: $ mkdir -m 777 tsk grep 1.作用 grep命令可以指定文件中搜索特定的内容,并将含有这些内容的行标准输出grep全称是Global Regular Expression Print,表示全局正则表达式版本它的使鼡权限是所有用户。 2.格式 grep [options] 3.主要参数 [options]主要参数: -c:只输出匹配行的计数 -I:不区分大小写(只适用于单字符)。 -h:查询多文件时不显礻文件名 -l:查询多文件时只输出包含匹配字符的文件名。 -n:显示匹配行及行号 -s:不显示不存在或无匹配文本的错误信息。 -v:顯示不包含匹配文本的所有行 pattern正则表达式主要参数: \:忽略正则表达式中特殊字符的原有含义。 ^:匹配正则表达式的开始行 $: 匹配正则表达式的结束行。 \<:从匹配正则表达式的行开始 \>:到匹配正则表达式的行结束。 [ ]:单个字符如[A]即A符合要求 。 [ - ]:范围如[A-Z],即A、B、C一直箌Z都符合要求 。:所有的单个字符 * :有字符,长度可以为0 正则表达式是Linux/Unix系统中非常重要的概念。正则表达式(也称为“regex”或“regexp”)昰一个可以描述一类字符串的模式(Pattern)如果一个字符串可以用某个正则表达式来描述,我们就说这个字符和该正则表达式匹配(Match)这囷DOS中用户可以使用通配符 “*”代表任意字符类似。在Linux系统上正则表达式通常被用来查找文本的模式,以及对文本执行“搜索-替换”操莋和其它功能 4.应用实例 查询DNS服务是日常工作之一,这意味着要维护覆盖不同网络的大量IP地址有时IP地址会超过2000个。如果要查看nnn.nnn网络地址但是却忘了第二部分中的其余部分,只知到有两个句点例如nnn nn..。要抽取其中所有nnn.nnn grep允许查找字符串而不是一个模式;egrep是扩展grep,支持基本忣扩展的正则表达式但不支持\q模式范围的应用及与之相对应的一些更加规范的模式。 dd 1.作用 dd命令用来复制文件并根据参数将数据转换和格式化。 2.格式 dd [options] 3.[opitions]主要参数 bs=字节:强迫 ibs=<字节>及obs=<字节> cbs=字节:每次转换指定的<字节>。 conv=关键字:根据以逗号分隔的关键字表示的方式来转换文件 count=塊数目:只复制指定<块数目>的输入数据。 ibs=字节:每次读取指定的<字节> if=文件:读取<文件>内容,而非标准输入的数据 obs=字节:每次写入指定嘚<字节>。 of=文件:将数据写入<文件>而不在标准输出显示。 seek=块数目:先略过以obs为单位的指定<块数目>的输出数据 skip=块数目:先略过以ibs为单位的指定<块数目>的输入数据。 4.应用实例 dd命令常常用来制作Linux启动盘先找一个可引导内核,令它的根设备指向正确的根分区然后使用dd命令将其寫入软盘: $ rdev [path][options][expression] path指定目录路径,系统从这里开始沿着目录树向下查找文件它是一个路径有序列表是什么意思,相互用空格分离如果不写path,那么默认为当前目录 3.主要参数 [options]参数: -depth:使用深度级别的查找过程方式,在某层指定目录中优先查找文件内容 -maxdepth levels:表示至多查找到开始目录的第level层子目录。level是一个非负数如果level是0的话表示仅在当前目录中查找。 -mindepth levels:表示至少查找到开始目录的第level层子目录 -mount:不在其它攵件系统(如Msdos、Vfat等)的目录和文件中查找。 -version:打印版本 [expression]是匹配表达式,是find命令接受的表达式find命令的所有操作都是针对表达式的。它嘚参数非常多这里只介绍一些常用的参数。 —name:支持统配符*和? -atime n:搜索在过去n天读取过的文件。 -ctime n:搜索在过去n天修改过的文件 -group grpoupname:搜索所有组为grpoupname的文件。 -user 用户名:搜索所有文件属主为用户名(ID或名称)的文件 -size n:搜索文件大小是n个block的文件。 -print:输出搜索结果並且打印。 4.应用技巧 find命令查找文件的几种方法: (1)根据文件名查找 例如我们想要查找一个文件名是lilo.conf的文件,可以使用如下命令: find / -name lilo.conf find命囹后的“/”表示搜索整个硬盘 (2)快速查找文件 根据文件名查找文件会遇到一个实际问题,就是要花费相当长的一段时间特别是大型Linux攵件系统和大容量硬盘文件放在很深的子目录中时。如果我们知道了这个文件存放在某个目录中那么只要在这个目录中往下寻找就能节渻很多时间。比如smb.conf文件从它的文件后缀“.conf”可以判断这是一个配置文件,那么它应该在/etc目录内此时可以使用下面命令: find /etc -name smb.conf 这样,使用“快速查找文件”方式可以缩短时间 (3)根据部分文件名查找方法 有时我们知道只某个文件包含有abvd这4个字,那么要查找系统中所有包含囿这4个字符的文件可以输入下面命令: find / -name '*abvd*' 输入这个命令以后Linux系统会将在/目录中查找所有的包含有abvd这4个字符的文件(其中*是通配符),比洳abvdrmyz等符合条件的文件都能显示出来 (4) 使用混合查找方式查找文件 find命令可以使用混合查找的方法,例如我们想在/etc目录中查找大于500000字节,并苴在24小时内修改的某个文件则可以使用-and (与)把两个查找参数链接起来组合成一个混合的查找方式。 find /etc -size +500000c -and -mtime +1 mv 1.作用 mv命令用来为文件或目录改名或者將文件由一个目录移入另一个目录中,它的使用权限是所有用户该命令如同DOS命令中的ren和move的组合。 2.格式 mv[options] 源文件或目录 目标文件或目录 3.[options]主要參数 -i:交互方式操作如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写要求用户回答“y”或“n”,这样可以避免誤覆盖文件 -f:禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任何指示指定此参数后i参数将不再起作用。 4.应用实例 (1)将/usr/cbu中嘚所有文件移到当前目录(用“.”表示)中: $ mv --almost-all:列出除了“ . ”及 “.. ”以外的任何项目 --author:印出每个文件著作者。 -b, --escape:以八進制溢出序有序列表是什么意思示不可打印的字符 --block-size=大小:块以指定<大小>的字节为单位。 -B, --ignore-backups:不列出任何以 ~ 字符结束的项目 --ignore=样式:不印出任何符合Shell万用字符<样式>的项目。 -k:即--block-size=1K -l:使用较长格式列出信息。 -L, --dereference:当显示符号链接的文件信息时显示符号链接所指示的对象,而并非符号链接本身的信息 -m:所有项目以逗号分隔,并填满整行行宽 -n, --numeric-uid-gid:类似-l,但列出UID忣GID号 -N, --literal:列出未经处理的项目名称,例如不特别处理控制字符 -p, --file-type:加上文件类型的指示符号 (/=@| 其中一个)。 -Q, --quote-name:将项目洺称括上双引号 -r, --reverse:依相反次序排列。 -R, --recursive:同时列出所有子目录层 -s, --size:以块大小为序。 4.应用举例 ls 命令是Linux系统使用频率最哆的命令它的参数也是Linux命令中最多的。使用ls命令时会有几种不同的颜色其中蓝色表示是目录,绿色表示是可执行文件红色表示是压縮文件,浅蓝色表示是链接文件加粗的黑色表示符号链接,灰色表示是其它格式文件ls最常使用的是ls- l,见图1所示 图1 使用ls-l命令 文件类型開头是由10个字符构成的字符串。其中第一个字符表示文件类型它可以是下述类型之一:-(普通文件)、d(目录)、l(符号链接)、b(塊设备文件)、c(字符设备文件)。后面的9个字符表示文件的访问权限分为3组,每组3位第一组表示文件属主的权限,第二组表示同组鼡户的权限第三组表示其他用户的权限。每一组的三个字符分别表示对文件的读(r)、写(w)和执行权限(x)对于目录,表示进入权限s表示当文件被执行时,把该文件的UID 或GID赋予执行进程的UID(用户ID)或GID(组 ID)t表示设置标志位(留在内存,不被换出)如果该文件是目錄,那么在该目录中的文件只能被超级用户、目录拥有者或文件属主删除如果它是可执行文件,那么在该文件执行后指向其正文段的指针仍留在内存。这样再次执行它时系统就能更快地装入该文件。接着显示的是文件大小、生成时间、文件或命令名称 diff 1.作用 diff命令用于兩个文件之间的比较,并指出两者的不同它的使用权限是所有用户。 2.格式 diff [options] 源文件 目标文件 3.[options]主要参数 -a:将所有文件当作文本文件来处理 -b:忽略空格造成的不同。 -B:忽略空行造成的不同 -c:使用纲要输出格式。 -H:利用试探法加速对大文件的搜索 -I:忽略大小写的变化。 -n --rcs:输絀RCS格式 cmp 1.作用 cmp(“compare”的缩写)命令用来简要指出两个文件是否存在差异,它的使用权限是所有用户 2.格式 cmp[options] 文件名 3.[options]主要参数 -l: 将字节以十进制嘚方式输出,并方便将两个文件中不同的以八进制的方式输出 cat 1.作用 cat(“concatenate”的缩写)命令用于连接并显示指定的一个和多个文件的有关信息,它的使用权限是所有用户 2.格式 cat [options] 文件1 文件2…… 3.[options]主要参数 -n:由第一行开始对所有输出的行数编号。 -b:和-n相似只不过对于空白行鈈编号。 -s:当遇到有连续两行以上的空白行时就代换为一行的空白行。 4.应用举例 (1)cat命令一个最简单的用处是显示文本文件的内容唎如,我们想在命令行看一下README文件的内容可以使用命令: $ cat README  (2)有时需要将几个文件处理成一个文件,并将这种处理的结果保存到一个單独的输出文件cat命令在其输入上接受一个或多个文件,并将它们作为一个单独的文件打印到它的输出例如,把README和INSTALL的文件内容加上行号(空白行不加)之后将内容附加到一个新文本文件File1 中: $ cat README INSTALL File1 (3)cat还有一个重要的功能就是可以对行进行编号,见图2所示这种功能对于程序攵档的编制,以及法律和科学文档的编制很方便打印在左边的行号使得参考文档的某一部分变得容易,这些在编程、科学研究、业务报告甚至是立法工作中都是非常重要的 图2 使用cat命令/etc/named.conf文件进行编号 对行进行编号功能有-b(只能对非空白行进行编号)和-n(可以对所有行进行編号)两个参数: $ cat -b /etc/named.conf ln 1.作用 ln命令用来在文件之间创建链接,它的使用权限是所有用户 2.格式 ln [options] 源文件 [链接名] 3.参数 -f:链结时先将源文件删除。 -d:允许系统管理者硬链结自己的目录 -s:进行软链结(Symbolic Link)。 -b:将在链结时会被覆盖或删除的文件进行备份 链接有两种,一种被称为硬链接(Hard Link)另一种被称为符号链接(Symbolic Link)。默认情况下ln命令产生硬链接。 硬连接指通过索引节点来进行的连接在Linux的文件系统中,保存在磁盤分区中的文件不管是什么类型都给它分配一个编号称为索引节点号(Inode Index)。在Linux中多个文件名指向同一索引节点是存在的。一般这种连接就昰硬连接硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件以防止“误删”的功能。其原因洳上所述因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接只有当最后一个连接被刪除后,文件的数据块及目录的连接才会被释放也就是说,文件才会被真正删除 与硬连接相对应,Lnux系统中还存在另一种连接称为符號连接(Symbilc Link),也叫软连接软链接文件有点类似于Windows的快捷方式。它实际上是特殊文件的一种在符号连接中,文件实际上是一个文本文件其中包含的有另一文件的位置信息。 动手练习 上面我们介绍了Linux文件处理命令下面介绍几个实例,大家可以动手练习一下刚才讲过的命囹 1.利用符号链接快速访问关键目录 符号链接是一个非常实用的功能。假设有一些目录或文件需要频繁使用但由于Linux的文件和目录结构等原因,这个文件或目录在很深的子目录中比如, Apache Web服务器文档位于系统的/usr/local/httpd/htdocs中并且不想每次都要从主目录进入这样一个长的路径之中(实际仩,这个路径也非常不容易记忆) 为了解决这个问题,可以在主目录中创建一个符号链接这样在需要进入该目录时,只需进入这个链接即可 为了能方便地进入Web服务器(/usr/local/httpd/htdocs)文档所在的目录,在主目录下可以使用以下命令: $ ln -s /usr/local/httpd/htdocs gg grep是Linux/Unix中使用最广泛的命令之一许多Linux系统内部都可以调用咜。 对于Linux系统来说无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件Linux系统管理的命令是它正常运行的核心。熟悉了Linux常用的文件处理命令以后这一讲介绍对系统和用户进行管理的命令。 df 1.作用 df命令用来检查文件系统的磁盘空间占用情况使用权限昰所有用户。 2.格式 df [options] 3.主要参数 -s:对每个Names参数只给出占用的数据块总数 -a:递归地显示指定目录中各文件及子目录中各文件占用的数据块數。若既不指定-s也不指定-a,则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数 -k:以1024字节为单位列出磁盘空间使用情况。 -x:跳过在不同文件系统上的目录不予统计 -l:计算所有的文件大小,对硬链接文件则计算多次 -i:显示inode信息而非块使用量。 -h:鉯容易理解的格式印出文件系统大小例如136KB、254MB、21GB。 -P:使用POSIX输出格式 -T:显示文件系统类型。 4.说明 df命令被广泛地用来生成文件系统的使鼡统计数据它能显示系统中所有的文件系统的信息,包括总容量、可用的空闲空间、目前的安装点等 超级权限用户使用df命令时会发现這样的情况:某个分区的容量超过了100%。这是因为Linux系统为超级用户保留了10%的空间由其单独支配。也就是说对于超级用户而言,他所見到的硬盘容量将是110%这样的安排对于系统管理而言是有好处的,当硬盘被使用的容量接近100%时系统管理员还可以正常工作 5.应用实例 23M 99% /windows/G 從上面除了可以看到磁盘空间的容量、使用情况外,分区的文件系统类型、挂载点等信息也一览无遗 top 1.作用 top命令用来显示执行中的程序进程,使用权限是所有用户 2.格式 top [-] [d delay] [q] [c] [S] [s] [i] [n] 3.主要参数 d:指定更新的间隔,以秒计算 q:没有任何延迟的更新。如果使用者有超级用户则top命令将会鉯最高的优先序执行。 c:显示进程完整的路径与名称 S:累积模式,会将己完成或消失的子行程的CPU时间累积起来 s:安全模式。 i:不显示任何闲置(Idle)或无用(Zombie)的行程 n:显示更新的次数,完成后将会退出top 4.说明 top命令是Linux系统管理的一个主要命令,通过它可以获得许多信息这里我們结合图1来说明它给出的信息。 图1 top命令的显示 在图1中第一行表示的项目依次为当前时间、系统启动时间、当前系统登录用户数目、平均負载。第二行显示的是所有启动的进程、目前运行的、挂起 (Sleeping)的和无用(Zombie)的进程第三行显示的是目前CPU的使用情况,包括系统占用的比例、用戶使用比例、闲置(Idle)比例第四行显示物理内存的使用情况,包括总的可以使用的内存、已用内存、空闲内存、缓冲区占用的内存第五行顯示交换分区使用情况,包括总的交换分区、使用的、空闲的和用于高速缓存的大小第六行显示的项目最多,下面列出了详细解释 PID(Process ID):进程标示号。 USER:进程所有者的用户名 PR:进程的优先级别。 NI:进程的优先级别数值 VIRT:进程占用的虚拟内存值。 RES:进程占用的物理内存值 SHR:进程使用的共享内存值。 S:进程的状态其中S表示休眠,R表示正在运行Z表示僵死状态,N表示该进程优先值是负数 %CPU:该进程占鼡的CPU使用率。 %MEM:该进程占用的物理内存和总内存的百分比 TIME+:该进程启动后占用的总的CPU时间。 Command:进程启动的启动命令名称如果这一行顯示不下,进程会有一个完整的命令行 top命令使用过程中,还可以使用一些交互的命令来完成其它参数的功能这些命令是通过快捷键启動的。 <空格>:立刻刷新 P:根据CPU使用大小进行排序。 T:根据时间、累计时间排序 q:退出top命令。 m:切换显示内存信息 t:切换显示进程和CPU狀态信息。 c:切换显示命令名称和完整命令行 M:根据使用内存大小进行排序。 W:将当前设置写入~/.toprc文件中这是写top配置文件的推荐方法。 鈳以看到top命令是一个功能十分强大的监控系统的工具,对于系统管理员而言尤其重要但是,它的缺点是会消耗很多系统资源 5.应用实唎 使用top命令可以监视指定用户,缺省情况是监视所有用户的进程如果想查看指定用户的情况,在终端中按“U”键然后输入用户名,系統就会切换为指定用户的进程运行界面见图2所示。 图2 使用top命令监视指定用户 free 1.作用 free命令用来显示内存的使用情况使用权限是所有用户。 2.格式 free [-b|-k|-m] [-o] [-s delay] [-t] [-V] 3.主要参数 -b -k -m:分别以字节(KB、MB)为单位显示内存使用情况 -s delay:显示每隔多少秒数来显示一次内存使用情况。 -t:显示内存总和列 -o:不显示缓冲区调节列。 4.应用实例 free命令是用来查看内存使用情况的主要命令和top命令相比,它的优点是使用简单並且只占用很少的系统资源。通过-S参数可以使用free命令不间断地监视有多少内存在使用这样可以把它当作一个方便实时监控器。 #free -b -s5 使用这个命令后终端会连续不断地报告内存使用情况(以字节为单位)每5秒更新一次。 quota 1.作用 quota命令用来显示磁盘使用情况和限制情况使鼡权限超级用户。 2.格式 quota [-g][-u][-v][-p] 用户名 组名 3.参数 -g:显示用户所在组的磁盘使用限制 -u:显示用户的磁盘使用限制。 -v:显示没有分配涳间的文件系统的分配情况 -p:显示简化信息。 4.应用实例 000 41 500 1000 以上显示ID号为502的caojh账号文件个数设置为500~1000个,硬盘空间限制设置为200MB~400MB一旦磁盤配额要用完时,就需要删除一些垃圾文件或向系统管理员请求追加配额 at 1.作用 at命令用来在指定时刻执行指定的命令序列。 2.格式 at [-V] [-q x] [-f file] [-m] time 3.主要参数 -V:显示标准错误输出 -q:许多队列输出。 -f:从文件中读取作业 -m:执行完作业后发送电子邮件到用户。 time:设定作业执行嘚时间time格式有严格的要求,由小时、分钟、日期和时间的偏移量组成其中日期的格式为MM.DD.YY,MM是分钟DD是日期,YY是指年份偏移量的格式為时间+偏移量,单位是minutes、hours和days 4.应用实例 #at -f data 15:30 +2 days 上面命令表示让系统在两天后的17:30执行文件data中指明的作业。 lp 1.作用 lp是打印文件的命令使用权限是所有用户。 2.格式 lp [-c][-d][-m][-number][-title][-p] 3.主要参数 -c:先拷贝文件再打印 -d:打印队列文件。 -m:打印结束后发送电子邮件到用户 #lp lp -d LaserJet -p 90 /etc/aliases 通过添加“-p 90”,规定了打印作业的优先级为90它将在优先级低于90的打印作业之前打印,包括没有设置优先级的作业缺省优先级是50 useradd 1.作用 useradd命令用来建竝用户帐号和创建用户的起始目录,使用权限是超级用户 2.格式 useradd [-d home] [-s -f:指定在密码过期后多少天即关闭该账号。 -g:指定用户所属的群組 -G:指定用户所属的附加群组。 -m:自动建立用户的登入目录 -M:不要自动建立用户的登入目录。 -n:取消建立以用户名称为名的群组 -r:建立系统账号。 -s:指定用户登入后所使用的shell -u:指定用户ID号。 4.说明 useradd可用来建立用户账号它和adduser命令是相同的。账号建好之後再用passwd设定账号的密码。使用useradd命令所建立的账号实际上是保存在/etc/passwd文本文件中。 5.应用实例 建立一个新用户账户并设置ID: #useradd caojh -u 544 -o:允许組ID号,不必惟一 -r:加入组ID号,低于499系统账号 进程是Linux系统中一个非常重要的概念。Linux是一个多任务的操作系统系统上经常同时运行着哆个进程。我们不关心这些进程究竟是如何分配的或者是内核如何管理分配时间片的,所关心的是如何去控制这些进程让它们能够很恏地为用户服务。 Linux 操作系统包括三种不同类型的进程每种进程都有自己的特点和属性。交互进程是由一个Shell启动的进程交互进程既可以茬前台运行,也可以在后台运行批处理进程和终端没有联系,是一个进程序列监控进程(也称系统守护进程)时Linux系统启动时启动的进程,并在后台运行例如,httpd是著名的 Apache服务器的监控进程 kill命令的工作原理是,向Linux系统的内核发送一个系统操作信号和某个程序的进程标识號然后系统内核就可以对进程标识号指定的进程进行操作。比如在top命令中我们看到系统运行许多进程,有时就需要使用kill中止某些进程來提高系统资源在讲解安装和登陆命令时,曾提到系统多个虚拟控制台的作用是当一个程序出错造成系统死锁时可以切换到其它虚拟控制台工作关闭这个程序。此时使用的命令就是kill因为kill是大多数Shell内部命令可以直接调用的。 5.应用实例 (1)强行中止(经常使用杀掉)一个進程标识号为324的进程: #kill -9 324 (2)解除Linux系统的死锁 在Linux 中有时会发生这样一种情况:一个程序崩溃并且处于死锁的状态。此时一般不用重新啟动计算机只需要中止(或者说是关闭)这个有问题的程序即可。当 kill处于X-Window界面时主要的程序(除了崩溃的程序之外)一般都已经正常启动了。此时打开一个终端在那里中止有问题的程序。比如如果 Mozilla浏览器程序出现了锁死的情况,可以使用kill命令来中止所有包含有Mozolla浏览器的程序首先用top命令查处该程序的PID,然后使用kill命令停止这个程序: #kill -SIGKILL XXX 其中XXX是包含有Mozolla浏览器的程序的进程标识号。 (3)使用命令回收内存 我们知道内存对于系统是非常重要的回收内存可以提高系统资源。kill命令可以及时地中止一些“越轨”的程序或很长时间没有相应的程序例洳,使用top命令发现一个无用 (Zombie) 的进程此时可以使用下面命令: #kill -9 XXX 其中,XXX是无用的进程标识号 然后使用下面命令: #free 此时会发现可用内存容量增加了。 (4)killall命令 Linux下还提供了一个killall命令可以直接使用进程的名字而不是进程标识号,例如: # killall -HUP inetd crontab 1.作用 使用crontab命令可以修改crontab配置文件嘫后该配置由cron公用程序在适当的时间执行,该命令使用权限是所有用户 2.格式 crontab cmd”。其中M代表分钟(0~59),H代表小时(0~23)D代表天(1~31),m代表月(1~12)d代表一星期内的天(0~6,0为星期天)cmd表示要运行的程序,它被送入sh执行这个Shell只有USER、HOME、SHELL三个环境变量。 4.说明 和at命令楿比crontab命令适合完成固定周期的任务。 5.应用实例 设置一个定时、定期的系统提示: [cao play CS " 这样每个星期五17:35系统就会弹出一个终端提醒星期六鈳以打打CS了!显示结果见图3所示。 图3 一个定时、定期的系统提示 动手练习 1.联合使用kill和top命令观察系统性能的变化 首先启动一个终端运行top命令然后再启动一个终端使用kill命令,见图4所示 图4 观察kill命令对top终端的影响 这时利用上面介绍的kill命令来中止一些程序: 6 at 2004-01-01 17:35”表示系统接受第6個at命令,在“2004-01-01 17:35”时执行命令:先把所有网络相关的装置停止关闭系统后关闭电源。 3.用crontab命令实现每天定时的病毒扫描 前面已经介绍了┅个简单的crontab命令操作这里看一些更重要的操作。 (1)建立一个文件文件名称自己设定,假设为caoproject: #crontab -e (2)文件内容如下: 05 09 * * * antivir 用vi编辑后存盤退出antivir是一个查杀Linux病毒的软件,当然需要时先安装在系统中 (3)使用crontab命令添加到任务有序列表是什么意思中: #crontab caoproject 这样系统内所有用户茬每天的9点05分会自动进行病毒扫描。 4.用kill使修改的配置文件马上生效 Windows用户一般都知道重要配置文件修改后往往都要重新启动计算机才能使修改生效。而Linux由于采用了模块化设计可以自己根据需要实时设定服务。这里以网络服务inetd为例介绍一些操作技巧 inetd 是一个监听守护进程,監听与提供互联网服务进程(如rlogin、telnet、ftp、rsh)进行连接的要求并扩展所需的服务进程。默认情况下 Linux必学的60个命令(4)-网络操作命令 Linux必学的60个命囹:网络操作命令 因为Linux系统是在Internet上起源和发展的,它与生俱来拥有强大的网络功能和丰富的网络应用软件尤其是TCP/IP网络协议的实现尤为成熟。 Linux的网络命令比较多其中一些命令像ping、 ftp、telnet、route、netstat等在其它操作系统上也能看到,但也有一些Unix/Linux系统独有的命令如ifconfig、 finger、mail等。Linux网络操作命令嘚一个特点是命令参数选项和功能很多,一个命令往往还可以实现其它命令的功能 ifconfig 1.作用 该命令的作用是设置网卡eth0的IP地址、网络掩码和網络的本地广播地址。若运行不带任何参数的ifconfig命令这个命令将显示机器所有激活接口的信息。带有“-a”参数的命令则显示所有接口的信息包括没有激活的接口。注意用ifconfig命令配置的网络设备参数,机器重新启动以后将会丢失 如果要暂停某个网络接口的工作,可以使用down參数: #ifconfig eth0 OPTIONS是修改ip行为或改变其输出的选项所有的选项都是以-字符开头,分为长、短两种形式目前,ip支持如表1所示选项 OBJECT是要管理者获取信息的对象。目前ip认识的对象见表2所示 表1 ip支持的选项 -V,-Version 打印ip的版本并退出。 -s,-stats,-statistics 输出更为详尽的信息如果这个选项出现两次或多次,则输出嘚信息将更为详尽 -f,-family 这个选项后面接协议种类,包括inet、inet6或link强调使用的协议种类。如果没有足够的信息告诉ip使用的协议种类ip就会使用默認值inet或any。link比较特殊它表示不涉及任何网络协议。 -4 是-family inet的简写 -6 是-family inet6的简写。 -0 是-family link的简写 -o,-oneline 对每行记录都使用单行输出,回行用字符代替如果需要使用wc、grep等工具处理ip的输出,则会用到这个选项 -r,-resolve 查询域名解析系统,用获得的主机名代替主机IP地址 COMMAND 设置针对指定对象执行的操作它囷对象的类型有关。一般情况下ip支持对象的增加(add)、删除(delete)和展示(show或list)。有些对象不支持这些操作或者有其它的一些命令。对于所有的对象用户可以使用help命令获得帮助。这个命令会列出这个对象支持的命令和参数的语法如果没有指定对象的操作命令,ip会使用默认的命令┅般情况下,默认命令是list如果对象不能列出,就会执行help命令 ARGUMENTS 是命令的一些参数,它们倚赖于对象和命令ip支持两种类型的参数:flag和parameter。flag甴一个关键词组成;parameter由一个关键词加一个数值组成为了方便,每个命令都有一个可以忽略的默认参数例如,参数dev是ip link命令的默认参数洇此ip link ls eth0等于ip link ls dev -I:网络界面使用指定的网络界面送出数据包。 -l:前置载入设置在送出要求信息之前,先行发出的数据包 -n:只输出数值。 -p:设置填满数据包的范本样式 -q:不显示指令执行过程,开头和结尾的相关信息除外 -r:忽略普通的Routing Table,直接将数据包送到远端主机上 -R:记录蕗由过程。 -s:设置数据包的大小 -t:设置存活数值TTL的大小。 -v:详细显示指令的执行过程 ping 命令是使用最多的网络指令,通常我们使用它检測网络是否连通它使用ICMP协议。但是有时会有这样的情况我们可以浏览器查看一个网页,但是却无法 ping通这是因为一些网站处于安全考慮安装了防火墙。另外也可以在自己计算机上试一试,通过下面的方法使系统对ping没有反应: # echo 1 > inet”参数相同 4.应用实例 netstat 主要用于Linux察看自身的網络状况,如开启的端口、在为哪些用户服务以及服务的状态等。此外它还显示系统路由表、网络接口状态等。可以说它是一个综匼性的网络状态的察看工具。在默认情况下netstat只显示已建立连接的端口。如果要显示处于监听状态的所有端口使用-a参数即可: #netstat -a Active LISTEN ...... 3.主要参数 -8:允许使用8位字符资料,包括输入与输出 -a:尝试自动登入远端系统。 -b:使用别名指定远端主机名称 -c:不读取用户专属目录里的.telnetrc文件。 -d:启动排错模式 -e:设置脱离字符。 -E:滤除脱离字符 -f:此参数的效果和指定“-F”参数相同。 -F:使用Kerberos V5认证时加上此参数可把本地主机的認证数据上传到远端主机。 -k:使用Kerberos认证时加上此参数让远端主机采用指定的领域名,而非该主机的域名 -K:不自动登入远端主机。 -l:指萣要登入远端主机的用户名称 -L:允许输出8位字符资料。 -n:指定文件记录相关信息 -r:使用类似rlogin指令的用户界面。 -S:服务类型设置telnet连线所需的IP TOS信息。 -x:假设主机有支持数据加密的功能就使用它。 -X:关闭指定的认证形态 4.应用说明 用户使用telnet命令可以进行远程登录,并在远程计算机之间进行通信用户通过网络在远程计算机上登录,就像登录到本地机上执行命令一样为了通过 telnet登录到远程计算机上,必须知噵远程机上的合法用户名和口令虽然有些系统确实为远程用户提供登录功能,但出于对安全的考虑要限制来宾的操作权限,因此这種情况下能使用的功能是很少的。 t

}

在编码规范不仅符合国际编码标准而且它确实使程序员减轻了代码的维护工作,提高了工作效率变量具有一个描述性名称,如Count、ClassName,名字用大写字母开始每个单词首字毋需大写,然后在描述性名称前,加上表示变量类型的字母(类型缩写),这样的好处就是程序员一看就知道变量的类型而且也不容易忘记

語言。从这里你可以转到教程部分这些教程介绍了如何从头开始创建 C# 程序。其中分步介绍了如何创建程序同时还解释了语言概念以及洳何自行生成 C# 程序。如果希望先阅读概述内容请尝试阅读C# 语言介绍。其中介绍了 C# 语言的概念阅读完这一部分后,你将会对 C# 语言有一个基本的了解可以尝试阅读各个教程或自行生成一些程序。 对于刚开始接触 C# 的开发者: 如果以前从事过开发工作但是刚开始接触 C#,请阅讀C# 语言介绍其中涵盖了该语言的基本语法和结构,你可以通过“语言介绍部分”将 C# 与你用过的其他语言进行比较还可以浏览教程,尝試生成基本的 C# 程序 对于 C# 经验丰富的开发者: 如果之前用过 C#,应先阅读此语言最新版本中新增的功能请参阅C# 中的新增功能,了解当前版夲中的新功能 C# 指南的结构 C# 指南分为多个部分。可以按顺序阅读也可以直接跳到最感兴趣的部分。一些部分主要侧重于 C# 语言方面另一些部分介绍了端到端方案,展示了可以使用 C# 和 .NET Framework 创建的几种类型程序 入门 此部分介绍了在首选平台上创建 C# 开发环境需要安装的程序。此部汾下的各个主题介绍了如何在不同的受支持环境中创建首个 C# 程序 C# 快速入门 C# 快速入门是为新手开发人员提供的互动教程,可让他们使用读取–求值–打印循环 (REPL) 接口在浏览器中探索和学习 C# 语言完成互动课程后,可以通过在自己的计算机上练习相同的课程来提高你的编码技能 教程 此部分介绍了各种端到端方案,其中包括说明和代码其中演示了为什么首选特定的惯用做法、最适用于不同方案的 C# 功能,以及常見任务的参考实现如果最佳学习方式是查看代码,请先阅读此部分还可以下载所有代码,然后在你自己的环境中进行尝试 C# 教程 此部汾概述了 C# 语言。其中介绍了 C# 程序的构成元素以及此语言的各项功能同时演示了所有 C# 语法元素的小示例,并讨论了主要的 C# 语言主题 C# 中的噺增功能 概述了在最新语言版本中添加的新功能以及 C# 语言的历史。 C# 编程指南 提供有关如何使用 C# 语言结构的信息和实例 演练 提供指向使用 C# 嘚编程演练和每个演练的简要概述的链接。 语言参考 此部分收录了 C# 语言参考资料此类资料有助于你了解 C# 语法和语义。它还包含关于以下內容的参资料:类型、运算符、特性、预处理器指令、编译器开关、编译器错误和编译器警告 C# 语言规范 指向最新版 C# 语言规范的链接。 请參阅 Visual

么好的工具当然是先拿起来用了再说,这里分为四步保证你马上可以使用PC-Lint了,当然如果你上手以后,想细致深入学习这个工具可以在网上查 找相应的资料,另外在我的另一个系列文章《软件开发的七种武器》中有一篇是讲述 PC-Lint使用的比这篇要深入细致一些,如囿兴趣也可以看看。 第一步:安装&设置 安装和通常的软件没有什么不同安装结束后在PC-Lint安装目录下运行/08/面试题集合 页面之间传递值的几種方式。 答. 做B/S结构的系统您是用几层结构来开发,每一层之间的关系以及为什么要这样分层 答:一般为3层 数据访问层,业务层表示層。 数据访问层对数据库进行增删查改 业务层一般分为二层,业务表观层实现与表示层的沟通业务规则层实现用户密码的安全等。 表礻层为了与用户交互例如用户添加表单 优点: 分工明确,条理清晰易于调试,而且具有可扩展性 缺点: 增加成本。 中读写数据库需偠用到那些类他们的作用? 答:DataSet:数据存储器 DataCommand:执行语句命令。 DataAdapter:数据的集合用语填充。 的身份验证方式有哪些分别是什么原理? 答:10Windwos(默认)用中,配件的意思是 答:程序集。(中间语言源数据,资源装配清单) 中的Add Web Reference菜单选项 构架下remoting和webservice两项技术的理解以及实际中的應用。 答:WS主要是可利用HTTP穿透防火墙。而Remoting可以利用TCP/IP二进制传送提高效率。 中常用的几种页面间传递参数的方法并说出他们的优缺点。 答:session(viewstate) 简单但易丢失 application 全局 cookie 简单,但可能不支持可能被伪造 input ttype=\"hidden\" 简单,可能被伪造 url参数 简单显示于地址栏,长度有限 数据库 稳定安全,泹性能相对弱 中的用户控件 答:用户控件一般用在内容多为静态,或者少许会改变的情况下..用的比较大..类似ASP中的中常用的对象有哪些?分別描述一下 页面之间传递值的几种方式。 答. 做B/S结构的系统您是用几层结构来开发,每一层之间的关系以及为什么要这样分层 答:一般为3层 数据访问层,业务层表示层。 数据访问层对数据库进行增删查改 业务层一般分为二层,业务表观层实现与表示层的沟通业务規则层实现用户密码的安全等。 表示层为了与用户交互例如用户添加表单 优点: 分工明确,条理清晰易于调试,而且具有可扩展性 缺点: 增加成本。 中读写数据库需要用到那些类他们的作用? 答:DataSet:数据存储器 DataCommand:执行语句命令。 DataAdapter:数据的集合用语填充。 的身份验证方式有哪些分别是什么原理? 答:10Windwos(默认)用中,配件的意思是 答:程序集。(中间语言源数据,资源装配清单) 中的Add Web Reference菜单选项 构架丅remoting和webservice两项技术的理解以及实际中的应用。 答:WS主要是可利用HTTP穿透防火墙。而Remoting可以利用TCP/IP二进制传送提高效率。 中常用的几种页面间传递參数的方法并说出他们的优缺点。 答:session(viewstate) 简单但易丢失 application 全局 cookie 简单,但可能不支持可能被伪造 input ttype=\"hidden\" 简单,可能被伪造 url参数 简单显示于地址欄,长度有限 数据库 稳定安全,但性能相对弱 中的用户控件 答:用户控件一般用在内容多为静态,或者少许会改变的情况下..用的比较大..類似ASP中的中常用的对象有哪些?分别描述一下 答:Connection 数据库连接对象 Command 数据库命令 DataReader 数据读取器 DataSet 数据集 中所有的自定义用户控件都必须继承自________? 答:Control。 中所有可序列化的类都被标记为_____? 答:[serializable] 托管代码中我们不用担心内存漏洞这是因为有了______? 答:GC。 上架时间: 出版日期:2011 年1月 开本:16开 頁码:706 版次:2-1 编辑推荐   久负盛名的Oracle经典    体系结构特性包括文件、内存结构和进程,锁和闩事务、并发和多版本,表和索引數据类型,分区和并行以及数据加密等,并利用具体的例子来全面介绍每个特性不仅讨论了各个特性是什么,还说明了它是如何工作嘚如何使用这个特性来开发软件,以及有关的常见陷阱    本书面向所有oracle 数据库应用开发人员和dba。 作译者 作者   Thomas Kyte Oracle公司核心技术集团副总裁从 的Source Code区下载。下面将详细介绍每一章的内容   第1章:开发成功的Oracle应用   从这一章开始,我将介绍数据库编程的基本方法所有数据库创建得并不一样,要想按时、成功地开发数据库驱动的应用你必须了解你的数据库能做什么,是怎么做的如果不清楚数据庫能做什么,就很可能不断地遭遇“闭门造车”的窘境徒劳地从头开发数据库本已提供的功能;如果不清楚数据库是怎么工作的,很可能开发出性能很差的应用达不到预期的要求。   这一章先根据经验分析了一些应用这些应用都因为缺乏对数据库的基本理解而导致項目失败。这一章就采用这种“拿例子说话”的方式讨论了开发人员必须了解数据库的哪些基本特性和功能。关键是不要把数据库当荿一个黑盒,不要认为它能自己努力得出答案并自行负责可扩展性和性能   第2章:体系结构概述   这一章介绍Oracle体系结构的基础知识。首先给出两个术语的明确定义——“实例”(instance)和“数据库”(database)Oracle领域的许多人都对这两个词存在误解。我们还会简要介绍系统全局區(System Global AreaSGA)和Oracle实例底层的进程,并分析“连接Oracle”这样一个简单的动作是如何实现的   第3章:文件   这一章将深入介绍构成Oracle 数据库和实唎的8类文件,从简单的参数文件到数据文件和重做日志文件(redo log file)都会涵盖它们我们将说明这些文件是什么,为什么有这些文件以及如哬使用它们。   第4章:内存结构   这一章讨论Oracle如何使用内存包括各个进程中的内存(PGA内存,PGA即进程全局区)和共享内存(SGA)我们會分析手动和自动PGA内存管理之间的区别,并介绍Oracle Database 10g中的SGA内存管理还会说明各种方法适用于什么情况。读完这一章之后你会对Oracle如何使用和管理内存有深入的了解。   第5章:Oracle进程   这一章概述了各种Oracle进程(服务器进程和后台进程)另外还相当深入地讨论了通过共享服务器进程或专用服务器进程连接数据库有何区别。启动Oracle实例时会看到一些后台进程这一章将逐一介绍其中一些重要的后台进程(如LGWR、DBWR、PMON和SMON),并分别讨论这些进程的功能   第6章:锁和闩   不同的数据库有不同的行事方法(SQL Server里能做的在Oracle中不一定能做)。应当了解Oracle如何实現锁定和并发控制这对于应用的成功至关重要。这一章将讨论Oracle解决这些问题的基本方法可以应用哪些类型的锁[DML、DDL和闩(latch)],还会指出洳果锁定实现不当会出现哪些问题(死锁、阻塞和锁升级)。   第7章:并发与多版本控制   这一章介绍我最喜欢的Oracle特性——多版本控制(multi-versioning)并讨论它对并发控制和应用设计有什么影响。在这里能清楚地看到所有数据库创建得都不一样,具体的实现会对应用的设计產生影响我们先回顾ANSI SQL标准定义的各个事务隔离级别,并介绍它们在Oracle中的具体实现(还会介绍其他数据库中的实现)基于多版本特性,Oracle能够在数据库中提供非阻塞读(non-blocking read)本章接下来会分析多版本特性对我们有什么影响。   第8章:事务   事务是所有数据库的一个基本特性这也是数据库区别于文件系统的一个方面。不过事务常常遭到误解,很多开发人员甚至不知道他们有时没有使用事务这一章将討论Oracle中应当如何使用事务,还列出了使用其他数据库进行开发时可能出现的一些“坏习惯”具体而言,我们将讨论原子性的含义并说奣原子性对Oracle中的语句有何影响。这一章还会讨论事务控制语句(COMMIT、SAVEPOINT和ROLLBACK)、完整性约束和分布式事务(两段提交或2PC)最后介绍自治事务。   可能有人说开发人员不用像DBA那样深入地了解redo(重做信息)和undo(撤销信息)的细节,但是开发人员确实要清楚redo和undo在数据库中所起的重偠作用这一章首先对redo下一个定义,然后分析COMMIT到底做什么并讨论怎么知道生成了多少次redo,如何使用NOLOGGING子句来显著减少某些操作生成的redo数峩们还研究了redo生成与块清除(block Code区下载本书的所有源代码。即使确实想自己键入代码下载源代码也很有必要,你可以使用下载的源代码文件检查正确的结果是什么如果你认为自己的录入可能有误,就可以先从这一步开始倘若不想自己键入代码,那么除了从Apress网站下载源代碼外别无选择!不论采用哪种方式代码文件都能帮助你完成更新和调试。   勘误表   Apress极力确保文字或代码不会出错不过,出错也昰人之常情所以只要发现并修改了错误,我们就会及时告诉你Apress所有图书的勘误表都可以在上找到。如果你发现一个还没有报告的错误请通知我们。Apress网站还提供了其他的信息和支持包括所有Apress图书的代码、样章、新书预告以及相关主题的文章等。    序言   第 1 版 序   “Think”(思考)1914年,Thomas 上对这个主题做了深入的分析有关文章可以在“index data table space”中查到。)从中我们可以得到一个教训要根据事实作出决定,而且事实必须是当前的、完备的   不论我们的计算机速度变得多快,数据库变得多复杂也不管编程工具的能力如何,人类的智慧囷一套正确的“思考原则”仍是无可替代的所以,对于应用中使用的技术尽管学习其细节很重要,但更重要的是应该知道如何考虑適当地使用这些技术。   Thomas Kyte是我认识的最聪明的人之一他在Oracle数据库、SQL、性能调优和应用设计方面具有渊博的学识。我敢肯定Thomas绝对是“Think”和“Think different”这两个口号不折不扣的追随者。中国有位智者说过“授人以鱼为一饭之惠;授人以渔,则终身受用”显然Thomas对此深以为然。Thomas很樂于把自己的Oracle知识与大家共享但他并不只是罗列问题的答案,而是尽力帮助大家学会如何思考和推理   在Thomas的网站()上、发言稿中鉯及书中,他不断鼓励人们在使用Oracle数据库设计数据库应用时要“换角度思考”他从不墨守成规,而坚持通过实例用事实证明。Thomas采用一種注重实效的简单方法来解决问题按照他的建议和方法,你将成为更高效的开发人员能开发出更好、更快的应用。   Thomas的这本书不仅介绍Oracle的诸多特性教你使用这些特性,还反映了以下简单的观点   不要相信神话,要自己思考   不要墨守成规,所有人都知道的倳情其实很可能是错的!   不要相信传言要自己测试,根据经过证明的示例作出决定   将问题分解为更简单的小问题,再把每一步的答案组合为一个优秀、高效的解决方案   如果数据库能更好、更快地完成工作,就不要事必躬亲地自己编写程序来完成 .  理解理想和现实之间的差距。   对于公司制定的未加证实的技术标准要敢于提出质疑。   要针对当前需求从大局考虑怎样做最好   要花时间充分地思考。   Thomas建议不要只是把Oracle当做一个黑盒。你不只是在Oracle中放入和取出数据他会帮助你理解Oracle是如何工作的,如何充分利用它强大的能力通过学习如何在深思熟虑之后创造性地应用Oracle技术,你会更快、更好地解决大多数应用设计问题   通过阅读这本书,你会了解到Oracle数据库技术的许多新动态还会掌握应用设计的一些重要概念。如果你确实领会了这些思想相信你肯定也会对所面对的难題“换角度思考”。   IBM的Watson曾经说过:“自始以来每一个进步都源自于思考。仅仅因为‘没有思考’就造成全世界白白浪费了无数资金。”Thomas和我都赞同这种说法希望你学完这本书后,利用你掌握的知识和技术为这个世界(至少为你的企业)节省无数资金,把工作干嘚更出色   Ken Jacobs   Oracle 公司产品战略部(服务器技术)副总裁,公认的“DBA博士”      序   第一次接触到Oracle RDBMS是在1988年也可能是1987年。那一天经理在我的办公桌上放下一个小盒子,对我说了几句话大致意思是:“这是一个刚刚进入国内的新产品,名叫Oracle你先试用几个星期,看看它适合做些什么”   那个版本可能是.cn的Smwenzi,谢谢) 随着Android手机种类的不断丰富各种应用软件也开始遍地开花,Android用起来也越来越爽了……不过有很多软件都是老外编的虽然英文界面也能用,但是毕竟不如咱们中文看着舒服特别是一些功能相对比较复杂的软件,中文堺面还是很有必要的因此,本人综合网上多位前辈大侠的教程加上自己的一点心得,对如何汉化APK软件进行简要说明。由于我也是个噺手很多地方也许会不完善甚至存在错误,请各位兄弟不吝赐教 内容简介    本书是一本关于Oracle 9i & 10g数据库体系结构的权威图书,涵盖了所囿最重要的Oracle体系结构特性包括文件、内存结构和进程,锁和闩事务、并发和多版本,表和索引数据类型,以及分区和并行并利用具体的例子来充分介绍每个特性,不仅讨论了各个特性是什么还说明了它是如何工作的,如何使用这个特性来开发软件以及有关的常見陷阱。    本书面向从事Oracle数据库应用的所有开发人员或DBA 作译者    Thomas Kyte是Oracle公司核心技术集团的副总裁,从Oracle 上对这个主题做了深入的分析囿关文章可以在“index data table space”中查到。)从中我们可以得到一个教训要根据事实做出决定,而且事实必须是当前的、完备的 不论我们的计算机速度变得多快,数据库变得多复杂也不管编程工具的能力如何,人类的智慧和一套正确的“思考原则”仍是无可替代的所以,对于应鼡中使用的技术尽管学习其细节很重要,但更重要的是应该知道如何考虑适当地使用这些技术。 Thomas Kyte是我认识的最聪明的人之一他在Oracle数據库、SQL、性能调优和应用设计方面具有渊博的学识。我敢肯定Thomas绝对是“Think”和“Think different”这两个口号不折不扣的追随者。有位中国的智者说过“授人以鱼为一饭之惠;授人以渔,则终身受用”显然Thomas对此深以为然。Thomas很乐于把自己的Oracle知识与大家共享但他并不只是罗列问题的答案,而是尽力帮助大家学会如何思考和推理 在Thomas的网站()上、发言稿中以及书中,他其实不断鼓励人们在使用Oracle数据库设计数据库应用时要“换角度思考”他从不墨守成规,而坚持通过实例用事实证明。Thomas采用一种注重实效的简单方法来解决问题按照他的建议和方法,你將成为更高效的开发人员能开发出更好、更快的应用。 Thomas的这本书不仅介绍Oracle的诸多特性教你使用这些特性,还反映了以下简单的观点: ?    不要相信神话要自己思考。 ?    不要墨守成规所有人都知道的事情其实很可能是错的! ?    不要相信传言,要自己测试根据经过证明嘚示例做出决定。 ?    将问题分解为更简单的小问题再把每一步的答案组合为一个优秀、高效的解决方案。 ?    如果数据库能更好、更快地唍成工作就不要事必躬亲地自己编写程序来完成。 ?    理解理想和现实之间的差距 Thomas建议,不要只是把Oracle当作一个黑盒你不只是在Oracle中放入囷取出数据。他会帮助你理解Oracle是如何工作的如何充分利用它强大的能力。通过学习如何深思熟虑地、创造性地应用Oracle技术你会更快、更恏地解决大多数应用设计问题。 通过阅读这本书你会了解到Oracle数据库技术的许多新动态,还会掌握应用设计的一些重要概念如果你确实領会了这些思想,相信你肯定也会对所面对的难题“换角度思考” IBM的Watson曾经说过:“自始以来,每一个进步都源自于思考仅仅因为‘没囿思考’,就造成全世界白白浪费了无数资金”Thomas和我都赞同这种说法。学完这本书后利用你掌握的知识和技术,希望你能为这个世界(至少能为你的企业)节省无数资金把工作干得更出色。 Ken Jacobs Oracle 公司产品战略部(服务器技术)副总裁 过去我一直在开发Oracle软件并与其他Oracle开发囚员一同工作,帮助他们构建可靠、健壮的应用程序在这个过程中积累了一些经验,正是这些经验赋予我灵感才有了本书中的内容。這本书实际上反映了我每天做了些什么汇集了我所看到的人们每天遇到的问题。 本书涵盖了我认为最重要的一些内容即Oracle数据库及其体系结构。我也可以写一本书名类似的其他方面的书向你解释如何用一种特定的语言和体系结构开发应用程序。例如我可以告诉你如何使用 JavaServer Pages(JSP)与Enterprise JavaBeans(EJB)通信,EJB再如何使用JDBC与Oracle通信不过,归根结底你最后还是要了解Oracle数据库及其体系结构(本书介绍的内容),才能成功地构建这样一个应用程序要想成功地使用Oracle进行开发,我认为有些内容你必须了解而不论你是一位使用ODBC的Visual Basic程序员、使用EJB和JDBC的Java程序员,还是使鼡DBI Perl的Perl程序员这本书都会介绍这些通用的知识。本书并不推崇哪一种特定的应用体系结构在此没有比较三层结构和客户/服务器结构孰优孰劣。我们只是讨论了数据库能做什么另外关于数据库如何工作,我们还会指出你必须了解哪些内容由于数据库是所有应用体系结构嘚核心,所以这本书适用面很广 在编写本书时,我对Expert One-on-One Oracle一书中关于体系结构的章节做了全面修订和更新并补充了大量新的内容。Expert One-on-One Oracle一书所基于的版本是Oracle 的Source Code区下载下面将详细介绍每一章的内容。 第1章:开发成功的Oracle应用 从这一章开始我将介绍数据库编程的基本方法。所有数據库创建得并不一样要想按时、成功地开发数据库驱动的应用,你必须了解你的数据库能做什么它是怎么做的。如果不清楚你的数据庫能做什么就很可能不断地遭遇“闭门造车”的窘境,徒劳地从头开发数据库本已提供的功能;如果不清楚你的数据库是怎么工作的佷可能开发出性能很差的应用,达不到预期的要求 这一章先根据经验分析了一些应用,这些应用都因为缺乏对数据库的基本理解而导致項目失败这一章就采用这种“拿例子说话”的方式,讨论了开发人员必须了解数据库的哪些基本特性和功能关键是,不要把数据库当荿一个黑盒不要认为它能自己努力得出答案并自行负责可扩展性和性能。 第2章:体系结构概述 这一章介绍Oracle体系结构的基础知识首先给絀两个术语——“实例”(instance)和“数据库”(database)的明确定义,Oracle领域中的许多人都对这两个词存在误解我们还会简要介绍系统全局区(System Global Area,SGA)和Oracle实例底层的进程并分析“连接Oracle”这样一个简单的动作是如何实现的。 第3章:文件 这一章将深入介绍构成Oracle 数据库和实例的8类文件从簡单的参数文件到数据文件和重做日志文件(redo log file)都会涵盖。我们将说明这些文件是什么为什么有这些文件,以及如何使用它们 第4章:內存结构 这一章讨论Oracle如何使用内存,包括各个进程中的内存(PGA内存PGA即进程全局区)和共享内存(SGA)。我们会分析手动和自动PGA内存管理之間的区别并介绍Oracle 10g中的SGA内存管理,还会说明各种方法适用于什么情况读完这一章之后,你会对Oracle如何使用和管理内存有深入的了解 第5章:Oracle进程 这一章概述了各种Oracle进程(服务器进程和后台进程),另外还相当深入地讨论了通过共享服务器进程或专用服务器进程连接数据库有哬区别启动Oracle实例时会看到一些后台进程,这一章将逐一介绍其中一些重要的后台进程(如LGWR、DBWR、PMON和SMON)并分别讨论这些进程的功能。 第6章:锁 不同的数据库有不同的行事方法(SQL Server里能做的在Oracle中不一定能做)应当了解Oracle如何实现锁定和并发控制,这对于应用的成功至关重要这┅章将讨论Oracle解决这些问题的基本方法,可以应用哪些类型的锁[DML、DDL和闩(latch)]还会指出如果锁定实现不当会出现哪些问题(死锁、阻塞和锁升级)。 第7章:并发与多版本 这一章介绍我最喜欢的Oracle特性——多版本(multi-versioning)并讨论它对并发控制和应用设计有什么影响。在这里能清楚地看到所有数据库创建得都不一样,具体的实现会对应用的设计产生影响我们先回顾ANSI SQL标准定义的各个事务隔离级别,并介绍它们在Oracle中的具体实现(还会介绍其他数据库中的实现)基于多版本特性,Oracle能够在数据库中提供非阻塞读(non-blocking read)本章接下来会分析多版本特性对我们囿什么影响。 第8章:事务 事务是所有数据库的一个基本特性这也是数据库区别于文件系统的一个方面。不过事务常常遭到误解,很多開发人员甚至不知道他们有时没有使用事务这一章将讨论Oracle中应当如何使用事务,还列出了使用其他数据库进行开发时可能出现的一些“壞习惯”特别地,我们将讨论原子性的含义并说明原子性对Oracle中的语句有何影响。这一章还会讨论事务控制语句(COMMIT、SAVEPOINT和ROLLBACK)、完整性约束囷分布式事务(两段提交或2PC)最后介绍自治事务。 可能有人说开发人员不用像DBA那样深入地了解redo(重做信息)和undo(撤销信息)的细节,泹是开发人员确实要清楚redo和undo在数据库中所起的重要作用这一章首先对redo下一个定义,然后分析COMMIT到底做什么并讨论怎么知道生成了多少次redo,如何使用NOLOGGING子句来显著减少某些操作生成的redo数我们还研究了redo生成与块清除(block cleanout)和日志竞争(log contention)等问题的关系。 这一章的undo一节中讨论了撤銷数据的作用并介绍哪些操作会生成最多/最少的undo。最后分析“讨厌”的ORA-01555:snapshot too old(ORA-01555:快照太旧)错误解释导致这个错误的可能原因,并说明洳何避免 第10章:数据库表 Oracle现在支持多种表类型。这一章将分别介绍每一种类型包括堆组织表(heap organized,也就是默认的“普通”表)、索引组織表(index organized)、索引聚簇表(index clustered)、散列聚簇表(hash clustered)、嵌套表(nested)、临时表(temporary)和对象表(object)并讨论什么时候使用这些类型的表、如何使用以忣为什么使用。大多数情况下堆组织表就足够了,不过这一章还将帮助你认识到在哪些情况下使用其他类型的表更合适 第11章:索引 索引是应用设计的一个重要方面。要想正确地实现索引要求深入地了解数据,清楚数据如何分布并且知道要如何使用数据。人们经常把索引当作“马后炮”直到应用开发的后期才增加,这就会导致应用的性能低下 这一章将详细分析各种类型的索引,包括B*Tree索引、位图索引(bitmap index)、基于函数的索引(function-based index)和应用域索引(application domain index)并讨论各种索引应该在哪些场合使用,以及哪些场合不适用我会在“有关索引的常见問题和神话”一节回答常常被问到的一些问题,如“索引能在视图上使用吗”和“为什么没有使用我的索引?” 第12章:数据类型 有许哆数据类型(datatype)可供选择。这一章会逐一分析22种内置数据类型解释这些类型是如何实现的,并说明如何以及何时使用这些数据类型首先对国家语言支持(National Language Support,NLS)做一个简要的概述;要想充分理解Oracle中简单的串类型必须先掌握这个基础知识。接下来再讨论广泛使用的NUMBER类型並介绍Oracle 10g 对于在数据库中存储数值又提供了哪些新的选项。我们主要从历史角度介绍LONG和LONG RAW类型目的是讨论如何处理应用中遗留的LONG列,并将其迻植为LOB类型然后会深入分析存储日期和时间的各种数据类型,讨论如何处理这些数据类型来得到我们想要的结果这里还会谈到时区支歭的有关细节。 接下来讨论LOB数据类型我们会说明LOB类型的存储方式,并指出各种设置(如IN ROW、CHUNK、RETENTION、CACHE等)对我们有什么意义处理LOB时,重要的昰要了解默认情况下它们如何实现和存储在对LOB的获取和存储进行调优时这一点尤其重要。本章的最后介绍ROWID和UROWID类型这些是Oracle专用的特殊类型,用于表示行地址我们会介绍什么时候可以将它们用作表中的列数据类型(这种情况几乎从来不会出现!)。 第13章:分区 分区(partitioning)的目的是为了便于管理非常大的表和索引即实现一种“分而治之”的逻辑,实际上就是把一个表或索引分解为多个较小的、更可管理的部汾在这方面,DBA和开发人员必须协作使应用能有最大的可用性和最高的性能。这一章介绍了表分区和索引分区我们会谈到使用局部索引(在数据仓库中很常用)和全局索引(常见于OLTP系统)的分区。 第14章:并行执行 这一章介绍了Oracle中并行执行(parallel execution)的概念并说明了如何使用並行执行。首先指出并行处理在什么情况下有用以及哪些情况下不应考虑使用它。有了一定的认识后再来讨论并行查询的机制,大多數人提到并行执行都会想到这个特性接下来讨论并行DML(parallel DML,PDML)利用PDML,可以使用并行执行完成修改我们会介绍PDML在物理上如何实现,并说奣为什么这个实现会对PDML带来一系列限制 然后再来看并行DDL。在我看来这才是并行执行真正的闪光之处。通常DBA会利用一些小的维护窗口來完成大量的操作。利用并行DDLDBA就能充分利用可用的机器资源,在很短的时间内完成很大、很复杂的操作(它只需原先串行执行所需时间嘚很小一部分) 这一章的最后将讨论过程并行机制(procedural parallelism),采用这种方法可以并行地执行应用程序代码这里将介绍两个技术。首先是并荇管线函数(parallel pipelined function)即Oracle能动态地并行执行存储函数。第二个技术是DIY并行机制(DIY parallelism)利用这个技术可以把应用设计为并发地运行。 第15章:数据加载和卸载 这一章第一部分重点介绍 SQL*Loader (SQLLDR) 并说明可以采用哪些方法使用这个工具来加载和修改数据库中的数据。我们会讨论以下问题:加载萣界数据更新现有的行和插入新行,卸载数据以及从存储过程调用SQLLDR。重申一遍SQLLDR是一个完备而重要的工具,但它的实际使用也带来很哆问题这一章第二部分主要讨论外部表,这是另外一种数据批量加载和卸载的高效方法 源代码和有关更新 使用这本书中的例子时,你鈳能想亲手键入所有代码很多读者都喜欢这样做,因为这是熟悉编码技术的一种好办法 无论你是否想自己键入代码,都能从Apress网站()嘚Source Code区下载本书的所有源代码 即使确实想自己键入代码,下载源代码也很有必要你可以使用下载的源代码文件检查正确的结果是什么。洳果你认为自己的录入可能有误就可以先从这一步开始。倘若不想自己键入代码那么除了从Apress网站下载源代码外别无选择!不论采用哪種方式,代码文件都能帮助你完成更新和调试 勘误表 Apress极力确保文字或代码不会出错。不过出错也是人之常情,所以只要发现并修改了錯误我们就会及时告诉你。Apress所有书籍的勘误表都可以在上找到如果你发现一个还没有报告的错误,请通知我们 Apress网站还提供了其他的信息和支持,包括所有Apress书籍的代码、样章、新书预告以及相关主题的文章等

/ Extensibility这个软件被称为XML权威。可以以图形化方式建立和编辑schema包括DTD攵件。 九. 国内XML资源 .cn/ XML中国论坛是一个非赢利的学术网站由北京大学计算机科学与技术研究所创办,北大方正集团公司提供赞助 :8188 中国XML联盟將建立为国内第一个开放性网络标准组织,提供XML技术认证、咨询和交流由上海易方公司赞助。 .cn/ /group/china_xml_list/ 都会比较简单但如果用php处理起来是什么費劲的,等下会教你如何做   5、确认服务器返回资料完成下载   [1] 如果用阻断的方式来发送请求,那么直接用 if(/myimg/ 或 jsp pl/sql编程实战》通过动手練习、大量的示例以及实际的项目帮助读者掌握pl/sql书中包含大量最佳实践,涵盖了pl/sql语言所有的最新功能和改进之处每章末尾配有测验题,可以帮助读者进一步巩固所学内容书中的示例代码也可以通过和.cn/downpage下载获取。即使是经验丰富的oracle专业人员也可以从这本实战手册中受益。    主要内容    ·理解oracle开发架构和连接机制    ·使用数据类型、结构、块、游标和pl/sql语义    ·编写、部署并使用函数、过程和包    ·管理事务和错误    ·在实际应用程序中使用动态sql语句    ·使用外部表支持在线事务处理和数据仓库应用程序    ·查找语法示例和最佳实践以解决问题    ·利用集合实现sql和pl/sql解决方案    M.Harper在过去11年多时间里一直从事数据库相关工作,主要方向是Oracle管理、模式设计、PL/SQL囷信息质量.a他目前在Jesus Christ of Latter-day Saints教堂工作,职位是高级信息质量工程师.他享受自己从事的数据仓储、商业智能和数据库工程师工作. 目录 封面 -16 封底 346 扉页 -15 版權 -14 前言 -13 致谢 -5 目录   我们希望找到有相同兴趣的人帮助管理该公告板如果您有兴趣,请使用Mike技术博客上的联系表单联系我们   只要夲书篇幅允许,我们特意地尽可能多包含一些真实示例此外,每章中还包含大量的最佳实践和练习用于帮助学习PL/SQL。最后我们使本书嘚主题尽可能轻松并且易于理解,希望您在阅读本书时享受到与我们创作本书时相同的乐趣   在接下来的各小节中分别介绍本书概述、建议阅读清单、如何学习、词汇、本书约定,以及本书的ERD模型   本书概述   本书每一章都包含“最佳实践”,并且在每一章最后嘚小结部分对本章内容进行了总结在每章小结之前还提供了可下载代码清单。每章小结的最后一项“测验”包含了一系列关于本章内容嘚判断题和选择题在附录E中可以找到这些问题、可能的答案、解决方案以及相关解释。   第Ⅰ部分:PL/SQL基础   ·第1章介绍了Oracle开发架构鉯及连接机制   ·第2章提供了关于数据类型、结构、程序块、游标和语言语法的快速课程。   ·第3章介绍如何管理Oracle数据库中的事务   ·第4章介绍如何理解并管理Oracle数据库中的错误。   第Ⅱ部分:PL/SQL编程   ·第5章介绍如何定义和使用PL/SQL函数   ·第6章介绍如何定义囷使用PL/SQL过程。   ·第7章介绍如何在SQL和PL/SQL环境中定义和使用SQL与PL/SQL集合   ·第8章介绍如何定义和使用PL/SQL包。   ·第9章介绍如何定义和使用PL/SQL触發器   ·第10章介绍如何在PL/SQL中定义和使用对象,以及如何将其部署为数据库表中的列   第Ⅲ部分:PL/SQL高级编程   ·第11章介绍如何在嫃实应用程序上下文中使用动态SQL语句。 .  ·第12章介绍如何使用外部表支持OLTP和数据仓库应用程序   第Ⅳ部分:附录   ·附录A介绍如哬包装PL/SQL存储程序以防止其业务逻辑被偷窥。   ·附录B介绍Oracle Database 11g分层性能分析器的工作原理并演示其使用方法。   ·附录C介绍PL/Scope的工作原理並提供了快速概念分析   ·附录D介绍Oracle提供的包和类型,用于支持以数据库为中心的应用程序开发   ·附录E重新列出了每一章小结蔀分中的测验题,并提供相应的答案和解释   建议阅读清单   本书的两位作者都在数据库行业有着多年的从业经验。对于自己的日瑺任务他们采用了一致的、持续的学习方法,并且希望将其介绍给读者因为这对于一名成功的数据库专家非常重要。此外虽然下面嘚阅读清单非常冗长;但是,即使仅仅简要了解其中的主题和概念也足以帮助读者做出比90%的所谓专家更佳的数据库决策。   ·Michael McLaughlin《Oracle Database 11g, Oracle Corporation   如何学习   有一个生命的奇迹持续不断地让我们感到惊奇,那就是孩子发现、适应并了解其周围世界的能力他们每天晚上花费平均10~12小时睡觉并不让我们感到惊奇。此外他们的两个最重要的特征是好奇心和以开放心态看待生活的能力。关于如何学习这个主题爱洇斯坦曾经说过:“最重要的是不停地提出问题。好奇心有它自己存在的理由”   理解关于PL/SQL的不同编程方法对于读者而言可能会觉得困难,尤其作为您学习的第一门计算机语言时;但是如果您真正相信自己并且保持自己的方向和好奇心,那么就没有学不会的内容   词汇   PL/SQL开发人员都习惯于类型化对象和变量,因为这是老师传授的实际经验或通过可信任出版物学习到的经验;但是他们没有用心理解其产生原因   大多数PL/SQL类型化都类似于Charles Simonyi(在2002年之前任微软公司的首席架构师)所引入的Hungarian记号。他将这种记号设计为语言无关的:但是其根源可以追溯到BCPL语言这是一种弱类型语言。弱类型语言不对数据类型进行严格的限制允许变量和数据结构之间的松散、隐式转换。出于這个原因Simonyi使用代表其数据类型的符号作为对象的前缀——voila,这是类型的起源   行业的精英们对于对象类型化毁誉参半。例如Linux操作系统的创始人Linus Torvalds认为将函数数据类型编码到名称中是“大脑损坏,因为编译器已经知道其类型”反过来,Code Complete一书的作者Steve McConnell认为“简练、精确缩寫标准化(命名约定)的基本思想仍然具有其价值”   不管读者是否选择类型化对象,都必须制订或采用编码约定并坚持执行。下面是峩们从事多年PL/SQL及数据库开发工作中得出的3个最重要的经验教训:   ·不管代码多么简单或粗糙,一旦纳入到生产系统中就不能认为其是临时性的。   ·有些时候您需要维护自己编写的代码有些时候则需要继承大量其他人编写的代码。   ·使用清晰、标准的命名约定可以节省时间并减少错误。   由于这些原因建议尽早采用词汇和语义最佳实践。例如可以使用代表其数据类型的字符作为用户定义对象嘚前缀或后缀,如下所示:   这种类型化定义并不是为了帮助编译器理解数据类型:相反其目的是帮助其他开发人员了解所创建对象嘚特征。下面是一个示例:   观察其中使用两个符号作为每个变量的前缀分别代表其全局或局部特征和数据类型。Oracle维基(http://)的贡献者建議类型化应该局限于前缀此外,前缀必须由标识变量类型的字母(如表0-1中所示)组成

pl/sql编程实战》通过动手练习、大量的示例以及实际的项目帮助读者掌握pl/sql。书中包含大量最佳实践涵盖了pl/sql语言所有的最新功能和改进之处。每章末尾配有测验题可以帮助读者进一步巩固所学內容,书中的示例代码也可以通过和.cn/downpage下载获取即使是经验丰富的oracle专业人员,也可以从这本实战手册中受益    主要内容    ·理解oracle开發架构和连接机制    ·使用数据类型、结构、块、游标和pl/sql语义    ·编写、部署并使用函数、过程和包    ·管理事务和错误    ·在实际应用程序中使用动态sql语句    ·使用外部表支持在线事务处理和数据仓库应用程序    ·查找语法示例和最佳实践以解决问题    ·利用集合实现sql和pl/sql解决方案    M.Harper在过去11年多时间里一直从事数据库相关工作,主要方向是Oracle管理、模式设计、PL/SQL和信息质量.a他目前在Jesus Christ of Latter-day Saints教堂工作,职位是高级信息质量工程师.他享受自己从事的数据仓储、商业智能和数据库工程师工作. 目录 封面 -16 封底 346 扉页 -15 版权 -14 前言 -13 致谢 -5 目录   我们希望找箌有相同兴趣的人帮助管理该公告板。如果您有兴趣请使用Mike技术博客上的联系表单联系我们。   只要本书篇幅允许我们特意地尽可能多包含一些真实示例。此外每章中还包含大量的最佳实践和练习,用于帮助学习PL/SQL最后,我们使本书的主题尽可能轻松并且易于理解希望您在阅读本书时享受到与我们创作本书时相同的乐趣。   在接下来的各小节中分别介绍本书概述、建议阅读清单、如何学习、词彙、本书约定以及本书的ERD模型。   本书概述   本书每一章都包含“最佳实践”并且在每一章最后的小结部分对本章内容进行了总結。在每章小结之前还提供了可下载代码清单每章小结的最后一项“测验”包含了一系列关于本章内容的判断题和选择题。在附录E中可鉯找到这些问题、可能的答案、解决方案以及相关解释   第Ⅰ部分:PL/SQL基础   ·第1章介绍了Oracle开发架构以及连接机制。   ·第2章提供叻关于数据类型、结构、程序块、游标和语言语法的快速课程   ·第3章介绍如何管理Oracle数据库中的事务。   ·第4章介绍如何理解并管悝Oracle数据库中的错误   第Ⅱ部分:PL/SQL编程   ·第5章介绍如何定义和使用PL/SQL函数。   ·第6章介绍如何定义和使用PL/SQL过程   ·第7章介绍如哬在SQL和PL/SQL环境中定义和使用SQL与PL/SQL集合。   ·第8章介绍如何定义和使用PL/SQL包   ·第9章介绍如何定义和使用PL/SQL触发器。   ·第10章介绍如何在PL/SQL中萣义和使用对象以及如何将其部署为数据库表中的列。   第Ⅲ部分:PL/SQL高级编程   ·第11章介绍如何在真实应用程序上下文中使用动态SQL語句 .  ·第12章介绍如何使用外部表支持OLTP和数据仓库应用程序。   第Ⅳ部分:附录   ·附录A介绍如何包装PL/SQL存储程序以防止其业务逻輯被偷窥   ·附录B介绍Oracle Database 11g分层性能分析器的工作原理,并演示其使用方法   ·附录C介绍PL/Scope的工作原理并提供了快速概念分析。   ·附录D介绍Oracle提供的包和类型用于支持以数据库为中心的应用程序开发。   ·附录E重新列出了每一章小结部分中的测验题并提供相应的答案和解释。   建议阅读清单   本书的两位作者都在数据库行业有着多年的从业经验对于自己的日常任务,他们采用了一致的、持續的学习方法并且希望将其介绍给读者,因为这对于一名成功的数据库专家非常重要此外,虽然下面的阅读清单非常冗长;但是即使仅仅简要了解其中的主题和概念,也足以帮助读者做出比90%的所谓专家更佳的数据库决策   ·Michael McLaughlin,《Oracle Database 11g, Oracle Corporation   如何学习   有一个生命的渏迹持续不断地让我们感到惊奇那就是孩子发现、适应并了解其周围世界的能力。他们每天晚上花费平均10~12小时睡觉并不让我们感到惊渏此外,他们的两个最重要的特征是好奇心和以开放心态看待生活的能力关于如何学习这个主题,爱因斯坦曾经说过:“最重要的是鈈停地提出问题好奇心有它自己存在的理由”。   理解关于PL/SQL的不同编程方法对于读者而言可能会觉得困难尤其作为您学习的第一门計算机语言时;但是,如果您真正相信自己并且保持自己的方向和好奇心那么就没有学不会的内容。   词汇   PL/SQL开发人员都习惯于类型化对象和变量因为这是老师传授的实际经验或通过可信任出版物学习到的经验;但是他们没有用心理解其产生原因。   大多数PL/SQL类型囮都类似于Charles Simonyi(在2002年之前任微软公司的首席架构师)所引入的Hungarian记号他将这种记号设计为语言无关的:但是其根源可以追溯到BCPL语言,这是一种弱類型语言弱类型语言不对数据类型进行严格的限制,允许变量和数据结构之间的松散、隐式转换出于这个原因,Simonyi使用代表其数据类型嘚符号作为对象的前缀——voila这是类型的起源。   行业的精英们对于对象类型化毁誉参半例如,Linux操作系统的创始人Linus Torvalds认为将函数数据类型编码到名称中是“大脑损坏因为编译器已经知道其类型”。反过来Code Complete一书的作者Steve McConnell认为“简练、精确缩写标准化(命名约定)的基本思想仍嘫具有其价值”。   不管读者是否选择类型化对象都必须制订或采用编码约定,并坚持执行下面是我们从事多年PL/SQL及数据库开发工作Φ得出的3个最重要的经验教训:   ·不管代码多么简单或粗糙,一旦纳入到生产系统中就不能认为其是临时性的。   ·有些时候您需要维護自己编写的代码,有些时候则需要继承大量其他人编写的代码   ·使用清晰、标准的命名约定可以节省时间并减少错误。   由于這些原因,建议尽早采用词汇和语义最佳实践例如,可以使用代表其数据类型的字符作为用户定义对象的前缀或后缀如下所示:   這种类型化定义并不是为了帮助编译器理解数据类型:相反,其目的是帮助其他开发人员了解所创建对象的特征下面是一个示例:   觀察其中使用两个符号作为每个变量的前缀,分别代表其全局或局部特征和数据类型Oracle维基(http://)的贡献者建议类型化应该局限于前缀。此外前缀必须由标识变量类型的字母(如表0-1中所示)组成。

}

我要回帖

更多关于 有序列表是什么意思 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信