会开车的仙人掌 · oracle数组拼接 - CSDN文库· 1 周前 · |
玩命的苦瓜 · 职涯培力- NCCU Office of ...· 2 周前 · |
买醉的野马 · 怡保市简介 — 中华人民共和国驻槟城总领事馆· 1 月前 · |
小猫猫 · 利用ChatGPT对文章进行二创重写 - ...· 6 月前 · |
内向的菠萝 · 关于印发《乐东黎族自治县千家镇农村土地承包经 ...· 7 月前 · |
打盹的板栗 · 如何评价《子弹列车》这部电影? - 知乎· 1 年前 · |
触发器分为:DML触发器、DDL触发器、登录触发器
原理如表格所示
对表的操作 | inserted表 | deleted表 |
---|---|---|
增加记录(insert) | 存放增加的记录 | 无 |
删除记录(delete) | 无 | 存放被删除的记录 |
修改记录(update) | 存放更新后的记录 | 存放更新前的记录 |
insert:
当对表进行INSERT操作时,INSERT触发器被激发,新的数据行被添加到创建触发器的表和Inserted表。
delete:
先将要删除的记录存放在Deleted表里,然后把数据表里的记录删除,再激活After触发器,执行After触发器里的SQL语句。执行完毕之后, 删除内存中的Deleted表,操作结束。
update :
生成新的记录到Inserted表,复制旧的记录到Deleted表,然后删除修改表里的旧的记录并写入新纪录。
update例子:
创建触发器trigger_2,实现当修改“学生表”中的某个学生的学号时,对应“学生作业表”中的学号也作修改。
use study
create trigger trigger_2
on student
for update
if update(stdid)
begin
update sw
set stdid = inserted.stdid
from sw ,deleted,inserted
where sw.stdid = deleted.stdid
查看student表的触发器
exec sp_helptrigger 'student'
查看trigger_2触发器的定义文本
EXEC sp_helptext 'trigger_2'
删除student表的trigger_2触发器
drop trigger trigger_2
修改DML触发器的语法格式如下:
ALTER TRIGGER schema_name.trigger_name
ON ( table | view )
[ WITH ENCRYPTION ]
{ FOR | AFTER | INSTEAD OF }
{ [ DELETE ] [ , ] [ INSERT ] [ , ] [ UPDATE] }
AS sql_statement [ ; ]
修改DDL触发器的语法格式如下:
ALTER TRIGGER trigger_name
ON { ALL SERVER | DATABASE }
[ WITH ENCRYPTION ]
{ FOR | AFTER } { event_type | event_group } [ ,...n ]
AS sql_statement [ ; ]
使触发器无效:
DISABLE TRIGGER { [ schema.] trigger_name [ ,...n ]
| ALL }
ON object_name
使触发器有效:
ENABLE TRIGGER {[schema_name.] trigger_name
[ ,...n ] | ALL }
ON object name
记录数据库的网课学习
3. Procedure Editor的用法介绍
4. 如何进行PLSQL的debug
5. 如何使用SQLab Xpert优化SQL
6. 如何使用SQL Modeler来编写查询
7. 如何使用Toad的DBA方面的功能
一、 Toad功能综述
在Oracle应用程序的开发过程中,访问数据库对象和编写SQL程序是一件乏味且耗费时间的工作,对数据库进行日常管理也是需要很多SQL脚本才能完成的。Quest Software为此提供了高效的Oracle应用开发工具-Toad(Tools of Oracle Application Developers)。在Toad的新版本中,还加入了DBA模块,可以帮助DBA完成许多日常管理工作。它最大的特点就是简单易用,访问速度快。使用Toad,我们可以通过一个图形化的用户界面快速访问数据库,完成复杂的SQL和PL/SQL代码编辑和测试工作。Toad由Oracle开发专家专门为开发人员而设计,是一个功能强大、结构紧凑的专业化PL/SQL开发环境。
Toad 主要具有如下特点:
模式浏览:
模式浏览功能可以让我们快速访问数据字典,浏览数据库中的表、索引、存储过程。Toad 提供对数据库的快速访问,使用极为方便,用户界面简洁,结构安排合理。当我们点击一个单独的数据库对象,Toad立即显示此对象的详细信息。例如,当我们点一个数据库的表,所有和此表相关的索引、约束、存储过程、SQL语句以及和其他表的相互引用关系都在同一界面显示出来。为了简化操作,用户可以在浏览窗口操作数据库对象。
SQL 编辑器:
SQL 编辑器的主要功能是编辑、运行和调整SQL语句。TOAD 的高级编辑窗口包括众多的特性来提高开发人员编写SQL语句的产品化程度。例如,简单地生成代码模板,在编写SQL前自动发现包的内容和列的名字等等。
SQL编辑器包括一个编辑窗口和运行结果窗口,允许开发人员在编辑的过程中测试运行结果。SQL编辑器中不仅包括标准的编辑命令,也包括一些增强的功能,如快速查询表中的字段、将SQL语句的内容格式化等等。这个窗口可以处理大到4GB 的内容,对大的开发项目来说非常有用。便捷的书签可以让开发人员非常容易地找到相关位置。在运行结果窗口可提供用户定义的配置功能,支持LONG 和LONG RAW列,可以将数据卸出到磁盘、打印数据、编辑数据等等。
存储过程编辑器:
存储过程编辑器的主要功能是编辑、编译、测试、调试存储过程和触发器。TOAD提供语法标识、错误标识和其他很多易于使用的功能,如在弹出窗口显示表名、列名和Oracle函数。和其他的 PL/SQL 编辑工具不同,TOAD 允许在一个文件中操作多个数据库对象,可以编译一个对象、编译多个对象、编译到当前光标、从光标开始编译。在运行出现错误时,存储过程停止到有问题的语句。用户可以使用快捷方式或模板来快速编写PL/SQL,也可以根据需要生成自己的模板。使用Toad可以非常方便地进行编辑工作,可如设置书签、取消注释、格式化SQL语句等等。
PL/SQL Debugger选项:
Toad 提供简单易用的PL/SQL 调试功能,可以节省开发人员在大型项目中用于开发和测试的宝贵时间,提高应用开发的质量。在存储过程开发的过程中,Toad可以逐行编辑、调试和运行代码。运行时可以根据需要输入参数,观察相关参数的变化来检查存储过程的正确性。在调式过程中,Toad 可以通过窗口显示所有的断点、参数, 调用堆栈和输出参数。使用Toad,非常容易检测到存储过程的错误,开发人员可以一步一步运行PL/SQL语句来识别问题。调试会话可以和其他程序会话同时进行。
SQLab Xpert Option:
帮助开发人员优化SQL,为他们提供各种优化模式下SQL执行计划,并且能够给出优化的建议,能够比较各种模式下实际的SQL运行结果,帮助开发人员真正高速地开发高效地代码。
Toad还可以外挂一些别的产品,比如PL/Formatter, RevealNet Knowledge Base , SQL Impact等,这些都能够和Toad紧密集成,共同提供了一个完美的集成开发环境。新版本还新增加了DBA模块,更加拓广了Toad这个产品的适用范围。
二、系统要求:
Windows 95 / 98 / NT/2000中英文均可
完整安装的SQL*Net 2.0或者Net8
磁盘:一般安装需要20M左右的空间,根据所选择模块的不同和安装方式的不同,最少也要5M的磁盘空间(从网络服务器读取)
内存:Windows 9x/Me:16M 内存;Windows NT/2000: Min 32M]
Tuning模块需要额外的25M空间
服务器端:
Oracle 7.3 或者更高,在任何硬件平台上。
需要一个DBA用户帐号
三.安装:
1. 三种安装方式的选择:
a) TOAD and Personal Configuration Files to PC
默认安装选择,完成一个完整的Client端的安装,把所有需要的文件拷贝到本地Toad目录。
绝大多数用户应该选择使用这个安装方式。
b) Personal Config Files to PC, read TOAD from Network Server
从网络服务器读取Toad程序,在本地计算机安装一些自定义的文件,并且创建到服务器文件的快捷方式,一般不推荐使用这个方式,而且要求网络服务器已经配置。
c) TOAD to Network Server
把Toad安装到网络服务器上,以便这样别的用户能够进行Personal Config Files to PC, read TOAD from Network Server这种方式的安装。
2. 根据需要使用到的特性,需要运行一些脚本(都在Toad\temps目录下)
如果需要用Toad来查看执行计划,必须运行脚本PrepToad.sql或者notoad.sql
如果希望专门建立一个Toad 用户来存放Toad需要使用的对象的话,就运行preptoad.sql。
如果希望在当前连接用户模式下建立toad需要使用的对象的话,就运行notoad.sql。
注意,如果是选择了专门建立toad这个用户的话,需要先修改一下脚本,指定用户的默认表空间和临时表空间。
需要使用Oracle8i 的Profile analyzer,必须运行ToadProfiler.sql
需要加强Toad的安全性,必须运行ToadSecurity.sql
四、Toad使用快速入门
1. Schema Browser:
Schema browser是Toad的极为有特色的模块。在schema browser的帮助下,可以方便的浏览数据库内部的各类数据库对象,比如表,索引,序列,存储过程等,而且可以方便的倒出DDL语句和进行各种修改,重建工作。定位到某一类对象上,这列对象允许的操作都会自动列出来。
支持Oracle数据库里面所有对象的新建、查看、修改,集成了几乎对所有数据库对象的管理所需要的功能。
按照 模式->对象类别 ->对象->对象可操作属性 -> 对象本身的详细信息和对象相关的信息 来组织,非常有条理,容易定位对象,也能够看到所有你需要的对象的相关信息。
对于表:
i. 完备的建表向导,不用输入冗长的语法,更加全面地替你考虑。
ii. 可以修改表的各种逻辑和物理属性,修改列的属性,增加列,删除列(在Oracle8i里面),修改表的物理存储属性,Truncate,Drop等。
iii. 可以生成建表的完整的DDl语句,包括存储信息,权限信息,约束,索引和触发器等,而这些手工很难做到。
iv. 可以方便的对表进行分析,查看表地所有信息,可以有条件的倒出表里面的数据,并且保存为sql语句。
v. 可以方便的对表进行重组,可以完成exp/imp作不到的事情,而且更少地人工参与,更加安全。
对于视图,存储过程:
i. 可以保存建立视图、存储过程的语句为文本,
ii. 重新编译失效的视图,存储过程,修改视图的定义语句等。方便的查看存储过程的代码,相互依赖关系,权限信息等保存为文本等。
回滚段,
i. 简洁明了的online,offline状态,方便地online/offline操作
ii. 详细的回滚段物理信息和当前状态。
iii. 可以方便的修改物理存储属性
表空间:
i. Tablespace Map;直观的显示数据物理的在表空间上的分布
ii. 直观的查看各个表空间的利用率、剩余空间、破碎情况等信息
iii. 可以进行各种alter操作:online, offline, 增加数据文件,改变数据文件大小,改变物理存储属性等
对其他数据库对象也有完备的操作支持。
2. SQL Editor:
a) 激活SQL Editor的三种方式:
i. 连接到数据库之后,Toad自动打开SQL Editor这个窗口。
ii. 点击总工具栏上最左边的那个按钮
iii. 从菜单栏:Database -> SQL Editor
b) 特点:
允许同时打开多个编辑窗口,同时编辑多个SQL语句
支持同时连接到多个数据库,同时对多个数据库进行操作
允许编辑SQL,PLSQL,JAVA,HTML和文本
使用书签功能,可以在大量SQL语句里,快速定位某个语句所在位置
SQL Editor本身具有强大的编辑功能,非常方便编辑SQL语句。
强大的快捷键支持和工具栏快速按钮的支持,更加高效编写(很多快捷键可以自己定义,在View ->options ->SQL Editor里面)
能够根据前面的条件,智能推测需要输入的代码,可以做到某种程度的代码智能填充
把鼠标定位到表/视图/存储过程名称之上,按F4,可以打开对象描述窗口,方便的查看表和视图的定义,存储过程的源代码,
非常容易对SQL语句的分析其执行计划:单击工具栏上的 按钮就可以看到Explain Plan的结果
支持部分SQL*Plus命令,可以方便的执行大量的为SQL*Plus编写的数据库脚本
可以通过SQLab xpert来对当前SQL语句进行全面的分析,给出各种合理的调优意见,只需要单击工具栏上的Tuning按钮:
可以方便的保存,打开和运行SQL脚本
支持对查询结果进行修改,
可以把查询结果以多种格式保存起来,可以保存为HTML,纯文本,XLS等多种格式
很容易的得到SQL函数的列表和用法描述(Show SQL help Window 按钮)
可以查看SQL语句的执行情况:通过下方的AutoTrace窗口 ,看到SQL语句的实际执行结果和执行效率。
支持历史SQL(F8) :可以方便的查询以前执行过的SQL,不用反复重新输入。
可以执行匿名块,存储过程,从下方的窗口看到DBMS_OUTPUT的结果,如:
3. Stored Procedure Editor
a) 打开存储过程编写器的几个途径:
单击总菜单栏上的第三个按钮:
点击Database - > Procedure Editor ,
可以通过Schema browser来调用
b) 一些特点和优点:
1. 强大的自定义设置:从保留字的显示方式,到自动替换,到各种快捷键的定义等等,用得越熟越顺手。
3. 自动用不同颜色显示SQL和PL/SQL关键字,语法清晰明了,可根据自己的习惯来具体定制各类关键字的具体显示方式。可以自定义存储过程得模板,在新建存储过程的时候,自动生成程序的框架可以方便的调用Schema Browser,把鼠标定位于某个对象上,F4,Schema Browser打开该对象的详细描述,帮助顺利快速开发程序。支持代码自动更正,如输入ndf,自动替换成NO_DATA_FOUND,输入the自动替换成the,类似的自动替换还可以自己修改和添加。
7. 方便的左边行号显示,单击左边行号就可以实现调试断点的增加/删除
8. 对各种快捷键的支持,不但包括常见的编辑操作,还可以有自己定义的PLSQL块的支持(自己定义快捷方式)。如可以定义CTRL+SHIFT+D:弹出所有PLSQL Block的类型,可以自己选择。
9. 可以在一个集成开发环境里面,一边编码,一边调试,不用多处切换
10. 方便的同时打开多个存储过程,通过页面快速切换
11. 快速编译存储过程,快速定位错误所在,自己选择是否同时编译依赖的存储过程
12. 内置对PL/Formatter,可以用PL/Formatter对存储过程进行格式化,并且可以提供存储过程的概要分析和修改建议
PL/Formatter可以对现有的存储过程进行高速的格式化,使所有的存储过程都符合同样的编写标准,这样既有利于提高程序的可读性,避免不同人写的模块的风格上的很差异。
PL/Formatter 还有助于提高程序的模块化,增强程序的结构清晰度,增强SQL的共用性。
PL/Formatter 还可以帮助完成PL/SQL和Oracle版本之间的管理。
13. 内置RevealNet Knowledge Base,单击鼠标右键就可以打开,快速得到技术上的支持,解决技术难题
PL/SQL:
包含整个开发过程中可能遇到问题的答案
Code Library:大量的严谨的PL/SQL代码例子和现成过程,完全源代码提供
各种错误处理模块可供参考,各类字符日期函数
包含1400多个主题
Admin:
解答DBA日常工作中80%的常见问题,覆盖2400多个主题
从网络到性能优化,从备份恢复到Error message,一应俱全
例子:遇到失效的存储过程怎么办?
4. 如何对存储过程进行Debug?
需要Toad单独的Debug Option(Standard Version 没有这个选项)
要用Toad对存储过程进行debug,必须安装Oracle的系统包:dbms_debug,而且必须安装Oracle Probe API v2.0 或者更高的版本。
集成在Stored Precedure Editor里面,可以一边编写一边调试,大大提高开发效率
打开Procedure Editor后,Debug菜单激活,可以开始进行Debug工作。
允许对存储过程进行逐行调试、断点调试,也支持对触发器进行调试。
可以有断点支持,支持Watch变量,允许运行时改变变量的值
允许对多层调用的Debug支持
调试步骤具体举例:
1. 点击菜单栏的第三个按钮: ,打开Procedure Editor
2. 点击Procedure Editor的菜单栏的 按钮,调出需要调试的存储过程
3. 单击工具栏上的按钮 ,输入需要传入的参数,如果不需要传入参数,可以直接单击工具栏上的按钮: ,直接开始调试,如下图输入传入参数:
4. 单击菜单栏的按钮: ,可以单步跟踪,也可以定义一个断点,直接运行到断点在单步执行,在存储过程运行的过程中,当前语句会高亮度显示,并且把鼠标指针定位到变量上,Toad自动显示该变量的当前值。
5. 可以随时中止程序的执行,只要点Debug ->Halt Execution,或者菜单栏上的按钮 ,就可以中止程序的执行
6. 当碰到一个存储过程调用另外一个存储过程的时候,可以选择跳过(Step Over) ,这样就直接运行那个被调用的存储过程,返回调用结果,继续这个存储过程的调试,也可以选择Trace Into ,这样就打开被调用的存储过程,进一步深入调试那个被调用的子存储过程。如果需要保持Debug信息,在编译的时候应该选择Compile Dependencies with Debug Information,就是Procedure Editor工具栏最右边的那个按钮 。
7. 支持对变量实时追踪:使用Watch:
可以在运行前,或者运行过程中对某个变量进行实时跟踪:Add Watch,把鼠标定位到该变量上,然后点击Debug ->Add Watch At Cursor,该变量就会出现在Debug状态窗口上,而且实时反应该变量的当前值。如上图中的变量v_empname。可以运行时刻修改
8. 断点支持:
单击存储过程需要加断点的地方的行号,该行颜色变红,输入参数,单击执行按钮 ,可以直接运行到断点处,可以不必逐行追踪,更加高效率的进行调试。
Debug Option还支持条件断点,只有当满足条件的时候才会在那个地方停止,否则就好像不存在这个断点一样继续运行。
注意DBMS_OUTPUT.PUT_LINE的结果只有当程序执行完成以后才会出现,在程序执行过程中是没有结果的。
4. 如何用SQLab Xpert对存储过程进行调优?
我们知道,Oralce数据库的优化,最主要的步骤就在于SQL的优化。而在没有专门的工具(如Toad)的帮助下,进行SQL优化是一件非常困难和乏味的事情,并且需要对Oracle的深入理解和高超的Oracle调优技巧。使用Toad的SQLab Xpert Tuning模块,可以使我们普通开发人员也能够非常快速,精确的对SQL进行专家级的分析
在SQL Editor和Procedure Editor里面,选中需要调试的SQL语句(SQLab Xpert只能调试Select,Insert, Update,Delete语句),复制到SQL Editor里面,然后点击工具栏上的调优按钮 ,Toad会自动打开SQLab xpert 窗口,捕获当前的SQL语句,并且把它转化为符合explain plan格式的语句。
第一次打开Xpert的时候,Toad会提示你,需要安装一些Server端的表、视图和包等对象,可以把表存储到某个指定的表空间(如Tools)里面。可以简单的按照提示一步一步做就可以了。如果系统设定不允许Job的话(Job_queue_process=0),Toad提示有些部件不会现在安装,可以忽略。安装完成以后,可以选择让某些非DBA用户也可以使用Toad的SQLab Xpert调优功能。
安装完成以后,Toad会提示你一些关于优化目标方面的问题,你可以选择每次优化都可以重新设定,或者一次设定,以后一直使用这个设定。当然如果需要,还是可以更改的,在SQLab Option xpert的窗口的Administration和Preference下面重新设定。
下面这个SQL语句涉及到多表之间的关联,有一定的复杂性,我们可以借助Toad的SQLab Xpert Option来帮助分析:
select a.name. b.name, c.emp_name
from dep a, manager b,emp c
where a.dep_no=c.DEP_NO
and b.manag_id=c.manag_id
and c.emp_no=3
我们把这个SQL复制到SQL Editor里面,单击上面的调优按钮,Toad打开SQLab Xpert Option窗口。
从上面的图中我们可以方面的看到:在各种优化模式下,该SQL语句的执行计划分别是什么样的,Toad给出了每一种执行计划的具体每一个步骤,每个步骤的成本,该表涉及的相关的数据等,如果SQL存取的表还没有经过分析,Toad会以红色警告显示,并且很方便的帮助你对该表进行分析,收集统计数据,重建索引等,以有助于优化器作出最好的选择。可以把当前的分析结果保存到它的资料库里边,以备以后再次调用之需。
我们还可以求助与SQLab 的自动优化功能:点击Original SQL下面的auto tune按钮,Toad会对执行结果按照tkprof进行分析(当然,这需要你在initsid.ora里面设置好utl_file_dir,如果服务器是在Unix机器上的话,还需要通过FTP方式得到Trace文件,有一些小小的设置)。
自动优化非常高效的对所有执行计划进行实际运行比较,并且给出实际执行的时间的对比,如下图:
我们还可以让Toad给出实际的优化建议:点击Original SQL,单击下面的Advice按钮,Toad根据对SQL的分析和执行结果给出合理的建议:
1. 把表和索引分别放到两个不同的表空间,因为我们在创建表,加上约束的时候没有指定USING INDEX子句,所以表和索引都建立在了用户的默认表空间上了。
2. 对表EMP,DEP和MANAGER进行分析,收集最新的统计数据,有利于CBO得到最优的执行计划
3. 在合适的列上创建索引:EMP的manag_id和dep_no。当表中存在大量的数据的时候,这样可以大大减少由于全表扫描带来的成本。
5. SQL Modeler:
SQL Modeler可以帮助开发人员很容易的写出各种复杂的SQL语句,只需通过简单的拖动鼠标,就能够写出复杂的SQL语句来。
打开SQL Modeler的几个途径:
i. 菜单栏 Database -> SQL Modeler ,打开窗口
ii. 单击工具栏第四个按钮 ,打开SQL Modeler窗口
窗口由三个主要部分组成:
表选择区域:最右边的那个部分,用来选择From子句中用到的表。拖动到左边的区域或者双击就选择了该表。
表模型区域:用来图形化的显示选择的表和表之间的关联关系。
生成SQL区域:这里显示用图形化方式创建的查询对应的SQL语句,
在SQL Modeler里面,还支持对生成的SQL进行Explain Plan,调试SQL的性能,运行SQL,看是否得到了希望的结果,保存生成的语句,或者把语句粘贴到SQL Editor里面。
有了SQL Modeler的帮助,即使是初级的程序员也能编写出复杂而又高效的SQL查询来。
比如下面的例子;
生成步骤:
1. 选出表emp, dep, manager
2. 用鼠标拖住emp的emp_name和emp_no, dep的name,manager的name
3. 双击criteria窗口的emp_no condition列,弹出窗口,输入查询条件,比如emp_no=3
4. 由于结果里面不希望emp_no出现,双击emp_no列的visible,设置为false
5. 这样就出来了需要的查询,现在可以运行查询得到结果,对查询SQL进行分析,或者在SQL Editor里面打开这个SQL,或者保存为SQL Model文件,或者再进一步处理,比如加排序, 汇总等。
DBA方面的功能:
Toad在DBA日常管理方面的能力是非常强大的,可以帮助DBA安全快速地完成许多日常工作,还有Toad特有的一些小工具能完成一些普通方法很难做到的功能。下面大概讲述了各个常用模块的主要功能:
a) Database Monitor
提供直观的Oracle数据库运行状况,包括下面这些详细信息:
可以看到逻辑IO,物理IO,各个状态的session数目,SGA的利用率,共享池的使用状况,各类事件的等待状况,以及各类事件随着时间的变化情况
b) Instance Monitor
i. 可以用来检查本地tnsnames.ora文件里面定义的所有节点、Listener和数据库的运行状态和版本等相关信息。
ii. 可以远程启动、关闭数据库(如果设置了password验证方式)
c) Unix Monitor:
i. 可以监控Unix机器的运行状况比如详细的机器启动时间,CPU利用率,主要的进程以及这些进程占用的资源,主要的磁盘IO等。
d) Trace/Kill session
i. 方便的查看所有的连接用户相关信息:比如终端,程序,连接时间等
ii. 对某个用户进行跟踪,查看用户执行的SQL语句,查看语句的执行计划,
iii. 方便的查阅系统的Lock对象,有没有什么等待别的事务释放锁的情况,并能够轻易查出等待什么用户的什么事件结束,那个用户执行的是什么SQL。
iv. 查看回滚段的使用状态,什么用户,什么语句,使用的什么回滚段,多少读写量等
e) Oracle Parameter
i. 可以方便的查看Oracle系统的参数:是否默认值,参数作用的简要描述,是否可以用alter session/alter system来动态改变,对于那些可以动态改变的参数,可以双击鼠标来进行修改
f) NLS_PARAMETER:
i. 方便的查看session,instance,database一级的NLS参数值,
ii. 可以动态修改session的NLS参数值
g) Extents
i. 可以查看某个用户下的表和索引的详细的存储情况,
ii. 发现那些占用大量空间的表和索引,可以考虑使用相应的对策,比如分区
iii. 发现那些即将达到max_extents的表和索引并可以及时纠正
iv. 发现那些索引和表处于同一个表空间的情况,并可以及时纠正。
h) Tablespace
i. 直观的查看每个表空间的利用率,总空间,已使用空间,剩余可是用空间以及默认存储参数,和表空间是否需要整理等信息
ii. 查看每个表空间的状态,组成的数据文件, 以及每个数据文件的详细信息
iii. 查看每个表空间里面存在的对象和这些对象的详细存储特性
i) Tablespace Map:
i. 图形化的显示表空间里面各个表/索引所占用的空间,各个segment的大小,segment是否连续等信息,非常直观
j) Server Statistics:
i. 可以非常直观的看到系统总体运行情况,迅速定位系统瓶颈所在
ii. 可以查看系统范围内各类等待事件的状况,查看每个连接会话的状况,
k) Pinned Code:
i. 我们知道,频繁执行的大的存储过程最好Pin起来,这样可以避免被Oracle在内存不足的情况下换出内存,避免动态加载,也避免flush shared pool的时候被清出内存。
ii. 根据每个模块的大小,执行次数,决定是否要把某个存储过程PIN起来。一个按钮就搞定了。
l) Control Files:
可以查看当前系统有哪几个控制文件,以及控制文件内部记录的详细信息。
(实际上就是V$CONTROLFILE, V$CONTROLFILE_RECORD_SECTION)
m) Redo Log Manager:
i. 可以方便的查看LOG的组,当前日志,每个组里面的成员名字,大小,方便的增加、删除log组,切换当前日志,对日志归档进行具体的控制。
ii. 可以在这个界面里完成几乎所有的对redo log的操作。
n) Repair chained rows:
i. Chained rows影响系统性能,处于系统性能的考虑,需要把chained rows修复成普通的表的行。使用repaie chained rows,就可以比较容易的做到这一点。选择需要分析的表,然后分析一下,看有没有chained rows,如果有,点击repair,Toad就帮你把那些chained rows给修复了。
o) Identify Space Deficits
如果系统出现1659,1653错误,就是一个不合格的DBA。但是要即时预见这些错误,还是有一定的难度的。有了Toad的这个小工具之后,一点某个表空间,就知道这个表空间里面的剩余自由空间是否允许任何表能够扩展到下一个extent。并能够在发现问题之后,直接改正问题。
p) Estimate Table/Index Size
i. 数据库的物理规划中,表/索引的存储子句的定义是非常重要的,影响系统。但是没有什么工具的话,要为表定义合理的存储子句也不容易。
ii. 在Toad里面,专门有工具帮助你合理定义表/索引的存储情况:
1. 自己可以定义将来表中需要存储的数据的数目
2. 多种估计方式:
a) 根据对已有的数据的分析来定义表的大小(最精确,但是比较慢)
b) 根据表定义数据类型来定义表的大小
c) 根据数据字典中以前分析过的数据来估计大小(需要近期分析过该表)
q) Analyze All Tables
i. 基于CBO的SQL需要CBO提供最优化的执行路径来提高程序的执行效率,但是假如对表进行大量的DML操作之后,不及时更新表的统计数据,这时候CBO就不能选择最为有效的执行路径,导致程序执行效率低。
ii. 手工分析表比较麻烦,一个一个做。
iii. 用Toad的Analyze Alltables这个工具,可以一次分析整个模式下面的所有表,有丰富的控制选项,包括是采用估计还是完全,是否同时分析索引,估计的话,采用多大的百分比等。
r) Rebuild Table
i. 当表中的数据被反复大量的DML之后,而且PCTFREE和PCTUSED定义的不合理的情况下,表可能会变得非常破碎,占用大量的extent,索引也会相当破碎,导致效率相当低下。
ii. 传统的方式是通过exp/imp来解决这个问题,但是步骤实在比较麻烦,手工操作也有一定的危险性。
iii. 使用Rebuild Table工具,轻松搞定,而且可以手工修改一些通过EXP/IMP无法修改的参数,比如freelists ,freelists group, tablespace,initial等,还能够更改列的名字。
s) Relocate Index
i. 我们知道,表和索引一般都需要分开存放到不同的表空间,这样比较便于管理,性能上也会有一定的提高,因为可以对表和索引同时存取。
ii. 但是实际上很多时候,由于这样那样的原因,常常忽略了索引单独存放这个基本概念,比如建立主键约束的时候没有加USING INDEX子句,后来disable/enable了主键约束/唯一性约束等,都会导致把索引直接存放到和表同一个表空间里面。
iii. 手工发现这些索引,再逐个移动非常麻烦,容易出错,在Toad里面,就很容易根据用户/表空间来发现那些不恰当存放的索引,可以批量移动这些索引,并且允许重新定义索引的存储子句。
t) Generate Schema Scripts:
i. 可以用来生成整个用户下所有/部分对象的DDL语句。可以把结果保存为sql语句或者保存为TOAD的自定义格式。
ii. 可以用来复制表结构,(EXP/IMP有非常严重的缺陷,就是从一个大的数据库倒出的表结构,无法导入到一个小的数据库里面,因为里面包含了原来表的存储信息,即使选择rows=N,也要在导入数据库里面占用相当大的空间)
u) Compare Schema:
i. 在开发的时候,有时候同时在几个开发库上开发,但是最后两个库的结构不完全一样,很难比较
ii. 用TOAD的这个功能,可以对两个数据库的模式(用户)下面的所有对象(包括存储过程)进行比较,可以选择具体的比较内容。
iii. 可以通过直接打开两个到各自数据库的连接,或者根据Toad generate schame scripts生成的文件进行对比。
iv. 可以直接生成同步两个数据库的sql脚本,给出汇总的区别简要和详细报告等。
CREATE TABLE sal_order_test
(FID INT IDENTITY (1,1),
FBILLNO VARCHAR(20) NOT NULL DEFAULT(''),
FDATE VARCHAR(20) NOT NULL DEFAULT('')
CREATE TABLE sal_order_
第 1 章 结构化查询语言 DM_SQL 简介 ....................................................................1
1.1 DM_SQL 语言的特点 .....................................................................................................1
1.2 保留字与标识符 ............................................................................................................2
1.3 DM_SQL 语言的功能及语句 .........................................................................................2
1.4 DM_SQL 所支持的数据类型 .........................................................................................3
1.4.1 常规数据类型 ....................................................................................................3
1.4.2 位串数据类型 ....................................................................................................5
1.4.3 日期时间数据类型 ............................................................................................6
1.4.4 多媒体数据类型 ..............................................................................................10
1.5 DM_SQL 语言支持的表达式 .......................................................................................10
1.5.1 数值表达式 ......................................................................................................11
1.5.2 字符串表达式 ..................................................................................................13
1.5.3 时间值表达式 ..................................................................................................13
1.5.4 时间间隔值表达式 ..........................................................................................15
1.5.5 运算符的优先级 ..............................................................................................16
1.6 DM_SQL 语言支持的数据库模式 ...............................................................................17
第 2 章 手册中的示例说明 ......................................................................................18
2.1 示例库说明 ..................................................................................................................18
2.2 参考脚本 ......................................................................................................................26
2.2.1 创建示例库 ......................................................................................................26
2.2.2 创建模式及表 ..................................................................................................26
2.2.3 插入数据 ..........................................................................................................33
第 3 章 数据定义语句 ..............................................................................................50
3.1 数据库修改语句 ..........................................................................................................50
3.2 管理用户 ......................................................................................................................53
3.2.1 用户定义语句 ..................................................................................................53
3.2.2 修改用户语句 ..................................................................................................59
3.2.3 用户删除语句 ..................................................................................................62
3.3 管理模式 ......................................................................................................................63
3.3.1 模式定义语句 ..................................................................................................63
3.3.2 设置当前模式语句 ..........................................................................................65
3.3.3 模式删除语句 ..................................................................................................65
3.4 管理表空间 ..................................................................................................................66
3.4.1 表空间定义语句 ..............................................................................................66
3.4.2 修改表空间语句 ..............................................................................................67
3.4.3 表空间删除语句 ..............................................................................................69
3.4.4 表空间失效文件检查 ......................................................................................70
3.4.5 表空间失效文件恢复准备 ..............................................................................70
3.4.6 表空间失效文件恢复 ......................................................................................70
3.5 管理 HTS 表空间 .........................................................................................................71
3.5.1 创建 HTS 表空间 .............................................................................................71
3.5.2 修改 HTS 表空间 .............................................................................................71
3.5.3 删除 HTS 表空间 .............................................................................................72
3.6 管理表 ..........................................................................................................................72
3.6.1 表定义语句 ......................................................................................................72
3.6.2 表修改语句 ....................................................................................................115
3.6.3 基表删除语句 .............................................................................................133
3.6.4 基表数据删除语句 ........................................................................................134
3.6.5 事务型 HUGE 表数据重整 ............................................................................134
3.7 管理索引 ....................................................................................................................135
3.7.1 索引定义语句 ................................................................................................135
3.7.2 索引修改语句 ................................................................................................140
3.7.3 索引删除语句 ................................................................................................142
3.8 管理位图连接索引 .....................................................................................................143
3.8.1 位图连接索引定义语句 ................................................................................143
3.8.2 位图连接索引删除语句 ................................................................................145
3.9 管理全文索引 ............................................................................................................145
3.9.1 全文索引定义语句 ........................................................................................145
3.9.2 全文索引修改语句 ........................................................................................146
3.9.3 全文索引删除语句 ........................................................................................147
3.10 管理空间索引 ..........................................................................................................148
3.11 管理数组索引 ..........................................................................................................148
3.11.1 数组索引定义语句 .....................................................................................149
3.11.2 数组索引修改语句 .....................................................................................149
3.11.3 数组索引使用 .............................................................................................149
3.11.4 数组索引删除语句 .....................................................................................151
3.12 管理序列 ..................................................................................................................151
3.12.1 序列定义语句 .............................................................................................151
3.12.2 序列修改语句 .............................................................................................154
3.12.3 序列删除语句 .............................................................................................156
3.13 管理 SQL 域 .............................................................................................................156
3.13.1 创建 DOMAIN...............................................................................................156
3.13.2 使用 DOMAIN...............................................................................................157
3.13.3 删除 DOMAIN...............................................................................................158
3.14 管理上下文 ..............................................................................................................158
3.14.1 创建上下文 ..................................................................................................158
3.14.2 删除上下文 ..................................................................................................160
3.15 管理目录 ..................................................................................................................161
3.15.1 创建目录 ......................................................................................................161
3.15.2 删除目录 ......................................................................................................161
3.16 设置当前会话 ..........................................................................................................162
3.16.1 时区信息 ......................................................................................................162
3.16.2 日期串语言 ..................................................................................................162
3.16.3 日期串格式 ..................................................................................................163
3.17 注释语句 ..................................................................................................................163
3.18 设置 INI 参数 .........................................................................................................164
3.18.1 设置参数值 ..................................................................................................164
3.18.2 设置仅对当前会话起作用 ..........................................................................165
3.19 修改系统语句 ..........................................................................................................166
3.20 设置列、索引生成统计信息 ..................................................................................166
第 4 章 数据查询语句 ............................................................................................168
4.1 单表查询 ....................................................................................................................179
4.1.1 简单查询 ........................................................................................................179
4.1.2 带条件查询 ....................................................................................................180
4.1.3 集函数 ............................................................................................................183
4.1.4 分析函数 ........................................................................................................188
4.1.5 情况表达式 ....................................................................................................205
4.2 连接查询 ....................................................................................................................209
4.2.1 交叉连接 ........................................................................................................209
4.2.2 自然连接(NATURAL JOIN)......................................................................210
4.2.3 JOIN … USING............................................................................................210
4.2.4 JOIN…ON .......................................................................................................211
4.2.5 自连接 ............................................................................................................211
4.2.6 内连接(INNER JOIN)................................................................................212
4.2.7 外连接(OUTER JOIN)................................................................................213
4.3 子查询 ........................................................................................................................217
4.3.1 标量子查询 ....................................................................................................217
4.3.2 表子查询 ........................................................................................................218
4.3.3 派生表子查询 ................................................................................................221
4.3.4 定量比较 ........................................................................................................221
4.3.5 带 EXISTS 谓词的子查询 ...........................................................................222
4.3.6 多列表子查询 ................................................................................................223
4.4 WITH 子句 ................................................................................................................224
4.4.1 WITH FUNCTION 子句 ...............................................................................224
4.4.2 公用表表达式子句 ........................................................................................225
4.5 合并查询结果 .............................................................................................................227
4.6 GROUP BY 和 HAVING 子句 ....................................................................................229
4.6.1 GROUP BY 子句的使用 ...............................................................................229
4.6.2 ROLLUP 的使用 ............................................................................................230
4.6.3 CUBE 的使用 .................................................................................................231
4.6.4 GROUPING 的使用 .......................................................................................233
4.6.5 GROUPING SETS 的使用 ...........................................................................234
4.6.6 GROUPING_ID 的使用 ................................................................................235
4.6.7 GROUP_ID 的使用 .......................................................................................236
4.6.8 HAVING 子句的使用 ....................................................................................237
4.7 ORDER BY 子句 ........................................................................................................237
4.8 FOR UPDATE 子句 ...................................................................................................238
4.9 TOP 子句 ....................................................................................................................240
4.10 LIMIT 限定条件 .....................................................................................................241
4.10.1 LIMIT 子句 ................................................................................................241
4.10.2 ROW_LIMIT 子句 ......................................................................................242
4.11 全文检索 ..................................................................................................................243
4.12 层次查询子句 ..........................................................................................................245
4.12.1 层次查询子句 .............................................................................................245
4.12.2 层次查询相关伪列 .....................................................................................246
4.12.3 层次查询相关操作符 .................................................................................246
4.12.4 层次查询相关函数 .....................................................................................246
4.12.5 层次查询层内排序 .....................................................................................246
4.12.6 层次查询的限制 .........................................................................................247
4.13 并行查询 ..................................................................................................................251
4.14 ROWNUM ....................................................................................................................252
4.15 数组查询 ..................................................................................................................253
4.16 查看执行计划与执行跟踪统计 .....
第 7 章 物化视图 ....................................................................................................283
7.1 物化视图的定义 ....................................................................................................283
7.2 物化视图的修改 ....................................................................................................286
7.3 物化视图的删除 ....................................................................................................287
7.4 物化视图的更新 ....................................................................................................288
7.5 物化视图允许的操作 ...........................................................................................288
7.6 物化视图日志的定义 ...........................................................................................288
7.7 物化视图日志的删除 ...........................................................................................290
7.8 物化视图的限制 ....................................................................................................290
7.8.1 物化视图的一般限制 ....................................................................................290
7.8.2 物化视图的分类 ............................................................................................290
7.8.3 快速刷新通用约束 ........................................................................................291
7.8.4 物化视图信息查看 ........................................................................................291
第 8 章 函数 ............................................................................................................293
8.1 数值函数 ....................................................................................................................298
8.2 字符串函数 ................................................................................................................311
8.3 日期时间函数 ............................................................................................................332
8.4 空值判断函数 ............................................................................................................351
8.5 类型转换函数 ............................................................................................................352
8.6 杂类函数 ....................................................................................................................355
第 9 章 一致性和并发性 ........................................................................................358
9.1 DM 事务相关语句 ......................................................................................................358
9.1.1 事务的开始 ....................................................................................................358
9.1.2 事务的结束 ....................................................................................................358
9.1.3 保存点相关语句 ............................................................................................359
9.1.4 设置事务隔离级及读写特性 ........................................................................360
9.2 DM 手动上锁语句 ......................................................................................................361
第 10 章 外部函数 ..................................................................................................364
10.1 C 外部函数 ..............................................................................................................364
10.1.1 生成动态库 .................................................................................................364
10.1.2 C 外部函数创建 ..........................................................................................366
10.1.3 举例说明 .....................................................................................................367
10.2 JAVA 外部函数 .......................................................................................................369
10.2.1 生成 jar 包 ................................................................................................370
10.2.2 JAVA 外部函数创建 ..................................................................................370
10.2.3 举例说明 .....................................................................................................371
10.3 AP 使用说明 ............................................................................................................372
第 11 章 包 .............................................................................................................373
11.1 创建包 ......................................................................................................................373
11.1.1 创建包规范 .................................................................................................373
11.1.2 创建包主体 .................................................................................................374
11.2 重编译包 ..................................................................................................................376
11.3 删除包 ......................................................................................................................376
11.3.1 删除包规范 .................................................................................................376
11.3.2 删除包主体 .................................................................................................377
11.4 应用实例 ..................................................................................................................377
第 12 章 类类型 ......................................................................................................381
12.1 普通 CLASS 类型 .....................................................................................................381
12.1.1 声明类 .........................................................................................................382
12.1.2 实现类 .........................................................................................................383
12.1.3 重编译类 .....................................................................................................385
12.1.4 删除类 .........................................................................................................386
12.1.5 类的使用 .....................................................................................................386
12.2 JAVA CLASS 类型 .................................................................................................388
12.2.1 定义 JAVA 类 ..............................................................................................389
12.2.2 重编译 JAVA 类 ..........................................................................................391
12.2.3 删除 JAVA 类 ..............................................................................................391
12.2.4 类的使用 .....................................................................................................391
第 13 章自定义类型 ................................................................................................393
13.1 创建类型 ..................................................................................................................393
13.2 创建类型体 ...............................................................................................................394
13.3 重编译类型 ...............................................................................................................395
13.4 删除类型 ...................................................................................................................395
13.4.1 删除类型 ......................................................................................................396
13.4.2 删除类型体 ..................................................................................................396
13.5 自定义类型的使用 ...................................................................................................396
13.5.1 使用规则 .....................................................................................................396
13.5.2 应用实例 .....................................................................................................396
第 14 章 触发器 ......................................................................................................398
14.1 触发器的定义 ..........................................................................................................398
14.1.1 表触发器 ......................................................................................................398
14.1.2 事件触发器 ..................................................................................................408
14.1.3 时间触发器 ..................................................................................................418
14.2 触发器替换 ..............................................................................................................419
14.3 设计触发器的原则 ...................................................................................................419
14.4 触发器的删除 ..........................................................................................................420
14.5 禁止和允许触发器 ..................................................................................................420
14.6 触发器的重编 ..........................................................................................................421
14.7 触发器应用举例 ......................................................................................................421
14.7.1 使用触发器实现审计功能 .........................................................................422
14.7.2 使用触发器维护数据完整性 ......................................................................422
14.7.3 使用触发器保障数据安全性 ......................................................................423
14.7.4 使用触发器生成字段默认值 ......................................................................424
第 15 章 同义词 ......................................................................................................426
15.1 创建同义词 ..............................................................................................................426
15.2 删除同义词 ..............................................................................................................427
第 16 章 外部链接 ..................................................................................................429
16.1 创建外部链接 ..........................................................................................................429
16.2 删除外部链接 ..........................................................................................................433
16.3 使用外部链接 ..........................................................................................................434
第 17 章 闪回查询 ..................................................................................................435
17.1 闪回查询子句 ..........................................................................................................435
17.2 闪回版本查询 ..........................................................................................................437
17.3 闪回事务查询 ..........................................................................................................439
第 18 章 JSON.........................................................................................................440
18.1 数据类型 ...................................................................................................................440
18.1.1 string......................................................................................................440
18.1.2 number......................................................................................................441
18.1.3 true、false...........................................................................................441
18.1.4 null...........................................................................................................443
18.1.5 object......................................................................................................444
18.1.6 array ........................................................................................................444
18.2 函数 ..........................................................................................................................444
18.2.1 json_value ............................................................................................444
18.2.2 json_query ............................................................................................445
18.2.3 函数参数详解 ...........................................................................................446
18.3 使用 IS JSON/IS NOT JSON 条件 ...................................................................448
18.4 视图 ...........................................................................................................................451
18.4.1 视图使用说明 ..............................................................................................451
18.4.2 DBA_JSON_COLUMNS................................................................................451
18.4.3 USER_JSON_COLUMNS .............................................................................452
18.4.4 ALL_JSON_COLUMNS................................................................................452
18.5 一个简单的例子 .......................................................................................................452
第 19 章 高级日志 ..................................................................................................455
19.1 简介 ..........................................................................................................................455
19.2 使用须知 ..................................................................................................................455
19.3 语法 ..........................................................................................................................455
19.3.1 管理日志辅助表 .........................................................................................455
19.3.2 使用日志辅助表的规则与约束 ..................................................................456
19.3.3 日志辅助表结构 .........................................................................................456
19.3.4 系统过程 .....................................................................................................457
19.4 使用高级日志同步数据的原则 ..............................................................................457
19.5 应用实例 ..................................................................................................................459
19.5.1 创建不带主键的源表 .................................................................................459
19.5.2 创建带主键的源表 .....................................................................................462
附录 1 关键字和保留字 .........................................................................................465
附录 2 SQL 语法描述说明 ....................................................................................469
附录 3 系统存储过程和函数 .................................................................................472
1) INI 参数管理 ..............................................................................................................472
2) 系统信息管理 ...............................................................................................................477
3) 备份恢复管理 ...............................................................................................................491
4) 定时器管理 ...................................................................................................................521
5) 数据复制管理 ...............................................................................................................524
6) 模式对象相关信息管理 ...............................................................................................533
7) 数据守护管理 ...............................................................................................................543
8) MPP 管理 ......................................................................................................................548
9) 日志与检查点管理 .......................................................................................................551
10) 数据库重演 ................................................................................................................552
11) 统计信息 ....................................................................................................................553
12) 资源监测 ....................................................................................................................560
13) 类型别名 ....................................................................................................................570
14) 杂类函数 ....................................................................................................................572
15) 编目函数调用的系统函数 .........................................................................................583
16) BFILE.........................................................................................................................593
17) HUGE 表备份还原 ......................................................................................................593
18) 定制会话级 INI 参数 ...............................................................................................595
19) 为 SQL 指定 HINT......................................................................................................597
20) 时区设置 ....................................................................................................................599
书名:《Java开发实战1200例(第I卷)》(清华大学出版社.李钟尉,陈丹丹)
PDF格式扫描版,全书分为24章,共817页。2011年1月出版。
全书压缩打包成4部分,这是第3部分
注:本系列图书的第I、II卷再版时均相应改名为《xxx开发实例大全》(基础卷)及(提高卷),但内容基本无变化,需要的童鞋可自由匹配查找。
《Java开发实战1200例》分为I、II两卷共计1200个例子,包括了开发中各个方面最常用的实例,是目前市场上实例最全面的开发类图书;书中实例来源于多位工程师的多年积累,具有很强的实用性。
本书是第II卷,以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行桌面程序开发各个方面的知识和技巧,主要包括Java语法与面向对象技术、Java高级应用、窗体与控件应用、文件操作典型应用和数据库应用。全书分5篇24章,共计603个实例和603个经验技巧。每个实例都是经过笔者精心筛选的,具有很强的实用性,其中一些实例是开发人员难于寻觅的解决方案。 本书两卷共计1200个例子,包括了开发中各个方面最常用的实例,是目前市场上实例最全面的开发类图书;本书实例来源于多位工程师的多年积累,具有很强的实用性。
本书非常适合Java的初学者,如高校学生、求职人员作为练习、速查、学习使用,也适合Java程序员参考、查阅。
第1篇 Java语法与面向对象技术
第1章 开发环境的应用 2
1.1 Java环境 3
实例001 下载JDK开发工具包 3
实例002 把JDK工具包安装到指定磁盘 4
实例003 设置JDK的环境变量 6
实例004 验证Java开发环境 7
实例005 下载并安装JRE执行环境 8
实例006 编程输出星号组成的等腰三角形 9
1.2 开发工具 11
实例007 下载最新的Eclipse 11
实例008 为最新的Eclipse安装中文语言包 12
实例009 活用Eclipse的工作空间 14
实例010 在Eclipse项目中编程输出字符表情 15
实例011 为Eclipse添加新的JDK环境 17
实例012 设置Eclipse中文API提示信息 18
实例013 为项目添加类库 20
实例014 使当前项目依赖另一个项目 21
1.3 界面设计器 22
实例015 安装界面设计器 22
实例016 设计Windows系统的运行对话框
界面 23
实例017 设计计算器程序界面 26
实例018 设计关于进销存管理系统的界面 27
第2章 Java基础应用 29
2.1 基本语法 30
实例019 输出错误信息与调试信息 30
实例020 从控制台接收输入字符 31
实例021 重定向输出流实现程序日志 31
实例022 自动类型转换与强制类型转换 33
2.2 运算符 34
实例023 加密可以这样简单(位运算) 34
实例024 用三元运算符判断奇数和偶数 35
实例025 更精确地使用浮点数 35
实例026 不用乘法运算符实现2×16 37
实例027 实现两个变量的互换(不借助
第3个变量) 37
2.3 条件语句 38
实例028 判断某一年是否为闰年 38
实例029 验证登录信息的合法性 39
实例030 为新员工分配部门 40
实例031 用Switch语句根据消费金额计算折扣 41
实例032 判断用户输入月份的季节 42
2.4 循环控制 43
实例033 使用while与自增运算符循环遍历
数组 43
实例034 使用for循环输出杨辉三角 43
实例035 使用嵌套循环在控制台上输出
九九乘法表 44
实例036 用while循环计算1+1/2!+1/3!…1/20! 45
实例037 for循环输出空心的菱形 46
实例038 foreach循环优于for循环 47
实例039 终止循环体 48
实例040 循环体的过滤器 49
实例041 循环的极限 50
第3章 数组与集合的应用 51
3.1 数组演练 52
实例042 获取一维数组最小值 52
实例043 将二维数组中的行列互换 53
实例044 利用数组随机抽取幸运观众 54
实例045 用数组设置JTable表格的列名与列宽 55
3.2 数组操作 57
实例046 数组的下标界限 57
实例047 按钮控件数组实现计数器界面 58
实例048 复选框控件数组 59
实例049 用数组反转字符串 60
3.3 数组排序与查询 61
实例050 使用选择排序法 61
实例051 使用冒泡排序法 62
实例052 使用快速排序法 64
实例053 使用直接插入法 65
实例054 使用sort方法对数组进行排序 67
实例055 反转数组中元素的顺序 68
3.4 常用集合的使用 69
实例056 用动态数组保存学生姓名 69
实例057 用List集合传递学生信息 70
实例058 用TreeSet生成不重复自动排序
随机数组 71
实例059 Map映射集合实现省市级联选择框 73
第4章 字符串处理技术 75
4.1 格式化字符串 76
实例060 把数字格式化为货币字符串 76
实例061 格式化当前日期 77
实例062 货币金额大写格式 78
实例063 String类格式化当前日期 80
实例064 字符串大小写转换 82
实例065 字符与Unicode码的转换 83
4.2 辨别字符串 84
实例066 判断用户名是否正确 84
实例067 用户名排序 85
实例068 判断网页请求与FTP请求 86
实例069 判断文件类型 87
实例070 判断字符串是否为数字 89
实例071 验证IP地址的有效性 90
实例072 鉴别非法电话号码 91
4.3 操作字符串 92
实例073 根据标点符号对字符串进行分行 92
实例074 将字符串的每个字符进行倒序输出 94
实例075 获取字符串中汉字的个数 94
实例076 批量替换某一类字符串 95
实例077 把异常与错误信息显示到窗体中 97
实例078 从字符串中分离文件路径、
文件名及扩展名 98
实例079 判断手机号的合法性 99
实例080 用字符串构建器追加字符 100
实例081 去掉字符串中的所有空格 101
实例082 汉字与区位码的转换 102
第5章 面向对象技术应用 103
5.1 Java中类的定义 104
实例083 自定义图书类 104
实例084 温度单位转换工具 105
实例085 域的默认初始化值 106
实例086 编写同名的方法 107
实例087 构造方法的应用 108
5.2 修饰符的使用 109
实例088 单例模式的应用 109
实例089 祖先的止痒药方 110
实例090 统计图书的销售量 111
实例091 汉诺塔问题求解 112
实例092 不能重写的方法 113
5.3 包装类的使用 114
实例093 将字符串转换成整数 114
实例094 整数进制转换器 115
实例095 查看数字的取值范围 116
实例096 ASCII编码查看器 117
实例097 Double类型的比较 118
5.4 面向对象的特征 119
实例098 经理与员工的差异 119
实例099 重写父类中的方法 121
实例100 计算几何图形的面积 122
实例101 提高产品质量的方法 123
实例102 简单的汽车销售商场 124
5.5 Object类的应用 126
实例103 两只完全相同的宠物 126
实例104 简化equals()方法的重写 127
实例105 重新计算对象的哈希码 129
实例106 简化hashCode()方法的重写 130
实例107 使用字符串输出对象 132
实例108 简化toString()方法的重写 133
5.6 克隆与序列化 134
实例109 Java对象的假克隆 134
实例110 Java对象的浅克隆 135
实例111 Java对象的深克隆 137
实例112 序列化与对象克隆 139
实例113 深克隆效率的比较 141
实例114 transient关键字的应用 143
5.7 接口和内部类 145
实例115 使用sort()方法排序 145
实例116 简化compareTo()方法的重写 146
实例117 策略模式的简单应用 148
实例118 适配器模式的简单应用 149
实例119 普通内部类的简单应用 151
实例120 局部内部类的简单应用 152
实例121 匿名内部类的简单应用 153
实例122 静态内部类的简单应用 154
第2篇 Java高级应用
第6章 多线程技术 158
6.1 线程的基础 159
实例123 新建无返回值的线程 159
实例124 查看线程的运行状态 160
实例125 查看JVM中的线程名 161
实例126 查看和修改线程名称 163
实例127 查看和修改线程优先级 165
实例128 使用守护线程 166
实例129 休眠当前线程 167
实例130 终止指定线程 169
实例131 线程的插队运行 170
6.2 线程的同步 171
实例132 非同步的数据读写 171
实例133 使用方法实现线程同步 172
实例134 使用代码块实现线程同步 174
实例135 使用特殊域变量实现线程同步 175
实例136 使用重入锁实现线程同步 176
实例137 使用线程局部变量实现线程同步 177
实例138 简单的线程通信 179
实例139 简单的线程死锁 180
实例140 解决线程的死锁问题 182
6.3 线程的进阶 183
实例141 使用阻塞队列实现线程同步 183
实例142 新建有返回值的线程 184
实例143 使用线程池优化多线程编程 186
实例144 Object类中线程相关的方法 187
实例145 哲学家就餐问题 189
实例146 使用信号量实现线程同步 190
实例147 使用原子变量实现线程同步 191
实例148 使用事件分配线程更新Swing控件 193
实例149 使用SwingWorker类完成耗时操作 194
第7章 反射与异常处理 195
7.1 反射的基础 196
实例150 实例化Class类的5种方式 196
实例151 获得Class对象表示实体的名称 197
实例152 查看类的声明 198
实例153 查看类的成员 199
实例154 按继承层次对类排序 201
实例155 查看内部类信息 202
7.2 反射的进阶 203
实例156 动态设置类的私有域 203
实例157 动态调用类中的方法 204
实例158 动态实例化类 205
实例159 创建长度可变的数组 206
实例160 利用反射重写toString()方法 208
实例161 反射与动态代理 209
7.3 常见的未检查型异常 210
实例162 算数异常 210
实例163 数组存值异常 211
实例164 数组下标越界异常 212
实例165 空指针异常 213
7.4 常见的已检查型异常 214
实例166 类未发现异常 214
实例167 非法访问异常 215
实例168 文件未发现异常 216
实例169 数据库操作异常 217
7.5 处理异常 218
实例170 方法中抛出异常 218
实例171 方法上抛出异常 219
实例172 自定义异常类 220
实例173 捕获单个异常 221
实例174 捕获多个异常 222
第8章 枚举与泛型的应用 223
8.1 枚举使用的简介 224
实例175 查看枚举类型的定义 224
实例176 枚举类型的基本特性 225
实例177 增加枚举元素的信息 226
实例178 选择合适的枚举元素 227
实例179 高效的枚举元素集合 228
实例180 高效的枚举元素映射 229
实例181 遍历枚举接口的元素 230
实例182 简单的文件合并工具 231
8.2 泛型使用的简介 233
实例183 自定义非泛型栈结构 233
实例184 使用泛型实现栈结构 234
实例185 自定义泛型化数组类 235
实例186 泛型方法与数据查询 236
实例187 泛型化方法与最小值 238
实例188 泛型化接口与最大值 239
实例189 使用通配符增强泛型 240
实例190 泛型化的折半查找法 241
第9章 编程常用类 343
9.1 Calendar类的使用 244
实例191 简单的数字时钟 244
实例192 简单的电子时钟 245
实例193 简单的模拟时钟 246
实例194 简单的公历万年历 248
实例195 查看生日相关信息 249
9.2 SimpleDateFormat与TimeZone
类的使用 250
实例196 日期格式有效性判断 250
实例197 常见日期格式使用 252
实例198 查看本地时区 253
实例199 简单的时区转换工具 254
9.3 System类的使用 255
实例200 查看常用系统属性 255
实例201 重定向标准输出 256
实例202 计算程序运行时间 257
实例203 从控制台输入密码 258
9.4 Math类的使用 259
实例204 角度和弧度的转换 259
实例205 三角函数的使用 260
实例206 反三角函数的使用 261
实例207 双曲函数的使用 262
实例208 指数与对数运算 263
9.5 其他常用类的使用 264
实例209 高精度整数运算 264
实例210 高精度浮点运算 265
实例211 七星彩号码生成器 266
实例212 大乐透号码生成器 267
实例213 监视JVM内存状态 268
实例214 启动默认文本工具 269
实例215 简单的截图软件 270
第10章 Commons组件 272
10.1 Commons Lang组件简介 273
实例216 数组元素的增加 273
实例217 数组元素的删除 274
实例218 生成随机字符串 275
实例219 序列化与反序列化 276
实例220 分数的常见运算 277
实例221 整数取值范围判断 279
10.2 Commons Math组件简介 280
实例222 描述统计学应用 280
实例223 绘制简单直方图 281
实例224 一元线性回归计算 282
实例225 实数矩阵的运算 283
实例226 复数的常见运算 284
实例227 T分布常用计算 285
10.3 Commons IO组件简介 286
实例228 简化文件(夹)删除 286
实例229 简化文件(夹)复制 287
实例230 简化文件(夹)排序 288
实例231 简化文件(夹)过滤 289
实例232 简化文件的读写操作 290
10.4 Commons BeanUtils组件简介 291
实例233 设置JavaBean简单属性 291
实例234 设置JavaBean级联属性 293
实例235 动态生成JavaBean 295
实例236 复制JavaBean属性 296
实例237 动态排序JavaBean 298
10.5 其他Commons组件简介 299
实例238 优雅的JDBC代码 299
实例239 结果集与Bean列表 301
实例240 编写MD5查看器 302
实例241 基于Base64编码 304
实例242 基于Base64解码 305
实例243 发送简单的Email 306
实例244 发送带附件的Email 308
实例245 读取XML文件属性 310
第3篇 窗体与控件应用
第11章 窗体设计 314
11.1 设置窗体位置 315
实例246 控制窗体加载时的位置 315
实例247 设置窗体在屏幕中的位置 315
实例248 从上次关闭位置启动窗体 316
实例249 始终在桌面最顶层显示的窗体 317
11.2 设置窗体大小 319
实例250 设置窗体大小 319
实例251 根据桌面大小调整窗体大小 320
实例252 自定义最大化、最小化和关闭按钮 321
实例253 禁止改变窗体的大小 323
11.3 设置窗体的标题栏 324
实例254 指定窗体标题栏图标 324
实例255 拖动没有标题栏的窗体 325
实例256 取消窗体标题栏与边框 326
实例257 设置闪烁的标题栏 328
11.4 设置窗体的背景 329
实例258 设置窗体背景颜色为淡蓝色 329
实例259 实现带背景图片的窗体 330
实例260 使背景图片自动适应窗体的大小 331
实例261 背景为渐变色的主界面 332
实例262 随机更换窗体背景 334
11.5 窗体形状及应用 335
实例263 椭圆形窗体界面 335
实例264 钻石形窗体 336
实例265 创建透明窗体 337
11.6 对话框 338
实例266 模态对话框与非模态对话框 338
实例267 信息提示对话框 340
实例268 设置信息提示对话框的图标 341
实例269 文件选择对话框指定数据库备份文件 342
实例270 指定打开对话框的文件类型 343
实例271 文件的保存对话框 344
实例272 为保存对话框设置默认文件名 346
实例273 支持图片预览的文件选择对话框 347
实例274 颜色选择对话框 348
实例275 信息输入对话框 350
实例276 定制信息对话框 350
11.7 MDI窗体的使用 352
实例277 创建内部子窗体 352
实例278 使子窗体最大化显示 353
实例279 对子窗体进行平铺排列 354
实例280 禁用MDI窗体控制栏中的“最大化”
按钮 355
第12章 窗体特效 357
12.1 让窗体更有活力 358
实例281 右下角弹出信息窗体 358
实例282 淡入淡出的窗体 359
实例283 窗体顶层的进度条 361
实例284 设置窗体的鼠标光标 362
实例285 窗体抖动 363
实例286 窗体标题显示计时器 364
实例287 动态展开窗体 365
实例288 仿QQ隐藏窗体 366
实例289 窗体百叶窗登场特效 367
实例290 关闭窗体打开网址 368
12.2 窗体与控件外观 369
实例291 Nimbus外观 369
实例292 本地系统外观 370
实例293 分割的窗体界面 371
实例294 圆周运动的窗体 373
第13章 基本控件应用 375
13.1 顶层容器的应用 376
实例295 框架容器的背景图片 376
实例296 更多选项的框架容器 377
实例297 拦截事件的玻璃窗格 378
实例298 简单的每日提示信息 379
实例299 震动效果的提示信息 380
13.2 布局管理器应用 382
实例300 边框布局的简单应用 382
实例301 流式布局的简单应用 383
实例302 网格布局的简单应用 384
实例303 制作圆形布局管理器 385
实例304 制作阶梯布局管理器 386
13.3 输入控件的应用 387
实例305 可以打开网页的标签 387
实例306 密码域控件的简单应用 389
实例307 给文本域设置背景图片 390
实例308 给文本区设置背景图片 391
实例309 简单的字符统计工具 392
13.4 选择控件的应用 393
实例310 能预览图片的复选框 393
实例311 简单的投票计数软件 394
实例312 单选按钮的简单应用 395
实例313 能显示图片的组合框 396
实例314 使用滑块来选择日期 398
13.5 菜单控件的应用 400
实例315 模仿记事本的菜单栏 400
实例316 自定义纵向的菜单栏 401
实例317 复选框与单选按钮菜单 402
实例318 包含图片的弹出菜单 404
实例319 工具栏的实现与应用 405
13.6 其他技术的应用 406
实例320 自定义软件安装向导 406
实例321 查看系统支持的外观 407
实例322 制作软件的闪屏界面 408
实例323 自定义系统托盘图标 410
实例324 使用撤销与重做功能 412
第14章 复合数据类型控件应用 414
14.1 列表的简单应用 415
实例325 修改列表项显示方式 415
实例326 修改列表项选择模式 416
实例327 列表项的全选与不选 417
实例328 列表元素与提示信息 419
实例329 监听列表项单击事件 420
实例330 监听列表项双击事件 421
14.2 列表的高级应用 422
实例331 实现自动排序的列表 422
实例332 列表项的增加与删除 423
实例333 查找特定的列表元素 425
实例334 包含边框的列表元素 426
实例335 包含图片的列表元素 427
实例336 可以预览字体的列表 428
14.3 表格的简单应用 430
实例337 表头与列的高度设置 430
实例338 调整表格各列的宽度 431
实例339 设置表格的选择模式 433
实例340 为表头增添提示信息 434
实例341 单元格的粗粒度排序 436
实例342 实现表格的查找功能 437
14.4 表格的高级应用 438
实例343 在表格中应用组合框 438
实例344 删除表格中选中的行 440
实例345 实现表格的分页技术 442
实例346 为单元格绘制背景色 444
实例347 实现表格的栅栏效果 445
实例348 单元格的细粒度排序 446
14.5 树控件简单应用 448
实例349 编写中国省市信息树 448
实例350 树控件常用遍历方式 449
实例351 自定义树节点的图标 451
实例352 监听节点的选择事件 452
实例353 设置树控件选择模式 453
实例354 查看节点的各种状态 455
14.6 树控件高级应用 456
实例355 在树控件中增加节点 456
实例356 在树控件中删除节点 458
实例357 在树控件中查找节点 459
实例358 自定义树节点的外观 460
实例359 为树节点增加提示信息 463
实例360 双击编辑树节点功能 464
第15章 其他高级控件应用 466
15.1 JTextPane控件的应用 467
实例361 自定义文档标题的样式 467
实例362 文档中显示自定义图片 468
实例363 检查代码中的括号是否匹配 469
实例364 描红显示100以内的质数 471
15.2 JEditorPane控件的应用 472
实例365 自定义RTF文件查看器 472
实例366 编写简单的浏览器 474
实例367 支持超链接的浏览器 474
实例368 高亮用户指定的关键字 476
15.3 其他文本控件的应用 477
实例369 只能输入整数的文本域 477
实例370 强制输入合法的整数 478
实例371 使用微调控件调整时间 479
实例372 使用微调控件浏览图片 480
15.4 进度指示器的应用 481
实例373 显示完成情况的进度条 481
实例374 监听进度条的变化事件 482
实例375 进度监视器控件的应用 484
实例376 监视文件读入的进度 485
15.5 控件组织器的应用 487
实例377 分割面板的简单应用 487
实例378 为选项卡增加快捷键 488
实例379 为选项卡标题设置图标 489
实例380 记录选项卡的访问状态 490
第16章 控件特效与自定义控件 492
16.1 控件边框效果 493
实例381 实现标签控件的立体边框 493
实例382 实现按钮控件边框留白 494
实例383 实现文本域控件的浮雕化边框 495
实例384 为文本框控件添加LineBorder
线形边框 496
实例385 控件的纯色边框与图标边框 498
实例386 实现带标题边框的面板容器 499
实例387 指定字体的标题边框 501
实例388 嵌套的标题边框 502
实例389 带图标边框的标题边框 503
实例390 文本框的下划线边框 504
16.2 控件渲染让界面UI更灵活 506
实例391 支持图标的列表控件 506
实例392 在列表控件中显示单选按钮 507
实例393 列表控件折行显示列表项 508
实例394 使用图片制作绚丽按钮 510
实例395 实现按钮关键字描红 511
实例396 忙碌的按钮控件 512
实例397 实现透明效果的表格控件 513
实例398 在表格中显示工作进度百分比 515
实例399 在表格中显示图片 517
16.3 让控件活起来 518
实例400 鼠标经过时按钮放大效果 518
实例401 迟到的登录按钮 520
实例402 焦点按钮的缩放 521
实例403 标签文本的跑马灯特效 522
实例404 延迟生效的按钮 524
实例405 动态加载表格数据 525
16.4 自定义控件 526
实例406 石英钟控件 526
实例407 IP输入文本框控件 527
实例408 日历控件 530
实例409 平移面板控件 531
实例410 背景图面板控件 533
第4篇 文件操作典型应用
第17章 文件与文件夹操作 536
17.1 文件操作 537
实例411 修改文件属性 537
实例412 显示指定类型的文件 538
实例413 以树结构显示文件路径 540
实例414 查找替换文本文件内容 541
实例415 支持图片预览的文件选择对话框 543
实例416 设置Windows的文件属性 545
实例417 文件批量重命名 547
实例418 快速批量移动文件 549
实例419 删除磁盘中所有的.tmp临时文件 551
17.2 文件与数据库 553
实例420 提取数据库内容到文件 553
实例421 提取文本文件的内容到MySQL数据库 555
实例422 将图片文件保存到SQL Server数据库 556
实例423 显示数据库中的图片信息 558
实例424 提取技术网站数据到文件夹 559
实例425 读取文件路径到数据库 561
实例426 在数据库中建立磁盘文件索引 562
17.3 操作磁盘文件夹 564
实例427 窗体动态加载磁盘文件 564
实例428 删除文件夹中所有文件 565
实例429 创建磁盘索引文件 567
实例430 快速全盘查找文件 568
实例431 获取磁盘所有文本文件 570
实例432 网络文件夹备份 571
第18章 文件的读取、写入、整理和控制 573
18.1 文件的读取与写入 574
实例433 键盘录入内容保存到文本文件 574
实例434 将数组写入到文件中并逆序输出 575
实例435 利用StringBuffer避免文件的多次写入 576
实例436 合并多个txt文件 577
实例437 实现文件简单加密与解密 579
实例438 对大文件实现分割处理 581
实例439 将分割后的文件重新合并 583
实例440 读取属性文件的单个属性值 584
实例441 向属性文件中添加信息 585
实例442 在复制文件时使用进度条 586
实例443 从XML文件中读取数据 587
实例444 读取Jar文件属性 589
实例445 电子通讯录 590
18.2 实现文件整理 592
实例446 批量复制指定扩展名的文件 592
实例447 计数器小程序 594
实例448 将某文件夹中的文件进行分类存储 595
18.3 文件控制 597
实例449 利用StreamTokenizer统计文件的
字符数 597
实例450 在指定目录下搜索文件 598
实例451 序列化和反序列化对象 600
实例452 文件锁定 602
实例453 投票统计 603
第19章 文件压缩 605
19.1 Java实现文件压缩 606
实例454 压缩所有文本文件 606
实例455 压缩包解压到指定文件夹 607
实例456 压缩所有子文件夹 608
实例457 深层文件夹压缩包的释放 610
实例458 解决压缩包中文乱码 611
实例459 Apache实现文件解压缩 612
实例460 把窗体压缩成ZIP文件 613
实例461 解压缩Java对象 615
19.2 RAR文件压缩 616
实例462 文件压缩为RAR文档 616
实例463 解压缩RAR压缩包 619
实例464 文件分卷压缩 621
实例465 为RAR压缩包添加注释 623
实例466 获取压缩包详细文件列表 625
实例467 从RAR压缩包中删除文件 627
实例468 在压缩文件中查找字符串 628
实例469 重命名RAR压缩包中的文件 629
实例470 创建自解压RAR压缩包 631
实例471 设置RAR压缩包密码 632
19.3 数据压缩的网络应用 634
实例472 以压缩格式传输网络数据 634
实例473 压缩远程文件夹 637
实例474 压缩存储网页 638
第20章 操作办公文档 640
20.1 操作Word 641
实例475 把文本文件导入到Word中 641
实例476 浏览本地Word文件 642
实例477 将员工表插入到Word文档中 644
实例478 将员工照片插入到Word简历 645
实例479 将Word文档保存为HTML格式 646
20.2 操作Excel 647
实例480 将员工信息保存到Excel表中 647
实例481 通过Excel公式计算出商品表中的
总售价 649
实例482 将数据库表中的内容写入到Excel 651
实例483 将Excel表中的内容保存到数据库 653
实例484 将Excel文件转换为HTML格式 654
20.3 操作PDF 655
实例485 应用iText组件生成PDF 655
实例486 在窗体中显示PDF文件 657
实例487 应用PDF Renderer组件实现放大
PDF文件 658
实例488 应用PDF Renderer组件实现缩小
PDF文件 660
实例489 应用PDF Renderer组件实现抓手功能 661
实例490 全屏显示PDF文件 662
第5篇 数据库应用
第21章 SQL应用 666
21.1 排序和分组函数应用 667
实例491 对数据进行降序查询 667
实例492 对数据进行多条件排序查询 669
实例493 对统计结果进行排序 670
实例494 查询SQL Server数据库中的前3条
数据 671
实例495 查询SQL Server数据库中的后3
条数据 672
实例496 查询MySQL数据库中的前3条数据 673
实例497 查询MySQL数据库中的后3条数据 674
实例498 按照字母顺序对留学生表进行排序 675
实例499 按姓氏笔画排序 677
实例500 将汉字按音序排序 678
实例501 按列的编号排序 679
实例502 从表中随机返回记录 680
实例503 使用GROUP BY子句实现对数据的
分组统计 681
实例504 使用GROUP BY子句实现多表
分组统计 682
21.2 聚集函数与日期查询 683
实例505 利用SUM函数实现数据汇总 683
实例506 利用AVG函数实现计算平均值 684
实例507 利用MIN函数求数据表中的最小值 685
实例508 利用MAX函数求数据表中的最大值 686
实例509 利用COUNT函数求销售额大于某值的
图书种类 688
实例510 查询编程词典6月的销售量 689
实例511 查询与张静同一天入司的员工信息 690
实例512 使用IN谓词查询某几个时间的数据 692
实例513 日期查询中避免千年虫问题 693
21.3 大小比较与逻辑应用 694
实例514 在查询结果中不显示重复记录 694
实例515 使用NOT查询不满足条件的记录 695
实例516 使用between进行区间查询 697
实例517 列出销量表中的重复记录和记录条数 698
实例518 使用关系运算符查询某一时间段数据 699
实例519 计算两个日期之间的月份数 700
实例520 格式化金额 702
实例521 在查询语句中过滤掉字符串中的空格 703
第22章 数据库操作 705
22.1 通过JDBC-ODBC桥连接数据库 706
实例522 通过JDBC-ODBC桥连接SQL Server
2000数据库 706
实例523 JDBC-ODBC桥连接Access数据库 708
实例524 JDBC-ODBC桥与Oracle数据库
建立连接 710
22.2 JDBC技术连接数据库 711
实例525 通过JDBC连接SQL Server 2000
数据库 711
实例526 JDBC连接MySQL数据库 713
实例527 JDBC连接SQL Server 2005数据库 714
实例528 JDBC技术连接Oracle数据库 715
实例529 JDBC连接JavaDB数据库 716
22.3 数据库与数据表 717
实例530 列举SQL Server数据库下的数据表 717
实例531 列举MySQL数据库下的数据表 718
实例532 查看数据表结构 719
实例533 动态维护投票数据库 721
实例534 SQL Server数据备份 722
实例535 SQL Server数据恢复 725
实例536 MySQL数据备份 728
实例537 MySQL数据恢复 730
实例538 动态附加数据库 731
实例539 生成SQL数据库脚本 733
实例540 获取SQL Server数据表字段的描述信息 734
22.4 数据增加、更新与删除操作 736
实例541 将员工信息添加到数据表 736
实例542 添加数据时使用数据验证 737
实例543 插入用户登录日志信息 739
实例544 生成有规律的编号 740
实例545 生成无规律的编号 742
实例546 在插入数据时过滤掉危险字符 743
实例547 将用户选择的爱好以字符串形式保存
到数据库 744
实例548 将数据从一张表复制到另一张表 745
实例549 使用UNION ALL语句批量插入数据 746
实例550 更新指定记录 747
实例551 在删除数据时给出提示信息 748
实例552 将数据表清空 749
实例553 字符串大小写转换 750
第23章 数据查询 752
23.1 使用子查询 753
实例554 将子查询作为表达式 753
实例555 用子查询作为派生表 754
实例556 通过子查询关联数据 755
实例557 使用IN谓词限定查询范围 756
实例558 使用NOT IN子查询实现差集运算 758
实例559 使用NOT IN子查询实现反向查询 759
实例560 返回笛卡尔乘积 760
实例561 比较运算符引入子查询 761
实例562 在子查询中使用聚集函数 762
实例563 在删除数据时使用子查询 763
23.2 嵌套查询 764
实例564 查询平均成绩在85分以上的学生信息 764
实例565 查询本科部门经理月收入情况 766
实例566 在嵌套中使用EXISTS关键字 767
实例567 动态指定查询条件 768
23.3 连接查询 769
实例568 使用UNION运算符使学生档案归档 769
实例569 内连接获取指定课程的教师信息 771
实例570 左外连接查询员工信息 772
实例571 右外连接查询员工信息 773
实例572 多表外连接查询 774
实例573 完全连接查询 775
23.4 函数查询 777
实例574 在查询中使用patindex()函数进行
模糊查询 777
实例575 对查询结果进行格式化 778
实例576 在查询中使用字符串函数 780
实例577 在查询中使用ALL谓词 781
实例578 在查询中使用ANY谓词 782
实例579 使用UNION运算符消除重复的行 784
实例580 使用UNION ALL运算符保留重复的行 785
实例581 计算商品销售额所占的百分比 786
第24章 数据库高级应用 787
24.1 在Java程序中使用存储过程 788
实例582 调用存储过程实现用户身份验证 788
实例583 应用存储过程添加数据 789
实例584 调用加密存储过程 791
实例585 获取数据库中所有存储过程 792
实例586 修改存储过程 793
实例587 删除存储过程 795
24.2 使用触发器 796
实例588 应用触发器添加日志信息 796
实例589 在删除成绩表时将学生表中的数据删除 798
实例590 在程序中调用UPDATE触发器 799
实例591 获取数据库中的触发器名称 801
实例592 创建带有触发条件的触发器 802
24.3 使用批处理 803
实例593 使用批处理删除数据 803
实例594 使用批处理提升部门员工工资 805
实例595 将教师表中的数据全部添加到选课表 806
实例596 在批处理中使用事务 807
24.4 使用视图 809
实例597 创建视图 809
实例598 使用视图过滤不想要的数据 810
实例599 使用视图与计算数据 812
实例600 使用视图重新格式化检索出来的数据 813
实例601 获取数据库中的全部用户视图 814
实例602 修改视图 815
实例603 删除视图 816
使用SQL命令完成如下题目:
1、删除学生作业表的主键约束和外键约束。2、在学生作业表中添加学号和课程号的主键约束。3、在学生作业表中添加课程号的外键约束。4、创建触发器tr1,实现当修改学生表中的数据时,显示提示信息“学生表信息被修改了。”5、使用触发器tr2,实现当修改学生表中某个学生的学号时,对应学生作业表中的学号也要修改。6、查看学生表中已创建的触发器。
7、查看已创建的触发器tr1的内容。
8、删除学生表上的触发器tr1。...
针对前面实验建立的SPJ数据库,做如下操作。
1. 创建触发器tri1,实现当修改项目表J中的数据时,显示提示信息“项目表信息修改成功!”
CREATE TRIGGER tri1
ON J AFTER INSERT
PRINT'项目表信息修改成功!'
2. 使用触发器tri2,实现当修改
if update(recommend)
begin
update tb set commenddate=(getdate()) from tb inner join inserted on tb.vlistid=Inserted.vl
触发器是与表有关的数据库对象,可以在insert/update/delete之前或之后,触发并执行触发器中定义的SQL语句。触发器的这种特性可以协助应用在数据库端确保数据的完整性、日志记录、数据校验等操作。使用别名NEW和OLD来引用触发器中发生变化的记录内容,这与其他的数据库是相似的。现在触发器还只支持行级触发,不支持语句级触发。account_log日志表。...
会开车的仙人掌 · oracle数组拼接 - CSDN文库 1 周前 |
买醉的野马 · 怡保市简介 — 中华人民共和国驻槟城总领事馆 1 月前 |
小猫猫 · 利用ChatGPT对文章进行二创重写 - 阿小信的博客 6 月前 |
打盹的板栗 · 如何评价《子弹列车》这部电影? - 知乎 1 年前 |