相关文章推荐
FROM sysobjects WHERE xtype='u' ORDER BY name

  • 查询某数据库中的所有数据表及其数据总条数

    SELECT  a.name 数据表,
            b.rows 数据总条数
    FROM    sysobjects AS a
            INNER JOIN sysindexes AS b ON a.id = b.id
    WHERE   ( a.type = 'u' )
            AND ( b.indid IN ( 0, 1 ) )
    ORDER BY a.name,b.rows DESC;

  • 查询某数据库中的所有数据表及其数据总条数所占用的空间大小

    SELECT  OBJECT_NAME(id) 数据表,
            RTRIM(8 * dpages) + 'KB' 占用空间大小,
            rows 数据总条数
    FROM    sysindexes
    WHERE   indid = 1
    ORDER BY rows DESC ,
            数据表 ,
            reserved DESC;

  • 查询某数据库中的所有数据表 SELECT name 数据表FROM sysobjectsWHERE xtype='u'ORDER BY name 查询某数据库中的所有数据表及其数据总条数 SELECT a.name 数据表, b.rows 数据总条数FROM sysobjects AS a INNER JOIN sysindexes AS b ON a.id = b.idWHERE ( a.type = 'u' ) .
    窗体顶端 1. (单项选择题) 以下给出的计算机软件 ,(Windows2000、Word、Excel、Powerpoint )是微软公司Office 办公自动化软件,( )是常用的 数据库 开发平台软件。(此题2.0分) A、 CPU、ROM、DOS B、 Windows2000、Word、Excel、Powerpoint C、 D、 Access2000 、Visual Foxpro6.0 、SQL Server2000 2. (单项选择题) 按照计算机软件的分类,操作系统是一种( )。(此题2.0分) A、 系统软件 B、 应用软件 C、 源程序 D、 操作标准 3. (单项选择题) 计算机程序 ,用高级语言编写的程序经编译后产生的程序叫( ) 。(此题2.0分) A、 源程序 B、 目标程序 C、 连接程序 D、 运行程序 4. (单项选择题) 计算机存储系统 , 示信息存贮容量的单位2KB是容量大小是指( )。(此题2.0分) A、 1024*2 B、 1024*2 C、 2000 D、 2000 5. (单项选择题) 微型计算机 的80486或Pentium Pro指的是( )。(此题2.0分) A、 存贮容量 B、 运算速度 C、 CPU的类型 D、 显示器型号 6. (单项选择题) 以下给出的( )不是微机硬件系统的主要性能指标。(此题2.0分) A、 机器主频 B、 内存容量 C、 字长 D、 OS的性能 7. (单项选择题) 多媒体计算机配置 ,4倍速VCD光驱的读取速率是( )KB/s左右。(此题2.0分) A、 150 B、 300 C、 400 D、 600 8. (单项选择题) 某台连网计算机的IP地址为210.37.6.20,该IP地址属于( )地址。(此题2.0分) A、 A类地址 B、 B类地址 C、 C类地址 D、 D类地址 9. (单项选择题) 二进制数101,将其转换成八进制数是(11 ),转换成十六进制数又是( ) 。(此题2.0分) A、 9H B、 5H C、 6H D、 7H 10. (单项选择题) 以下( )不属于操作系统的软件。(此题2.0分) A、 Windows2000 B、 Netware C、 Access2000 D、 UNIX 11. (单项选择题) ( ) The basic unit of information in computer. It usually consists of eight binary bits.(此题2.0分) A、 Byte B、 Bit C、 Word D、 data 12. (单项选择题) 微机的开展是以( )的开展为核心。(此题2.0分) A、 内存 B、 硬盘 C、 主板 D、 微处理器 13. (单项选择题) 以下都属于计算机软件的选项有( ) 。(此题2.0分) A、 CPU、ROM、DOS 、CD-ROM B、 Windows、Word、Excel 、UNIX C、 D、 以上都不是软件 14. (单项选择题) 二进制数1011转换成十六进制数是( ) 。(此题2.0分) A、 10 B、 11 C、 A D、 B 15. (单项选择题) 数据 处理的最小单位是( )。(此题2.0分) A、 数据 B、 数据 元素 C、 数据 项 D、 数据 结构 16. (单项选择题) 建立 数据 的SQL关键词为( )(此题2.0分) A、 CREATE TABLE B、 CREATE VIEW C、 CREATE INDEX D、 ALTER TABLE 17. (单项选择题) 在关系 数据库 ,用来 示实体之间联系的是( )。(此题2.0分) A、 树结构 B、 网结构 C、 线性 D、 二维 18. (单项选择题) 算法的 空间 复杂度是指( )。(此题2.0分) A、 算法程序的长度 B、 算法程序 的指令条数 C、 算法程序所占的存储 空间 D、 算法执行过程 所需的存储 空间 19. (单项选择题) 根据国标规定,每个汉字在计算机内 占用 ( )存储。(此题2.0分) A、 一个字节 B、 二个字节 C、 三个字节 D、 四个字节 20. (单项选择题) 内聚强度最低的是( )。(此题2.0分) A、 偶然内聚 B、 功能内聚 C、 过程内聚 D、 时间内聚 21. (单项选择题) 一个完整的计算机系统包括( )。(此题2.0分) A、 计算机及其外部设备 B、 主机、键盘、显示器 C、 系统软件和应用软件 D、 硬件系统和软件系统 22. (单项选择题) 按照计算机软件的分类,操作系统是一种( )。(此题2.0分) A、 系统软件 B、 应用软件 C、 源程序 D、 操作标准 23. (单项选择题) 央处理器CPU是指( )(此题2.0分
    利用自定义属性,定义枚举值的详细文本 Web标准和ASP.NET - 第一部分 XHTML介绍 在ASP.NET页面 推荐使用覆写(Override)而不是事件处理(Event Handler) 常用编码工具类,支持base64,md5,des,crc32 也谈谈技术面试 在C#里把ArrayList转换为Array 或 把Array转换为ArrayList C# 2.0 在.NET 2.0 ,让你的组件也可以绑定 .NET20 一种简单的窗口控件UI状态控制方法 翻译MSDN文章 —— 泛型FAQ:最佳实践 Visual C# 3.0 新特性概览 C# 2.0会给我们带来什么 泛型技巧系列:如何提供类型参数之间的转换 C#2.0 - Object Pool 简单实现 Attributes in C# 手痒痒,也来个c# 2.0 object pool 泛型技巧系列:用泛型打造可复用的抽象工厂 体验.net2.0的优雅(四):Provider、策略、控制反转和依赖注入 泛型最佳实践 asp.net 2.0下嵌套masterpage页的可视化编辑 C# 2.0与泛型 动态调用对象的属性和方法——性能和灵活性兼备的方法 泛型技巧系列:用泛型打造可复用的抽象工厂 泛型技巧系列:如何提供类型参数之间的转换 .NET 2.0 泛型Quiz Visual Studio 2005体验泛型编程 C++ 泛型编程系列讲座之实施 泛型技巧系列:简单类型选择器 C# 泛型简介 我眼 的C#2.0新功能特性 泛型技巧系列:避免基类及接口约束 New Article 不该用Generics实现Abstract Factory的理由 C#2.0-泛型 C#2.0-extern C#2.0-可空类型 C#2.0-分部类 C#2.0-迭代器 C#2.0 的新增功能学习 泛型的序列化问题 .NET 2.0 泛型在实际开发 的一次小应用 C#2.0 Singleton 的实现 .Net Framwork 强类型设计实践 通过反射调用類的方法,屬性,字段,索引器(2種方法) ASP.NET: State Server Gems 完整的动态加载/卸载程序集的解决方案 从NUnit 理解.NET自定义属性的应用(转载) 如何在.NET 实现脚本引擎 (CodeDom篇) .NET的插件机制的简单实现 我对J2EE和.NET的一点理解 难分难舍的DSO(一) InternalsVisibleToAttribute,友元程序集访问属性 Essential .NET 读书笔记 [第一部分] NET FrameWork的Collections支持 .NET的反射在软件设计上的应用 关于跨程序集的反射 实现C#和VB.net之间的相互转换 深入剖析ASP.NET组件设计]一书第三章关于ASP.NET运行原理讲述的补白 asp.net 运行机制初探(httpModule加载) 利用反射来查看对象 的私有变量 关于反射 创建类型实例的两种方法 ASP.Net应用程序的多进程模型 NET委托:一个C#睡前故事 [推荐] - [原创] Microsoft .NET策略及框架概述 卸载Class? Web Form 如何实现web页面的提示保存功能 在ASP.Net 两种利用CSS实现多界面的方法 如何在客户端调用服务端代码 页面一postback,它就显示页面的最顶端,怎样让它定位在某一位置? 如何保证页面刷新后的滚动条位置 清除网页历史记录,屏蔽后退按钮! 如何传值在2个页面之间 :要求不刷新父页面,并且不能用Querystring传值 Asp.net地址转义(分析)加强版 Web的桌面提醒(Popup) Using the Popup Object Click button only once in asp.net 2.0 Coalesys PanelBar + R.a.d Treeview +Xml 构建的Asp.net 菜单和权限管理模块 突破屏蔽限制,自己的网站使劲弹新IE窗口 对页面SCROLLING的CSS不能生效原因 .Net IE使用WinForm控件的使用心得。 动态加载用户控件的组件!(终结MasterPages技术) 在ASP.NET 1.1下实现模板化站点的新思路 在ASP.Net 两种利用CSS实现多界面的方法 用于弹出ModalDialog进行 数据 选择的控件 使用.ashx文件处理IHttpHandler实现发送文本及二进制 数据 的方法 制作一个简单的多页Tab功能 一完美的关于请求的目录不存在而需要url重写的解决方案! 在C# 实现MSN消息框的功能 XmlHttp实现无刷新三联动ListBox 鼠标放在一个连接上,会显示图片(类似tooltip) 使用microsoft.web.ui.webcontrols的TabStrip与IFame组件,达到页的切换效果 HttpModule 实现 ASP.Net (*.aspx) 文简繁体的自动转换,不用修改原有的任何代码,直接部署即可! 服务器自定义开发二之客户端脚本回发 Web开发: 使用URL重写WEB主题切换 如何在Asp.Net1.1 实现页面模板(所谓的MasterPage技术) Tool Tip 示例(FILTER版) Tool Tip示例 (htc版) 一个.net发送HTTP 数据 实体的类 按键跳转以及按Enter以不同参数提交,及其他感应事件 动态控制Page页的Head信息 SubmitOncePage:解决刷新页面造成的 数据 重复提交问题 SharpRewriter:javascript + xml技术利用#实现url重定向 采用XHTML和CSS设计可重用可换肤的WEB站点 asp.net的网址重定向方法的比较:面向搜索引擎友好 也谈 ASP.NET 1.1 QueryString 的安全获取写法 ASP.NET运行模式:PageHandlerFactory 利用搜索引擎引用来高亮页面关键字 网站首页的自动语言切换 应用系统的多语言支持 (一) 应用系统的多语言支持 (二) 自动返回上次请求页面(小技巧) ASP.NET 2.0 ASP.NET 2.0 验证控件新的功能 DataGridView 如何在textbox列 限制输入。 ASP.NET 2.0构建动态导航的Web应用程序(TreeView和Menu ) 体验.net2.0的优雅(3) -- 为您的 SiteMap 添加 控制转发功能 GridView控件使用经验 ASP.NET 2.0:弃用 DataGrid 吧,有新的网格控件了! ASP.NET2.0控件一览---标准控件(1) ASP.NET2.0控件一览---标准控件(2) ASP.NET 2.0 使用webpart系列控件 ASP.NET 2.0 实现跨页提交 新控件、管理外观、布局及其它用户体验 ASP.NET 2.0 缓存技术 (原创) asp.net 2.0 的theme主题覆盖问题 asp.net 2.0 利用app_offline.htm功能 .NET 2.0 的字符串比较 小试ASP.NET 2.0的兼容性 为 asp.net 2.0 的菜单控件增加 target 属性 ASP.NET 2.0 的内部变化 常见的 ASP.NET 2.0 转换问题和解决方案 Asp.Net2.0无刷新客户端回调 体验.net 2.0 的优雅(1) -- 异步WebService调用 ASP.NET 2.0页面框架的几点新功能 ASP.NET 2.0 收集的小功能点 asp.net2.0 的webpart使用小记 2.0问题、错误解决办法 ASP.NET 2.0使用Web Part创建应用程序之二(共二) 体验 .net2.0 的优雅(2) -- ASP.net 主题和皮肤 NET2.0系列介绍(一).NET 2.0 Web 应用程序主题的切换 ASP.NET 2.0 Web 应用程序主题的切换 2.0正式版 callback的一些变化+使用示例(ASP.NET 2.0) Server Side ViewState 在服务器端存贮ViewState (ASP.NET 2.0) VS2005 ASP.NET本地化学习笔记&感受 在自定义Server Control 捆绑JS文件 Step by Step 深度解析Asp.Net2.0 的Callback机制 使用 Web 标准生成 ASP.NET 2.0 Web 站点 ASP.NET 2.0基于 SQLSERVER 2005的aspnetdb.mdf部署 ASP.NET 2.0 Security FAQs Asp.net 2.0功能体验,细节之Web控件(一) 隐藏控件 Asp.net 2.0功能体验,总体设计思想 Asp.net 2.0 WebPart使用经验点滴 革新:.NET 2.0的自定义配置文件体系初探 关于如何在ASP.NET 2.0 定制Expression Builders 怎么在ASP.NET 2.0 使用Membership asp.net 2.0-实现 数据 访问(1) ASP.NET 2.0 新特性 .NET 2.0里使用强类型 数据 创建多层应用 在MastPage 引用脚本资源 2.0正式版 callback的一些变化+使用示例(ASP.NET 2.0) asp.net 2.0 新特性 Visual Web Development 2005开发ASP.NET使用小技巧 ASP.NET 2.0 异步页面原理浅析 [1] [原] 自定义通用System.Web.UI.IHierarchicalDataSource简单实现 在 ASP.NET 2.0 创建 Web 应用程序主题 ASP.NET 2.0 数据 访问 ASP.NET 2.0:弃用 DataGrid 吧,有新的网格控件了! 将 ASP.NET 2.0 应用程序服务配置为使用 SQL Server 2000 或 SQL Server 2005 ASP.NET 2.0 数据 源控件 使用 ASP.NET 2.0 ObjectDataSource 控件 ASP.NET 2.0 的内部变化 使用SQL Cache Dependency 代替 Ibatisnet 提供的CacheModel ASP.NET 2.0 小心Profile命名冲突 使用ASP.NET 2.0 Profile存储用户信息[翻译] Level 200 [ASP.NET 2.0]PageParser.GetCompiledPageInstance 存在一个Bug 如何在DotNet 2的登录组件 检索用户的锁定状态及解锁? ASP.NET 2.0, 想说爱你不容易 SqlDataSource WEB控件:当DeleteCommandType= 遭遇 ASP.NET 2.0 只读 TextBox 回发后信息丢失的 bug asp.net2.0:扩展ImageButton控件定制自己需要的功能 ASP.NET 2.0 正式版 无刷新页面的开发(示例代码的补充) ASP.NET2.0 themes、Skins轻松实现网站换肤! ASP.NET 2.0 的代码隐藏和编译 ASP.NET 2.0 Language Swithcer and Theme Swicher 多语言转换和多样式主题转换 ASP.NET2.0 ObjectDataSource的使用详解(1) ASP.NET2.0 ObjectDataSource的使用详解(2) TextDataSource(1) — DataSourceControl内幕 TextDataSource(2) — 翠花,上“ 数据 ” ASP.NET2.0 ObjectDataSource的使用详解(3) ASP.NET2.0 快速入门 ----默认 的主题外观 数据库 开发 ADO.NET 通过DataTable获得 的主键 ADO.NET 2.0 操作实例 ADO.NET 2.0 大批量 数据 操作和多个动态的结果集 ADO.NET 2.0 异步处理 在ASP.NET 使用WINDOWS验证方式连接SQL SERVER 数据库 改进ADO.Net 数据库 访问方式 ASP.NET 2.0 绑定高级技巧 简单实用的DataSet更新 数据库 的类+总结 [ADO.NET]由 数据库 触发器引发的问题 为ASP.NET封装的SQL 数据库 访问类 DataTable.Select方法的性能问题 .NET 2.0里使用强类型 数据 创建多层应用 ADO.NET实用经验无保留曝光 有了System.Data.IDataReader,一切皆成 数据 理解DataSet的 数据 缓存机制 可按任意字段排序的分页存储过程(不用临时 的方法,不看全文会后悔) 常用sql存储过程集锦 存储过程 实现类似split功能(charindex) 通过 查询 系统 得到纵向的 结构 将 数据库 数据 生成Insert脚本的存储过程!!! 2分法-通用存储过程分页(top max模式)版本(性能相对之前的not in版本极大提高) 分页存储过程:排序反转分页法 优化后的通用分页存储过程 sql语句 一些Select检索高级用法 SQL server 2005 新增的排序函数及应用 根据基本 结构及其 数据 生成 INSERT ... 的 SQL 简便的MS SQL 数据库 内容 脚本 生成器 将 数据 生成SQL脚本的存储过程 直接从SQL语句问题贴子 数据 并生成建 语句的存储过程 从SQL 的一个 导出HTML文件 格 获取數据库 的前N条记录 几段SQL Server语句和存储过程 生成 数据 的脚本 最详细的SQL注入相关的命令整理 Oracle Oracle PL/SQL单行函数和组函数详解 mssql+oracle Oracle编程的编码规范及命名规则 Oracle 数据库 字典介绍 0RACLE的字段类型 CMT DEMO(容器管理事务演示) 事务隔离性的一些基础知识 在组件之间实现事务和异步提交事务(NET2.0) 在.NET访问MySql 数据库 时的几点经验! 自动代码生成器 关于能自定义格式的、支持多语言的、支持多 数据库 的代码生成器的想法 发布Oracle存储过程包c#代码生成工具(CodeRobot) New Folder XCodeFactory3.0完全攻略--序 XCodeFactory3.0完全攻略--基本思想 XCodeFactory3.0完全攻略--简单示例 XCodeFactory3.0完全攻略--IDBAccesser XCodeFactory2.0完全手册( ) XCodeFactory2.0完全手册(上) XCodeFactory3.0Beta1推出 ! SQL Server 2005 SQL Server 2005的几个新功能 在SQL Server 2005 解决死锁 在 SQL Server 2005 查询 结构及索引 sql server 2005 的DDL触发器 在 SQL Server 2005 使用 值函数来实现 空间 数据库 SQL Server 2005的30个最重要特点 同时安装sql2000和sql2005的经验 类如何与界面绑定 在Asp.net 如何用SQLDMO来获取SQL Server 的对象信息 使用Relations建立 之间的关系并却使用PagedDataSource类对DataList进行分页 通过作业,定时同步两个 数据库 SQLSERVER 高级注入技巧 利用反射实现ASP.NET控件和 数据 实体之间的双向绑定,并且在客户端自动验证输入的内容是否合法 asp.net报 解决方法 SQLDMO类的使用 SQL过程自动C#封装,支持从 到基本存储过程生成 使用SQLDMO控制 SQL Server 使用SQL-DMO实现定制SQL Scripts Create Tables and Build inserts from Tables by using Mygeneration Templates(Sql Server) C# 获取 数据库 某个某个 的创建脚本 DbHelperV2 - Teddy的通用 数据库 访问组件设计和思考 也论该不该在项目 使用存储过程代替SQL语句 如何使 数据库 更有弹性,更易于扩展 存储过程——天使还是魔鬼 如何获取MS SQLServer ,Oracel,Access 数据 字典信息 C# 利用GetOleDbSchemaTable获取 数据库 信息[原创] 如何解决ACCESS SELECT TOP语句竟然返回多条记录的问题? Asp.net 利用OleDb的GetOLEDBSchemaTable方法得到 数据库 架构信息 用于 Visual Studio .Net 的 IBM DB2 开发外接程序 第2章 并发操作的一致性问题 (2) Using sqlite with .NET Visual Studio 2005 的新 DataSet 特性 MySQL 和 .Net2.0配合使用 与DotNet 数据 对象结合的自定义 数据 对象设计 (二) 数据 集合与DataTable 与DotNet 数据 对象结合的自定义 数据 对象设计 (一) 数据 对象与DataRow ASP.NET 大结果集的分页[翻译] .net 2.0 访问Oracle --与Sql Server的差异,注意事项,常见异常 Ado.net 与NHibernate的关系? 动态创建 数据库 SQL Server 数据库 安全规划全攻略 .net通用 数据库 访问组件SQL Artisan应用简介1 在Framework1.0下同时连接 SqlServer 和Oracle的一些体会 XPath XPath最通俗的教程(ZZ) XPath 相对路径和绝对路径 XPath 简单语法 Asp.Net(C#)利用XPath解析XML文档示例 .Net框架下的XSLT转换技术简介 一个XSLT的简单例子 XSLXSLT板主题整理 xsl入门的好文章 新手学习XSL的好东西 XSL语法介绍 XSL学习心得 - 调用属性值 XSLT与XML转换的详细介绍 Web2.0时代,RSS你会用了吗?(技术实现总结) 知识集锦:三分钟全面了解 Blog 和 RSS C#+ASP.NET开发基于Web的RSS阅读器 ASP.NET RSS Toolkit(RSS工具) Serialize Your Deck with Positron [XML Serialization, XSD, C#] 如何用RSS技术升级您的网站 RSS技术在行业 的应用三案例 RSS的力量 为自己的网站添加RSS功能 建立自己的RSS asp.net+c#+sql生成rss2.0代码 如何获取远程RSS内容? C#如何实现读取RSS VC# 2005 Screen Saver Starter kit里的Rss处理类分析 使用XmlHttp与Javascript实现对RSS的读取 WEB BUILDER 的动态页面生成 WebBulider 的RSSWebpar — 建立自己的 RSS 阅读器 RSS 2.0规范 C#版简易RSS阅读器(新增读取OPML功能) C#版简易RSS阅读器 asp.net 页面 生成 RSS 2.0 提要 用 Ajax 和 RSS 攒个首页新闻 用RSS来整合内容以满足不同的需要 简单的在线RSS阅读器(原创) 用户自定义配置接点读取 通用方案 利用XmlDocument更新Xml文件 数据 XML的特征以及一些用途 如何创建一个XML文件,然后创建一个与之关联的样式 文件? Rss为什么会兴起?什么时候会被替代? 遍历指定文件夹下所有的xml文件并动态生成HTML页面 通过XML来远程抓娶图片的代码 .Net1.0和2.0下 soap序列化和binary序列化的比较 NET 书写XML的一种简单方法 适用于IE浏览器及非IE浏览器的xmlhttp脚本 用实例说明如何用JavaScript生成XML XML驱动开发 XamlReader.Load(): Build Up Your Own XamlPad 如何理解xslt 模板调用 Web Service 从WEB SERVICE 上返回大 数据 量的DATASET MSMQ,Enterprise Service, DotNet Remoting,Web Service 的优缺点 动态调用web服务 Web服务最佳实践(翻译) HTTP协议下用Web Service上传大文件的解决方案 与大家分享一些Web Service的经验 Web Service Security --- Introduction XML Web Service 安全性 SOA 设计原则和 Web 服务 数据 传输 解决内网通过代理服务器访问外网部署WebService报错问题“请求因 HTTP 状态 407 失败” 对象与状态 Application Session 如何得到Sessionid的值 Session研习笔记 Cookie cookie 学习总结 ViewState ASP.NET 小技巧:重写 ViewState 的存储目的地,以提高页面性能 由重写ViewState存储目的而想到的 [总结]关于在线用户列 的统计! Persistent Strategy (1) - 问题定义与实现 Persistent Strategy (2) - Xml序列化的应用 利用HttpModuler实现WEB程序同一时间只让一个用户实例登陆 DataGrid 简单实用的DATAGRID组件 为DataGrid创建自定义列控件(二) 为DataGrid创建自定义列控件(一) 为DataGrid创建自定义列控件(三) 在ASP.NET环境下完整的datagrid填充 数据 后界面动态显示填充方案 在dataGrid 拖动改变列宽度,在asp.net 用javascript实现dataGrid 头排序 存储过程DataGrid分页及注意点 在后代码里创建DataGrid控件 为DataGrid自定义分页添加自定义导航和分页信息 如何利用DataGrid纵向显示 数据 ? 如何用DataGrid实现类似DataList多列的效果 竖 转横 (支持多列) 竖 变横 (支持固定列) 通用分页控件(DataGrid,DataList,Repeater都可以用它来分页) 如何同时选择DataGrid的多行 DataGrid单元格移动变色,点击变色,双击取消颜色,排序. 分页管理器实现 oButton加入DataGrid模板列引起的问题。 将RadioButton加入到DataGrid模板列后单选简单实现 用c#实现将DataGrid 数据 导为microsoft office excel 2003 TreeView ASP.NET环境下完整的treeview使用类 C#加javaScripts实现选 树节点后显示节点内容(微软TreeView) treeview 的使用心得 FlyTreeView for ASP.NET 3.2 破解攻略 用Ajax技术让IE Web Control Tree View实现大 数据 量读取 我在使用C# Treeview与解析XML遇到的问题! TreeView父子联动效果保持节点状态一致 Asp.Net 2.0 TreeView的Checkbox级联操作 DataList Html控件 table动态改变颜色包括一个边框 功能超强的 格(上下左右移动,添加删除行列,导出) 用户控件开发 ASP.NET 服务器控件授权 为控件添加自定义属性和事件 让你的控件属性注释支持多语言 自定义UserControl的属性为什么不能在设计时显示在属性窗口 asp .net 服务器控件开发心得 今天你写控件了吗 --Asp.net服务器控件开发系列文章 汇总 将ASP.NET用户控件转化为自定义控件 TextBox 创建具有自验证功能的textbox控件 textbox上实现右键菜单 给FreeTextBox 3.0.5 添加上QQ和MSN 情 FreeTextBox 存在一个严重的安全漏洞 DOTNET2.0 的编辑器:WebHtmlEditor 1.5 Release提供在线演示和下载 FreeTextBox使用详解 (版本3.1.1) 弹出式选择文本控件 ASP.NET: Custom AutoCompleteTextBox WebControl [With Source Code] Button 水晶报 水晶报 数据 填充(一种推模式,两种拉模式)类库 RDLC报 (一) RDLC报 (二) 让asp.net默认的上传组件支持进度条反映 HtmlTextWriter学习笔记 用户控件例码 ASP.net下的前台日历控件源代码(不刷新页面) ASP.net下DataGrid的单项选择控件 个ASP.Net的DataGrid分页控件,在Oracle 数据库 下,每次只取当前页的 数据 ,不使用存储过程 自动获取当前日期下一周的年月日代码 asp.net下的日历控件源代码 写了一个live.com的Gadget——农历日历 令你心动的Asp.net 开发 的MessageBox控件 WebForm的MessageBox类 复合控件开发系列之一 年月日三联动下拉框 下拉日期控件 客户端计时器控件(clientTimer)的c#源码 在线考试系统 卷面计时的一点思考 GridView GridView 控件使用不完全指南! GridView 控件使用不完全指南!(续一) ASP.NET2.0 Gridview 数据 操作技巧 一套可嵌入或独立使用的翻页控件: WebPager(附源码) Web进度条的简单方案 ComponentArt WebUI3.0控件使用方法 在ASP.NET页面 使用SolpartMenu控件 共享两个做项目最常用功能操作的封装类 国内报 设计器的分析 基于Ajax的日期控件 缓存服务与性能优化 通过系统配置来提高ASP.NET应用程序的稳定性 通过系统配置来提高ASP.NET应用程序的稳定性(续) 异步加载图片,提高HTML性能 负载均衡环境下缓存处理 网站速度优化模块HttpCompressionModule [连载]Tuning .NET Performance [连载]Tuning .NET Performance [连载]Tuning .NET Performance 连载]Tuning .NET Performance 安全与验证 使用证书来做RSA非对称式加密 自已做的一个加密软件,超好用而且加密强度极高,公布源码 身份权限审核 使用URL参数+Controls层实现网站用户权限管理 系统分析 大家是怎样设计系统的多级权限控制的?? 多级权限设置请教。 基于角色的权限控制 AspNetForums 基于角色的权限控制 asp.net页面如何控制页面依据不同用户权限有不可见、可见、编辑 三种操作权限? 请问在SmartClient应用 ,如何做到科学的身份验证和权限分配?~~UP有分 做过权限管理和想做权限管理的人进来(附我的思路) 关于权限设计的探讨 Asp.net 基于Forms验证的角色验证授权 用户权限系统设计方案 权限控制系统的设计 统一用户及权限管理系统 权限系统:分散实现、关注变化 关于权限管理的系统的构思 EsbAOP应用--权限管理 asp.net能实现身份认证的EMAIL发送方法(c#版本) 单点登录(SSO)的核心--kerberos身份认证协议技术参考(一) 单点登录(SSO)的核心--kerberos身份认证协议技术参考(二) 单点登录(SSO)的核心--kerberos身份认证协议技术参考(三) 权限系统概要(收集,整理) membership,想说爱你不容易 蛙蛙推荐:web下的授权简单解决方案 将权限引入系统的探索 数据库 有效验证 浅谈在ASP.NET 数据 有效性校验的方法 XML Schema Validator Class JSClientValidator-客户端javascript验证新模式 如果做到安全的系统之验证用户输入. 查看贴子内容 CLI里面的秘密……(二)强命名、元 数据 以及文件结构(上半部分) Assembly学习心得 asp.net 保护网站不受用户上传文件的侵害 在设置窗体身份验证时设置个别页面不需要进行验证 基于Web应用程序的安全问题之一Cross-Site Scripting Vulnerabilities 基于强名称签名的代码访问保护及其改进 防止对 Visual Basic .NET 或 C# 代码进行反相工程 如何防止 DLL 被反编译 揭开.NET程序保护的秘密 如何建立有效的.Net软件注册保护机制 由浅至深,谈谈.NET混淆原理 (一) 由浅至深,谈谈.NET混淆原理 (二) 最简单的混淆 由浅至深 谈谈.NET混淆原理(三)-- 流程混淆 由浅至深 谈谈.NET混淆原理 (四) -- 反混淆(原理 + 工具篇) 由浅至深,谈谈.NET混淆原理 -- 五(MaxtoCode原理),六(其它保护方法) 看了下面那篇“Crack别人应用程序”的文章有感,简述.Net下的应用程序授权。 vs2003 设计强名称程序集并制作安装入GAC的MSI 无法破解的软件注册码算法 保护你的代码——谁动了我的组件? ASP.NET 的单点登录 Cookie 支持二级域名和FormsAuthentication 加强版 论电子签章(Electronic Signature)在C# 的实现方法 使用IHttpHandler防止非法链接 使用 Ildasm, ILasm, Peverify 来 Crack 别人写的应用程序。 ASP.NET2.0应用 定制安全凭证之实践篇 创建安全的ASP.NET虚拟主机 实现关于跨二级域名和1.1和2.0版.net Forms身份验证体制的问题和解决办法. Kerberos简介 在ASP.NET 防止注入攻击[翻译] 封装了一个极其易用的加密解密类,支持DES、三重DES、Rijndael、RC2、MD5、以及非对称加密算法RSA 学习一下 .net framework 有关安全的内容 学习一下 .net framework 有关安全的内容(续) 环境配置与部属 使用ASP.NET的跟踪服务 无ASPX文件部署(续) 无aspx文件部署 aspx->cs->dll 如何把用http访问的网页转换用https访问 一个配置IIS的问题 在Apache环境下成功的运行ASP.NET 关于通用配置管理模块的思考-续(用XmlDocument 还是DataSet) 在.net 使用强类型来读取配置信息 Asp.net网站的ClickOnce自动部署(1)-自动部署的内容 Asp.net网站的ClickOnce自动部署(2)-虚拟目录的配置 Asp.net网站的ClickOnce自动部署(3)-虚拟目录的配置 web.config文件自定义配置节的使用方法 模仿AppSettings进行web.config的自定义节读取[简单实用型] 关于无aspx文件部署,我的一些探索心得 .NET配置文件解析过程详解(二) Asynchronous Pluggable Protocols Microsoft CRM3.0 多服务器安装部署过程 解决w3wp.exe内存 占用 问题 实战1.1下Web.Config配置标记configSections 系统设计与项目管理 分层开发思想与小笼包 N层企业级架构模板 系统设计的一些原则 在UI层使用Domain逻辑的一些探讨 在C#程序 实现插件架构 组件设计实战--组件之间的关系 (Event、依赖倒置、Bridge) 逻辑设计的例子 一个.net的系统的AOP设计思路一——NHibernate和界面/对象映射层 设计和编写可复用的代码 基于工作流程系统日志生成业务流程模型 SVG + Javascript + ASP.NET + WebService开发楼宇管理系统(一) 系统分析员,让我头痛 .NET下的域对象持久模式 业务流程管理综述 动态工作流的设计 提升软件的用户体验 应用软件的合理性 架构(Architecture)和框架(Framework)杂谈 软件设计评价 软件设计评价(续) 理解架构师 架构师不是建筑师 MDA(模型驱动架构) 家庭财务总管--软件设计 应用系统架构设计-补全篇 对Web平台和软件架构的一些看法 关于多层设计想到的问题-涉及Nhibernate和Log4Net 谁拥有接口? Codd提出的RDBMS的12项准则 一个糟糕的设计 业务系统里面常见的方法接口设计 将UI和UI控制分离 DotNet软件开发框架 细节决定成败:业务拦截器 广告管理系统的UML分析与设计 软件的架构设计 框架不是框框—应用框架的基本思想 创建成功的工程 软件可行性分析 GIS系统与一个好的软件架构,Why not and how? 直观而简单的解决方案--软件设计的永恒追求 企业开发基础设施--序 企业开发基础设施--类厂服务 企业开发基础设施--事件通知服务 基于Visual C#的接口基础教程 基于C#的接口基础教程之一 基于C#的接口基础教程之二 基于C#的接口基础教程之三 基于C#的接口基础教程之四 基于C#的接口基础教程之五 基于C#的接口基础教程之六 基于C#的接口基础教程之七 一个代理的例子 关于委托事件的一两个很好的例子! 细说继承关系映射 面向对象与面向组件小议 C# 接口多重继承的注意事项 [ASP.NET入门随想四]吸星大法——页面的OO思想篇 如何在类 编写事件 OOD经验原则总结 [ASP.NET入门随想六]大航海家——OO思想的类间关系 接口跟基类的一点点感受 [ASP.NET入门随想七]主角与配角——OO思想的多态、接口与委托 Win32 安全的子类化 (1) Emit生成Property C# 类和接口的设计思想 数据库 设计 数据库 设计指南 使用Rose2003进行 数据库 建模并导入 SQLServer 2000的图解详细过程 聚合 的概念 UML视图 初学uml-(1) 类图和关系 UML学习-通过用例分析来确认需求 国际化组件的设计 Web应用的UML建模与.NET框架开发 基于UML的短信计费系统的分析与设计 基于UML的系统分析方法研究 UML的三大“硬伤” 系统约定:用UML描述工作流管理 使用Rose2003进行 数据库 建模并导入 SQLServer 2000的图解详细过程 项目开发总结报告 方案设计书 系统规格/需求规格说明/概要设计书范例 “一卡通”信息系统 数据库 设计初步探讨(原创) 某M1射频卡餐饮收费系统简单 数据 模型 广告发布统计实现的可行性分析阶段报告 应用软件部2005年年度工作总结 CPMS企业绩效考核管理系统 V1.1 介绍 吕震宇设计模式随笔系列 C#设计模式(1) C#设计模式(2) C#设计模式(3) C#设计模式(4)-Simple Factory C#设计模式(5)-Factory Method Pattern C#设计模式(6)-Abstract Factory Pattern C#设计模式(7)-Singleton Pattern C#设计模式(8)-Builder Pattern C#设计模式(9)-Prototype Pattern C#设计模式(10)-Adapter Pattern C#设计模式(11)-Composite Pattern C#设计模式(12)-Decorator Pattern C#设计模式(13)-Proxy Pattern 设计模式(14)-Flyweight Pattern 设计模式(15)-Facade Pattern 设计模式(16)-Bridge Pattern 设计模式(17)-Chain of Responsibility Pattern 设计模式(18)-Command Pattern 设计模式(19)-Observer Pattern 设计模式(20)-Visitor Pattern 设计模式(21)-Template Method Pattern 设计模式(22)-Strategy Pattern 设计模式随笔-蜡笔与毛笔的故事 设计模式随笔-从“有病”说起(工厂模式前传) 设计模式随笔-发大米喽 设计模式随笔-锦囊妙计 设计模式随笔-让众口不再难调 设计模式随笔-用奶箱订报纸 设计模式随笔-再论锦囊妙计 也说说“从Adapter模式到Decorator模式” 梦幻.Net设计模式 Dot Net设计模式—桥接模式 如何在实际工作 发现模式 设计模式能够解决的问题 设计模式不能做什么 Dot NET设计模式—抽象工厂 Dot NET设计模式—反射工厂 Dot Net 设计模式—简单工厂 Dot Net设计模式—工厂方法模式 Dot Net设计模式—生成器模式 Dot Net设计模式—原型模式 如何掌握并在实践 自如运用设计模式 Dot Net设计模式—单件模式 Dot Net设计模式—适配器模式 Dot Net设计模式—外观模式 Dot Net设计模式—适配器、桥接与外观三模式之间的关系 .NET反射、委托技术与设计模式 创建型模式之间的比较 用实例解说Dot Net设计模式——装饰模式 New Folder 设计模式原型模式(Prototype)- 面馆里的菜单 程序员的时间管理---做一个高效的程序员 设计模式-工厂模式(手工作坊到工业化的转变 c#实现) 设计模式-简单工厂模式(SimpleFactory-C#) 设计模式学习笔记(一) Terrylee 探索设计模式(五):工厂方法模式(Factory Method) 探索设计模式(1):开篇 探索设计模式(2):深入浅出单件模式(Sigleton Pattern) 探索设计模式(3):抽象工厂模式新解(Abstract Factory) 探索设计模式(4):建造者模式过程图解(Builder Pattern) 探索设计模式(六):原型模式(Prototype Pattern) 探索设计模式(七):创建型模式专题总结(Creational Pattern) 探索设计模式(九):桥接模式(Bridge Pattern) 探索设计模式(八):适配器模式(Adapter Pattern) 探索设计模式(11):组合模式(Composite Pattern) .NET设计模式(13):享元模式(Flyweight Pattern) Head First Design Patterns(深入浅出设计模式 Head First Design Patterns(深入浅出设计模式)-目录 Head First Design Patterns(深入浅出设计模式)-设计模式介绍 你真的了解Ioc与AOP吗? Spring.Net 示例代码分析 乱改:Visitor经典模式改进1 乱评:《c#设计模式》 的“访问者模式” 软件的架构与设计模式之模式的种类 Ioc模式(又称DI:Dependency Injection) 隐藏在.NET 的IoC? 一步一步开发Spring Framework MVC应用程序 CSharp面向对象设计模式纵横谈--Singleton Pattern 听课笔记 CSharp面向对象设计模式纵横谈--面向对象设计模式与原则 听课笔记 最少职责OOD设计手段 OOD的设计手段总结 面向对象设计的六大原则简介 由浅入深学“工厂模式”(1) 由浅入深学“工厂模式”(2) A Taste of AOP from Solving Problems with OOP and Design Patterns (Part I) A Taste of AOP from Solving Problems with OOP and Design Patterns (Part II) A Taste of AOP from Solving Problems with OOP and Design Patterns (Part III) 与大虾对话: 领悟设计模式 Design&Pattern团队《设计模式在软件开发的应用》精华版 由浅入深学“工厂模式”(3) 简话设计模式 观察者模式 (using .net) C# 事件与观察者模式 Role分析模式(一) 角色对象基本概念 Role分析模式(二)角色对象创建和管理 在开发 体验设计模式 重新诠释AOP 侃 介者模式(Mediator) 采用AOP 的观点来 Log 所有方法的调用 MS 的IOC容器(ObjectBuilder)? .Net event vs. observer Pattern DProxy介绍 – 一种高性能轻量级AOP开发组件(.NET 1.1) JavaScript 的Decorator模式 魔法牌里的模式(Bridge) 决策者得选择(Strategy) 通讯兵(Chain of Responsibility) 面向智能体编程(Agent Oriented Programmig, AOP)一些体会 Bridge? 一个GIS二次开发 常用的设计模式 Switch语句,僵化的毒药 策略模式的应用实践 重读GoF Factory Method来实现 数据库 操作的类 用Factory Method模式扩展MyMSDNTVLibrary 工厂模式和容器模式的探索 反编译 Component重要类,全文解释 - 容器篇 单系统多类型 数据 源随意切换的c#实现 用C#实现MVC(Model View Control)模式介绍 小议.NET 的对象拷贝 设计模式原则详解 封装变化(一) AOP的纯.Net实现 使用纯.net实现AOP(加入了比较详细的代码说明) 隐身大法,使民无知 设计模式浅析之Singleton 设计模式Top10排行榜 简话设计模式 在我们使用的NET FRAMEWORK类库 发现设计模式(3) 在我们使用的NET FRAMEWORK类库 发现设计模式(2) New Article 模版模式 Template Pattern — 穷人和富人的不同婚恋历程 发掘模式---今天您发掘拉mei? 老师讲的抽象工厂,错了一点点 Singleton + Proxy 模式+AOP Observer模式为何要区分推拉模式 也来谈谈工厂模式 需求分析控制 七个关于有效沟通的哲理故事 新主管如何生存? 怎样从一名程序员过度到项目经理 论《金瓶梅》与项目管理 人际关系协调 做项目经理的一些思考 怎样从一名程序员过度到项目经理 什么是项目经理 软件项目 的人员管理和团队建设 建立“杀手”开发团队 软件开发组的团队精神 如何指导软件开发新手 改变一个状况不佳的项目组 论软件开发 的三种重要角色 如何调动员工的积极性 成功项目团队 应树立的五种意识 管理观点系列:团队管理 现在有多同事工作较懒散,没有一点工作效率,开发出来的东西,Bug又多。如果让你来管理你会怎么做? 人才的识与用 高效团队的速成之道 管理人员如何有效应用 扬与批评进行反馈 [项目管理]管理 的人 [团队管理]+[软件人生]从项目计划到保密管理到个人学习与提高的方法 建立团队精神 你实现团队管理了吗? 怎么做需求分析 撰写优秀的需求 需求分析的20条法则 从用户接触到完成需求说明书 需求调研步骤和方法 一种界面需求分析方法 细谈软件需求分析过程:提取、抽象、升华 网站项目管理-如何做好需求分析 如何写系统分析书 客户需求何时休? 软件需求管理-用例方法,读书摘要 [理解需求变更之一]说说需求变更的必然 RUP简介 软件开发过程 最重要的是人?还是领导者? 开贴讨论:我观察国内几乎所有公司都有这样或者那样的管理问题,开贴讨论:小团队web项目负责人的工作办法 技术不是全部,归纳和演绎能力也很重要 谈恋爱与IT项目管理 广为流传的一个关于项目管理的通俗讲解 诸子百家与项目管理 之 序 诸子百家与项目管理 之 总述 问答 诸子百家与项目管理 之 周易篇(项目管理的两个基本点) 诸子百家与项目管理 之 孙子兵法篇(项目管理的整体思维) 实战解析----项目目的和范围 项目管理过程 的棘轮效应 项目整体管理 项目风险管理 项目采购管理 项目沟通管理 项目人力资源管理 项目成本管理 项目质量管理 项目时间管理 项目范围管理 编码人员和美工的配合问题 心得体会:关于开发效率和项目周期的问题 紧急项目处理方法 做项目的一些体会(之一)_软件开发过程 我们应当具有的能力 团队技能之一——分析问题 价值高于一切-企业软件开发谈 项目管理之我见(原创) 项目开发管理经验交流 软件实例开发手记(自序)-为保证文章完整性,谢绝对某篇而非全部手记的转载 紧急项目处理方法 浅谈项目管理 的职责权 - [原创] 由一个虚构的例子谈谈 小型研发型项目的技术管理及成本控制(全文) 优化IT企业的基础架构 一个研发经理的项目日记 .net敏捷开发及常用工具 关于项目管理和项目计划制定的对话 微软资深经理人的项目管理经验 WEB项目开发 MyMsn动态Resize页框架的布局详解 性能,安全,集成才是web之道 重构之美-走在Web标准化设计的路上[深入结构:理解h系列的不合理。] 重构之美-走在Web标准化设计的路上[振臂一呼:Css, Stop! ] 重构之美-走在Web标准化设计的路上[复杂 单]3 2 Update 重构之美-走在Web标准化设计的路上[唠叨先] 重构之美-迎接Web标准化设计的来临[总结一:网页设计回归?] 重构之美-走在Web标准化设计的路上[对HTML/XHTML/XML/XSL的一些认识] 雅虎网站项目工作流程 微软资深经理人的网站项目管理经验 一个测试的重构 RUP 核心概念 配置管理的概念 RUP && MSF 特点 构建面向对象的应用软件系统框架 构建面向对象的应用软件系统框架 目录 构建面向对象的应用软件系统框架 第1章 构建面向对象的应用软件系统框架 第2章 第3章 数据 和对象 第4章 O/R Mapping的一般做法 第5章 设计一个O/R Mapping框架 第6章 面向方面编程 第7章 接口 第8章 事务处理 第9章 性能优化 第10章 界面层的功能划分 第11章 界面设计模式 第12章 动态代码生成和编译技术 第13章 远程过程访问的客户端整合 第14章 智能客户端 第15章 简述 Effective Coding - Readability 单元测试时的一些最佳实践 Best free tools/frameworks/libraries I use 统一界面设计 十二种实践方法与我的XP心得 使用CVS做.NET项目 在asp.net页面上得到Castle容器的实例 当前软件开发的反思 面向对象设计,ORM,NHIBERNATE杂谈(有感) 投标方案应该怎么写? CMM/CMMI将带我们走向何方——一个CMM从业人员的反思 对一个排序程序的不断重构 FxCop 设计规则 敏捷实践12 条原则 《敏捷软件开发》读书笔记 (1) 《敏捷软件开发》读书笔记 (2) -- 设计原则 《重构》 读书笔记 (1) 企业应用之领域模型 我的.net项目经验(一)。 也谈 SOA 重新诠释SOA 登山的程序员(极限与敏捷之一) 敏捷的总设计师(极限与敏捷之二) 实战解析--项目的主要技术储备 产品升级策略 读《DTS分析模型、设计模型》有感 软件开发核心工作流程 新产品研发 分析设计过程.rar 在小型项目 使用 IBM Rational Unified Process: 极限编程剖析(转) 来一点反射,再来一点Emit —— 极度简化Entity! 软件整合--硬件整合--平台整合 用自定义KeyValueCollection类代替Dictionary/Hastable,改善简化后的Entity性能 Java剑 VS .NET刀 -- 东山再起(论模式)(二)【推荐】 基于构件技术的需求管理过程-框架需求调研 PSP课程(一): PSP简介 我对系统重构的理解 重构---Who are you?! 单元测试应该测什么,不应该测什么? AccEAP架构介绍(1)---实体的设计 我的单元测试认识之路 小型MIS开发之我见(一)---开发阶段 小型MIS开发之我见(二)---具体实施(上) 小型MIS开发之我见(二)---具体实施(下) 团队开发框架(Developement Structure for Team),内容列 及整理计划 风继续吹----对一些ORM框架的使用心得(2) 冷眼程序人生----对一些ORM框架的使用心得 读书笔记]-道法自然之需求分析 个人对软件开发的思考 一个Udp信息收发静态类! [修改]脚本判断网站是否能打开 IIS防止文件下载完全手册(非更改文件名法) 在.NET 利用XMLHTTP下载文件 开发 .NET 下的 FTP 客户端组件 如何不让没有登录的用户下载的问题 文件下载时如何隐藏实际地址? ASP.NET 多文件上传 .net 发mail到hotmail 乱码问题的解决 郁闷的OpenPOP的MIME Parser Asp.net(c#)实现多线程断点续传 关于 OpenSmtp 邮件标题过长后出现乱码问题的解决 支付宝Payto接口的c#.net实现 发布一个Asp.Net文件夹复制类 关于File的一些例子 文件操作工具类 FileUtility 大文件上传之异常处理(原创) 文件 在线压缩 技术 ASP.NET在线压缩与在线解压缩 c#文件操作(二) 在ASP.NET 跟踪和恢复大文件下载 Response.BinaryWrite()下载时文件名的问题. Windows Workflow Foundation之旅(二)——指南1(创建顺序工作流) DotNet 序列化学习笔记 一个上传的类 WMI类--所有可用的WMI的类封装 用ActiveX控件和JavaScript脚本实现基于Web的票据套打(源码下载) 运用API函数获取系统信息 通过ASP.NET页面重启服务器 开源:VS.NET打印思想与2003/5DataGrid、DataGridView及二维 数据 如ListView等终极打印实现(全部源码) 关于如何打印ListView的解决方法 修改IIS目录的Asp.Net版本 如何获取客户IE统计信息[代码] 图像多媒体 js图形报 一个可设置背景图片的验证码图片的生成方法 图片翻页幻灯效果 图片渐变轮换效果 讨论一下flash.ocx(8.0版本的)与.net结合的编程 动态生成缩略图 SharpMap介绍及源码分析 利用Javascript 结合 VML 生成三维报 (饼图) 技巧与总结 代码阅读总结(个人总结开发小技巧) DotNet精美书籍大检阅 asp.net的页面代码组织模式 金鼎俱乐部项目总结 总结一下散乱的开发点滴(3) (高手勿入) 说的都是概念——有关编程范式 组织一些开源项目 VS.NET操作技巧 Visual SourceSafe VSS信息的读取的操作 安装程序自动安装 数据库 程序安装时检查是否已经安装.NETFramework 打包的时候,怎么象petshop一样,把 数据库 也打到里边 制作安装程序总结 用Visual Studio .Net 2003制作安装程序时轻松实现将自己的程序添加到系统的鼠标右键菜单 .net打包自动安装 数据库 用自删除dll实现应用程序的安装/卸载代码 .NET打包自动安装 数据库 调试常见问题 IE安装了flash插件还不能显示swf动画的问题 让人哭笑不得的“Unable to load one or more of the types in the assembly”问题的解决! 关于异常处理的一点感受 项目调试时候,出现其 用到的一个组件“访问被拒绝”的解决方法。 对于引用的控件被拒绝访问的解决办法的补充(续) 对于引用的控件被拒绝访问的解决办法的补充(续++)++ 对于引用的控件被拒绝访问的解决办法的补充(续++) 使用Visual Studio.net调试javascript最方便的方法 在Apache上调试Asp.net 1.1/2.0代码 VS.NET 2005 vs.net 2005 自定义模版项 自己动手打造Visual Studio 2005 Team Suite 正式汉化版 用Visual Studio 2005创建宏代码生成器 Visual Studio 2005 Team Foundation Server Beta3 安装手记 Visual Studio 2005 Team System的BUG? 对vs2005生成dll文件的一点疑惑 开发VS2005下ComboBoxTreeView(下拉列 框弹出树) 与ToolStripComboBoxTreeView(下拉列 框工具条弹出树) Visual Studio 2005 编译调试新功能 使用 Visual Studio 2005 Team System 进行单元测试并生成用于 Unit Test Framework 的源代码 在VS.NET2005 使用java代码段以及SOL文件格式的解析 ClubWEBSite starter kit二次开发及Vs2005 ObjectDataSource控件的应用小记 Visual Studio 2005 RTM的奇怪问题 Team Foundation Server Beta3 安装指南 VS2005 通过code snippet定制类模板 C#2.0 Singleton 的实现 Dataset+TableAdapter _.net最终 数据 访问类出现? 我的心血显然被藐视了 目前发现的 asp.net 数据 绑定的几个BUG(不定期连载) 使用GDI+在VS2005下开发基于DataGridView的财务显示单元格控件 目前发现的VS2005 asp.net 数据 绑定bug (二) -关于ObjectDatasource 和TableAdapter Use Whidbey Beta2 to target .NET Runtime 1.1 Targetting 1.1 .NET Framework with MSBuild 安装TFS vs.net 2005 web.config智能感知丢失时 VS2005 用Code Snippets提高开发效率 VS2005运行速度优化心得 vs2005 的WebSite 的开发方式的替代Visual Studio Web Application Projects VS2005如何进行单元测试. 善用免费的Code Snippet Libraries加快你的开发速度 Code Snippet Libraries压缩下载包 Visual Studio 2005 Web Application项目RC发布 Visual Studio 2005 Web Application Projects 项目Cool的地方 VS2005将支持的两种WEB编程模型的比较 VS.NET 工具 CodeSmith 我的用CodeSmith生成的业务对象 CodeSmith基础(一) CodeSmith基础(二) CodeSmith基础(三) CodeSmith基础(四) CodeSmith基础(五) CodeSmith基础(六) CodeSmith基础(七) CodeSmith基础(八) CodeSmith应用(一) CodeSmith应用(二) CodeSmith应用(三) CodeSmith应用(四):实现选择路径对话框 CodeSmith-Terrylee CodeSmith实用技巧(一):使用StringCollection 数据库 字段属性配置工具界面[用于代码生成] Sharpdevelop2.0预览版放出来了 对nunit很失望 Resharper的快捷键 ReSharper 利用Together For VS.NET检查所编写的代码是否够规范 如何用CodeSmith减少代码重复编写 NET 的Refletion的初步了解 VS2005 Add-in:CSS Properties Window 每个开发人员现在应该下载的十种必备工具 体验ReSharper V1.0 for VS.Net 2003 - Part I 用DNS、IIS实现Web项目团队协作开发! 创建自定义的Visual Studio项模板 Microsoft Windows Workflow Foundation 入门:开发人员演练 将asp.net1.1的应用程序升级到asp.net2.0的一点心得 自动填写版权信息 .Net1.x转换为.Net 2.0要注意的几个问题 服务器同时存在1.1和2.0程序注意事项 使用@Page指令的Src 属性 简化对老版本的 asp.net程序的维护 常见的 Web 项目转换问题及解决方案 将 Web 项目从 Visual Studio .Net 2002/2003 转换到 Visual Studio 2005 的分步指南 常见的 ASP.NET 2.0 转换问题和解决方案 你的.net 2.0 真的能与1.1 安全正确地运行在同一台电脑上吗? 小心Server Application Unavailable 错误 安装vsts:如何卸载SQL Server 2005 其他新技术 初识.net反射技术 .NET反射、委托技术与设计模式 .net反射技术的应用—如何调用Java的COM接口 灵活正确的实现.NET插件机制 C# 使用反射的性能分析 论.NET反射、委托技术与设计模式关系 用Ajax技术让IE Web Control Tree View实现大 数据 量读取 AJAX设计模式 之 怎样构建一个可刷新的无刷新应用 AJAX设计模式实践 之 可刷新Ajax应用范例+Framework 在ASP.NET 实现AJAX Ajax.Net的onLoading及aspx页面的默认名字 空间 及ajaxpro的google组怎么没有一个chinese? CuteEditor5.0的安装及它与Ajax.net配合无刷新操作 数据库 ! 使用简单的Ajax Framework -MagicAjax.NET 剖析MagicAjax 利用AJAX技术开发应用程序实战 基于Ajax的五子棋演示 AJAX页面XMLHTTP对象生成及下一步技术研究 到了该讨论XMLHTTP在Ajax 作用的时候... Ajax,纠正错误,又向前一小步 Ajax, 想得更实际一些 Ajax, 使用PostBack响应模型和Web控件资源, 让服务器返回更少的 数据 几句话介绍MagicAjax 使用MagicAjax 实现无刷新Webparts AJAX编写用户注册实例及技术小结 Web 2.0 AJAX技术应用详解 一个要钱的ajax框架zumipage 网站的推广之痛-使用AJAX和.NET网站的朋友注意了 让MagicAjax支持 文! 阿特拉斯神(二) AJAX急速狂飙:开发www.99scj.com体验(1) ASP.NET 调味品:AJAX 一套使用简单的Ajax服务器控件-Anthem.NET Introduction to Anthem.NET 三种Ajax框架使用比较 Ajax基本原理讲解 【AjaxPro实现机制浅析二】*.ashx文件是怎么来的? 利用Ajax与 数据 岛实现无刷新绑定 应用Ajax.net在Asp.net 实现无aspx文件应用 Atlas 用Atlas来实现一个基于AJAX的无刷新Chatroom Atlas Table Layout Template 学习Atlas是发现的几个小问题 Atlas笔记1:介绍和调用WebService的方法 Atlas是什么? Atlas 实现机制浅析 [1] Atlas 实现机制浅析 [3] 使用ASP.NET Atlas编写显示真实进度的ProgressBar(进度条)控件 Atlas应用程序调试技巧 在Atlas服务器端实现 推荐使用Web Service而不是Page Method Atlas揭秘 —— 绑定(Binding) 在ASP.NET Atlas 创建自定义的Transformer 在ASP.NET Atlas 创建自定义的Validator 使用ASP.NET Atlas ItemView控件显示集合 的单个 数据 使用ASP.NET Atlas ListView控件显示列 数据 调试Atlas客户端JavaScript脚本 在ASP.NET Atlas 创建自定义的Behavior 使用ASP.NET Atlas SortBehavior实现客户端排序 在Atlas 实现检测postback progress的状态的方法 使用ASP.NET Atlas XSLTView控件用XSLT修饰并显示XML 数据 Remoting 一步一步学Remoting之一:从简单开始 初识用.NET Remoting来开发分布式应用 使用.NET Remoting开发分布式应用——配置文件篇 基于消息与.Net Remoting的分布式处理架构 使用.NET Remoting开发分布式应用——基于租约的生存期 Remoting多个信道(Chennel)的注册问题 Remoting 的线程与网络通信内幕初探 Remoting Event 远程事件 Remoting Discussion(二) Remoting Discussion(三) 在PPC上用时间做唯一编号遇到的问题及其解决方法 正确处理 SqlCeException 的方法 通过ActiveSync使你的Windows Mobile Emulator连接到Internet Pocket PC 2003编程环境 Windows Mobile开发环境搭建指南 短信任务源程序分享[.NET CF C#] 循序渐进:使用 Visual Studio 2005 为基于 Windows Mobile 的设备生成 .NET Compact Framework 应用程序 是不是.net compact framework的Bug呢? 窗体切换 的小技巧 Web 2.0 WEB2.0商业模式才刚开始 用Blog和Wiki搭建IT团队的知识库 论web2.0的定义及web2.0盈利的实现方式 MagicAjax-NoStore,Session,Cache模式的区别 Wiki的介绍 wiki、Blog与项目知识管理 wiki的来龙去脉与企业应用 2006年 Web 2.0 将面临的10个问题 web 2.0 精彩语录 创新的媒介:Web 2.0三大营销变革 2005年Web 2.0领域涌现的11大高质量软件 学习冲电 <> Go back什么是Web 2.0? Web 2.0时代,你属于哪一份子? 全面精通Web 2.0,做互联网潮头人 项目Wiki的选择和配置 2005年 Web2.0 带动的11大软件 最近的asp.net技术demo 通用异常处理框架 在C# 调用WINCE连接PC的程序 GPS定位信息的接收 PDA/GPS检测报告 CnForums和已有系统的整合方案 Community Server技术分析——CS是如何将三个项目整合到一起的 Microsoft.mshtml到底是什么? BI与CRM深入行业应用 纯粹B/S方式实现InfoPath的设计和运行时--Web Builder WebBuilder 界面一览 大话 .NET/MONO 跨平台应用 移植 ASP.net 项目到 Mono 的问题报告 激动的一天 MONO - .NET跨平台之亲身经历(一) 使用Updater Application Block实现自动更新例子 Component/Service Oriented Software System Development Thinking Smart Client Case Study Source Code Download from MSDN China 初探YAML 在将WEBPART打包成*.CAB包和*.MSI安装包后,竟然无法将其安装到指定的WSS网站 Microsoft Windows Workflow Foundation 入门:开发人员演练 如何让ClickOnce进行手动更新(含代码) WEB BUILDER 的动态页面生成 flash与asp.net通信(LoadVars类) EsbAOP应用--异常关闭器 EnterpriseServerBase的AOP--EsbAOP实现 [WPF]WPF 如何实现 数据 示分离。(一) —— XAML 翻译:微软是如何输掉API之战(上) 微软是如何输掉API之战(下) Log4Net五步走 Agile Framework功能介绍(1):自动事件连接 基于构件技术的软件工程 - Small Team Practice小型团队项目实践标准 RIA全程追踪-引子 Boo简介及无关的一些牢骚 企业应用之领域模型 企业应用之 数据 持久化方案 通过Spring.net来使用XCodeFactory生成的 数据 层! 关于SNS规则引擎的一点想法 Biztalk2004 Decoder的二次开发----春田花花幼稚园的信息化项目 虚拟社会,做尽天下业务(集思广义,以求大同) ORM新实现——Dali 使用Microsoft Systems Management Server 2.0 进行补丁管理 CNN评出25个典型的下一代互联网公司 SQL Server Report Services 的RS 数据库 移植到另外一台服务器,报“rsReportServerNotActivated”错误 .NET和JAVA的跨平台,我们很期望.但是容易吗 LoadRunner 架构概览 关于Flex、Jrun、ColdFusion、IIS、ASP.Net结合使用的误区!(只说Flex1.5版本) Windows Communication Foundation入门(Part One) office 操作 ADO.NET(OleDb)读取Excel 格时的一个BUG Office with .Net 系列之 ――― 在自己的程序 宿主Office Office with .Net (二) ――― 使用.Net访问Office编程接口 Office with .Net(二)之外传―――“彻底干净的”关闭Office程序 我写的Asp.net操作Excel的一个类库ExcelHelper(源码下载) C#操作Excel,套用模板并对 数据 进行分页 关于ASP.NET 调用Excel组件不能结束进程的解决方法 用完Excel组件后 如何彻底关闭Excel进程 一个Excel exporter的组件 web 下实现文档的可浏览但不可保存 Excel开发:简化工作 选定区域的操作 开源代码系列之Office文档读写(Excel/Word) 将Exce嵌入你的.Net程序 实例与经典源码 .NET Pet Shop 4 .NET Pet Shop 4: Migrating an ASP.NET 1.1 Application to 2.0 NET Pet Shop 4 .NET Pet Shop 4 关于练习项目的一些背景 基于.NET 2.0的Petshop4正式推出了 PetShop的系统架构设计 Petshop 4 学习 Agile Framework 介绍Agile Framework Agile Framework架构图 利用db4o做 间层 数据 缓存 关于 数据 层设计的取舍思考 基于SOA思想的架构设计 框架设计之Castle&CompositeUI容器融合 架构设计之Smart Client 架构设计之离线处理 DotNetNuke DNN 数据 访问策略 【译】 快速正确的制作DNN模块 数据库 安装脚本 DotNetNuke开始支持ASP.NET2.0 DotNetNuke从入门到进阶(1)怎样写自己的模块 DotNetNuke 代码文档 翻译DNN-Documentation-readme.txt DotNetNuke:如何创建自己的模块(FlashPlayer Module) [DNN模块开发]让模块支持“导入”“导出”功能 [DNN模块开发]DNN模块的层次划分 [DNN模块开发]模块的文件结构及命名方法 [DNN模块开发]如何写模块 数据库 安装脚本 建立单独的解决方案来开发DNN模块 [DNN模块开发]快速制作DNN模块安装包 [DNN模块开发]快速正确的制作DNN模块 数据库 安装脚本 [DNN扩展]将Lion.Web.WebHtmlEditor作为DNN的富文本编辑器(初步实现) [DNN扩展]LionHtmlEditorProvider(v1.0.1) [DNN扩展]LionHtmlEditorProvider(v1.0.2) 最后更新:2005-7-25 [DNN模块开发]如何写dnn文件 [DNN模块开发]分类链接模块终于大功告成了 [DNN扩展]LionHtmlEditorProvider(v1.0.3) [DNN模块开发]分类链接模块V1.1 [DNN模块开发]增强型DNN在线调查模块 [DNN学习所得]如何防止页面 的敏感信息被提取 如何修改DotNetNuke(DNN) 服务条款和隐私说明 利用反射工厂模式支持多 数据库 访问 DNN 搜索引擎原理——如何获取SearchItem DNN 搜索引擎原理—— 数据库 分析篇 [DNN通用控件]TextEditor [DNN学习所得]SolpartMenu一个相当不错的下拉菜单控件 [DNN功能]列 管理添加 国的省份选择下拉框 [DNN学习所得]CBO——简化从 数据库 读取 数据 并实例化对象的有效方法 刚开始学习DNN的一点小经验(二) 全新安装dnn3.1.0 DNN安装模板(DotNetNuke.install) [DNN学习所得]让IE也能实现解压缩功能(提供演示源码下载) DNN核心用户控件——实现页面灵活布局的第一步 DNN的 数据 访问方式——合理运用模式,提高 数据 访问的灵活性(有修正) 刚开始学习DNN的一点小经验(一) [DNN学习所得]HttpModule到底是个什么东西 DotNetNuke3研究报告一(安装) 初识DotNetNuke(DNN) 关于DotNetNuke(DNN)的语言问题 DotNetNuke3研究报告二( 数据 访问) [DNN学习所得]HttpModule到底是个什么东西 DNN文件夹说明 [DNN通用控件]DualListControl介绍 DNN3.2.2安装说明 [DNN 3.2.2] DNN开发 的一些细节(2) DNN开发 的一些细节(1) Flash+xml 在 Dnn系统开发 的应用 DNN开发 的一些细节(3) 开源CMS Alfresco 1.0 发布 ArgoUML -- 开源UML 建模工具 应用IBatisNet+Castle进行项目的开发 再论IBatisNet + Castle进行项目的开发 NHibernate VS IbatisNet IBatisNet 之 自动生成主关键字 细节决定成败:一个公共类库 BugTracker.NET 汉化手札 ORM开题篇-Gentle.NET之牛刀小试 使用NHIBERNATE写DAL层的流程和牢骚 Mono 开发 (使用.NET技术的你,绝对不能忽略Mono) .NET开源项目链接 MonoRail - 前期准备 MonoRail - 简介 经典案例介绍 广州市工商局商标管理软件 Duwamish 学习Duwamish7的MSDN说明及相关技术策略 Duwamish7学习笔记(七) Duwamish7学习笔记(六) Duwamish7学习笔记(五) Duwamish7学习笔记(四) Duwamish7学习笔记(三) Duwamish7学习笔记(二) Duwamish7学习笔记(-) NHibernate 使用NHibernateContrib 的Nullables NHibernate文档翻译进度&问题收集(持续更新) NHibernate文档翻译 第3章 持久化类(Persistent Classes) NHibernate文档翻译 第5章 集合类(Collections)映射 NHibernate文档翻译 第6章 关联映射 NHibernate文档翻译 第7章 示例: Parent/Child NHibernate 1.0.1 发布了 NHibernate文档翻译完成 NHibernate文档翻译 第8章 NHibernate缓存(NHibernate.Caches) NHibernate文档翻译 第9章 使用AttributesNHibernate.Mapping.Attributes NHibernate文档翻译 第10章 NHibernate.Tool.hbm2net DDL的NHibernate文档 1.快速起步 NHibernate DateTime,int,bool空值的处理方法 使用NHibernate进行 数据 持久层开发的最佳实践 基于NHibernate的三层结构应用程序开发初步 NHibernate.Helper Project NHibernate学习手记(1) - 对象的简单CRUD操作 NHibernate学习手记(6) - 实现one2many/many2one的映射 NHibernate快速指南 NHibernate之1——为什么不用DataSet? NHibernate文档翻译 第1章 体系结构 NHibernate文档翻译 第2章 ISessionFactory配置 NHibernate文档翻译 第4章 O/R Mapping基础 由为什么要学习NHibernate说开去 NHibernate 使用手迹(1st) NHibernate 使用手迹(2nd) NHibernate使用手迹(3rd) 发布:偶写的NHibernate代码生成器 面向对象设计,ORM,NHIBERNATE杂谈(有感) Snake.Net Snake.Net 框架 的ORM(一) (Version 0.2 Beta) Snake.Net 框架 的ORM(二) (Version 0.2 Beta) Snake.Net 框架 的ORM(三) (Version 0.2 Beta) Snake.Net网络通讯模块 序 Snake.Net网络通讯模块 - SMTP(一) Snake.Net网络通讯模块 - POP3(二) Snake.Net网络通讯模块 - IMAP4(三) Snake.Net网络通讯模块 - FTP(四) Snake.Net 框架 的ORM(四) (Version 0.2 Beta) Snake.Net 框架 的ORM(五) (Version 0.2 Beta) QPG平台 编写容易被维护的代码(1) QPG--基本用法介绍 技术篇(1)--QPG容器的基本用法 技术篇(2)--QPG容器的高级用法 技术篇(3)--QPG界面分解方法介绍 技术篇(4)--基于QPG容器的服务扩展 技术篇(5)--QPG 数据 处理方法 技术篇(6)--大话AOP 实践篇(1)--QPG之“打狗棍法” 思想篇(3)—IT运用模式的轮回 思想篇(2)--归纳和演绎能力也很重要 思想篇(1)--企业需要什么样的人才? 思想篇(完)----跟往事干杯 思想篇(4)---- 实战解析(完)----总结 Enterprise Library Enterprise Library2.0(1):Data Access Application Block学习 Enterprise Library2.0(2):Logging Application Block学习 Enterprise Library2.0 加密 数据库 连接字符串 Enterprise Library——企业库配置管理应用程序块 Enterprise Library——企业库缓存应用程序块 Enterprise Library Step By Step系列(一):配置应用程序块——入门篇 Enterprise Library Step By Step系列(二):配置应用程序块——进阶篇 Enterprise Library Step By Step系列(三): 数据 访问程序块——入门篇 Enterprise Library Step By Step系列(四): 数据 访问程序块——进阶篇 Enterprise Library Step By Step系列(五):安全应用程序块——入门篇 Enterprise Library Step By Step系列(六):安全应用程序块——进阶篇 Enterprise Library Step By Step系列(七):日志和监测应用程序块——入门篇 terprise Library Step By Step系列(八):日志和监测应用程序块——进阶篇 Enterprise Library Step By Step系列(九):缓冲应用程序块——入门篇 Enterprise Library Step By Step系列(十):缓冲应用程序块——进阶篇 Enterprise Library Step By Step系列(十一):异常处理应用程序块——入门篇 Enterprise Library Step By Step系列(十二):异常处理应用程序块——进阶篇 Enterprise Library Step By Step系列(十三):加密应用程序块——入门篇 Enterprise Library Step By Step系列(十四):创建基于消息队列(MSMQ)的异步日志 Enterprise Library Step By Step系列(十五):配置应用程序块——设计篇 Enterprise Library Step By Step系列(十六):使用AppSetting Application Block Composite UI Application Block 学习笔记之Commands Composite UI Application Block学习笔记之Event Broker 使用Updater Application Block实现自动更新例子 使用企业程序库的两点体会 Composite UI Application Block学习笔记之Smart Part 关于在服务器端使用Microsoft Exception Management Application Block Logging application block of Enterprise Library 2.0 TimeStamp of the Logging Application Block in EntLib 2.0 对 Updater Application Block v2的 面行为分析及问题 (一) HTTP Downloader for Updater Application Block 2 ObjectBuilder内功心法之 国特色 一个从网页 提取天气预报信息的程序(附源码) Ilungasoft Framework: 使用视图处理继承关系、Tree结构实体关系映射示例[源码] DataQuicker2快速入门-----存储过程篇 一个ASP.NET2.0的小项目-BLOG Ilungasoft Framework 处理有关联关系的实体 Community Server2.0专注细节一 邮件提醒按钮实现(上) DataQuicker(ORM) 的缓存机制 数据 框架DataQuicker2第一个版本开源下载. SVG + Javascript + ASP.NET + WebService开发楼宇管理系统 - 杂记3(完) 新的 数据 框架DataQuicker2 Walk through Message----春田花花幼稚园的信息化项目(II) SVG + Javascript + ASP.NET + WebSe 1.在多进程Oracle实例系统 ,进程分为用户进程、后台进程和服务进程。 2.标准的SQL语言语句类型可以分为: 数据 定义语句(DDL)、 数据 操纵语句(DML)和 数据 控制语句(DCL)。 3.在需要滤除 查询 结果 重复的行时,必须使用关键字Distinct; 在需要返回 查询 结果 的所有行时,可以使用关键字ALL。 4.当进行模糊 查询 时,应使用关键字like和通配符问号(?)或百分号"%"。 5.Where子句可以接收From子句输出的 数据 ,而HAVING子句则可以接收来自WHERE、FROM或GROUP BY子句的输入。 6.在SQL语句 ,用于向 插入 数据 的语句是Insert。 7.如果需要向 插入一批已经存在的 数据 ,可以在INSERT语句 使用Select语句。 8.使用Describe命令可以显示 的结构信息。 9.使用SQL*Plus的Get命令可以将文件检索到缓冲区,并且不执行。 10.使用Save命令可以将缓冲区 的SQL命令保存到一个文件 ,并且可以使用Run命令运行该文件。 11.一个模式只能够被一个 数据库 对象所拥有,其创建的所有模式对象都保存在自己的模式 。 12.根据约束的作用域,约束可以分为 级约束和列级约束两种。列级约束是字段定义的一部分,只能够应用在一个列上;而 级约束的定义独立于列的定义,它可以应用于一个 的多个列。 13.填写下面的语句,使其可以为Class 的ID列添加一个名为PK_CLASS_ID的主键约束。 ALTER TABLE Class Add ____________ PK_LASS_ID (Constraint) PRIMARY KEY ________ (ID) 14. 每个Oracle 10g 数据库 在创建后都有4个默认的 数据库 用户:system、sys、sysman和DBcnmp 15. Oracle提供了两种类型的权限:系统权限和对象权限。系统权限提供了在Oracle 数据库 系统范围内执行某种任务的操作能力,而对象权限则是一种赋予用户在指定的 数据库 对象(如 、视图、过程等) 16. Oralce 数据库 在进行物理备份有联机备份和脱机备份两种方式可供选择。 17. 从存储结构的角度来说,Oracle 数据库 可分为物理结构和逻辑结构。 18. 空间 是Oracle 数据库 数据 的逻辑组织,每个 数据库 至少有一个SYSTEM系统 空间 。 19.视图是一个 数据 数据库 对象,它允许用户从一个 或一组 通过一定的 查询 语句建立一个“虚 ”。 20.序列是一种可被多个用户使用的用于产生一系列唯一数字的 数据库 对象。尤其适合多用户环境 ,可以生成唯一的序列号而没有磁盘I/O或事务处理锁定开销。 21. 一个 空间 具有离线(OFFLINE)、在线(ONLINE)、只读(READ ONLY)、读写(READ WRITE)状态。 1.在全局存储区SGA ,哪部分内存区域是循环使用的?( B ) A. 数据 缓冲区 B.日志缓冲区 C. 共享池 D.大池 2.如果一个服务器进程非正常终止,Oracle系统将使用下列哪一个进程来释放它所 占用 的资源?( D ) A.DBWR B.LGWR C. SMON D.PMON 3. 如果要 查询 数据库 所有 的信息,应当使用下列哪种 数据 字典视图?( A ) A. DBA视图 B. ALL视图 C. USER视图 D. 动态性能视图 4. 下列哪一项是Oracle 数据库 最小的存储分配单元? ( C ) A. 空间 B. 段 C. 盘区 D. 数据 块 5. 下面的各选项 哪一个正确描述了Oracle 数据库 的逻辑存储结构? ( A ) A. 空间 由段组成,段由盘区组成,盘区由 数据 块组成 B. 段由 空间 组成, 空间 由盘区组成,盘区由 数据 块组成 C. 盘区由 数据 块组成, 数据 块由段组成,段由 空间 组成 D. 数据 块由段组成,段由盘区组成,盘区由 空间 组成 6. 下列的哪个子句在SELECT语句 用于排序结果集?( D ) A. Having子句 B. Where子句 C. From子句 D. Order by子句 7. Having子句的作用是( B )。 a. 查询 结果的分组条件 B. 组的筛选条件 C. 限定返回的行的判断条件 D. 对结果集进行排序 8. 下列哪个函数可以把一个列 的所有值相加求和? ( B ) A MAX B. SUM C. COUNT D. AVG 9. 下列哪个子句是SELECT语句 必选项?( A ) A. FROM B.WHERE C.HAVING D. ORDER BY 10. 下列哪个子句实现对一个结果集进行分组和汇总?( D ) A.HAVING B. ORDER BY C. WHERE D. GROUP BY 11. 查询 一个 的总记录数,可以采用_________统计函数。( C ) A. AVG(*) B. SUM(*) C. COUNT(*) D.MAX(*) 12. 要建立一个语句向Types 插入 数据 ,这个 只有两列,T_ID和T_Name列。如果要插入一行 数据 ,这一行的T_ID值是100,T_Name值是RFUIT。应该使用的SQL语句是_____。( A ) A. INSERT INTO Type Values(100, ‘FRUIT’) B. SELECT * FROM Type WHERE T_ID=100 AND T_NAME=’FRUIT’ C. UPDATE SET T_ID=100 FROM Types WHERE T_Name=’FRUIT’ D. DELET * FROM Types WHERE T_ID=100 AND T_Name=’FRUIT’ 13. 用_____语句修改 的一行或多行 数据 。( A ) A.Update B.set C.Select D.Where 14. 使用什么命令可以清除 所有的内容? ( D ) A.INSERT B.UPDATE C. DELETE D.TRUNCATE 15.关于模式的描述下列哪一项不正确?( C ) A. 或索引等模式对象一定属于某一个模式 B.在Oracle 数据库 ,模式与 数据库 用户是一一对应的 C.一个 可以属于多个模式 D.一个模式可以拥有多个 16.唯一约束与主键约束的一个区别是?( D ) A.唯一约束的列的值不可以有重复值 B.唯一约束的列的值可以不是唯一的 C.唯一约束的列不可以为空值 D.唯一约束的列可以为空值 17. 只能存储一个值的变量是哪种变量?( B ) A. 游标 B. 标量变量 C. 游标变量 D. 记录变量 18. 声明%TPYE类型的变量时,服务器将会做什么操作?( A ) A. 为该变量检索 数据库 列的 数据 类型 B.复制一个变量 C.检索 数据库 数据 D.为该变量检索列的 数据 类型和值 19.下列哪一项可以正确地引用该记录变量 的一个值?( B ) A.rec_abc(1) B. rec_abc(1).col C. rec_abc.col D.rec_abc.first() 20. 在定义游标时使用的FOR UPDATE子句的作用是______。( C ) A.执行游标 B. 执行SQL语句的UPDATE语句 C.对要更新 的列进行加锁 D. 都不对 21. 如果允许用户对视图进行更新和插入操作,但是又要防止用户将不符合视图约束条件的记录添加到视图,应当在定义视图时指定下列哪一个子句?( C ) A.WITH GRANT OPTION B. WITH READ ONLY C. WITH CHECK OPTION D. WITH CHECK ONLY 22. 如果想查看视图 哪些字段是可以更新的,应当 查询 哪一个 数据 字典视图?( D ) A. DBA_VIEWS B. DBA_OBJECTS C. DBA_CLU_COLUMNS D. DBA_UPDATABLE_COLUMNS 23. 在下列各选项 ,关于序列的描述哪一项是不正确的?( D ) A. 序列是Oracle提供的用于产生一系列唯一数字的 数据库 对象 B.序列并不 占用 实际的存储 空间 C.使用序列时,需要用到序列的两个伪列NEXTVAL与CURRVAL。其 ,NEXTVAL 将返回序列生成的下一个值,而CURRVAL返回序列的当前值 D.在任何时候都可以使用序列的伪列CURRVAL,以返回当前序列值 24. 在下列各选项 ,关于同义词的描述哪一项是不正确的?( B ) A.同义词是 数据库 对象的一个替代名,在使用同义词时,Oracle会将其翻译为对应的对象名称 B.在创建同义词时,所替代的模式对象必须存在 C.Oracle 的同义词分为公有同义词和私有同义词 D.公有同义词在 数据库 所有的用户都可以使用;私有同义词由创建它的用户所拥有 25. 下列哪个锁模式不属于Oracle?( D ) A. 共享锁 B.排他锁 C. 行级共享锁 D. 死锁 26. 想在另一个模式 创建 ,用户最少应该具有什么系统权限?( B ) A.CREATE TABLE B. CREATE ANY TABLE C. RESOURCE D. DBA 27. 如果要启用所有角色,则应该使用哪一个命令?( B ) A.SET ROLE ALL B. SET ROLE ENABLE ALL C. ALTER SESSION ALL D.ALTER USER ROLE ALL 28. 下列哪一个操作可以用来为一个备份操作手动分配通道?( A ) A.ALLOCATE CHANNEL B. CREATE CHANNEL C. CHANNEL ALLOCATE D. CREATE LINK 29. 下列哪一个命令用来显示RMAN通道的配置信息?( C ) A. LIST B. DISPLAY C.SHOW D.都可以 30. 下列哪一个命令可以用来执行不完全恢复?( B ) A. RESTORE DATABASE UNTIL B. RECOVER DATABASE UNTIL C. RECOVER DATA UNTIL D. RESTORE DATA UNTIL 三、简答题 1. 说明 数据库 模式与用户之间的区别。 数据库 模式与用户之间的区别在于:用户是 数据库 的使用者和管理者,用户具有帐户状态、访问权限和操作权限等属性。模式是一系列逻辑 数据 结构或对象的集合,是 数据库 对象的组织和管理单位。 2. 简要游标的作用和游标操作的基本步骤。 游标的作用是将 数据库 数据 检索出来后缓存,可以被PL/SQL程序一行一行的读取并处理。支持一条、多条、零条记录的处理。 游标的基本操作步骤为: (1)声明游标,使用 查询 来定义游标的列和行 (2)打开游标,使用PL/SQL命令OPEN来打开一个声明的游标 (3)提取 数据 ,从游标 重复提取每条记录到 数据 结构 ,直到 数据 集合被提交 (4)关闭游标,使用完游标后将其关闭 3.Oracle 数据库 的工作模式有哪两种?它们之间有有何区别? 在Oracle 数据库 数据库 的操作模式分为专用服务器(DELICATED SERVER)模式和多线程服务器(MULTITHREADED SERVER)模式两种。其 ,在专用服务器模式 为每个用户进程创建一个服务器进程,用户进程与服务器进程之间是1:1的关系;在共享服务器模式 ,一个服务器进程可以为多个用户进程服务器。 4.说明 数据库 内存结构 SGA和PGA的组成,以及这两个内存区存放信息的区别。 SGA区由 数据 缓冲区、共享池、重做日志缓冲区、大型池、JAVA池构成;PGA区由排序区、私有SQL区以及堆栈构成。SGA区是由Oracle分配的共享内存结构,包含一个 数据库 实例共享的 数据 和控制信息。当多个用户同时连接同一个实例时,SGA区 数据 供多个用户共享,所以SGA区又称为共享全局区。用户对 数据库 的各种操作主要在SGA区 进行。该内存区随 数据库 实例的创建而分配,随实例的终止而释放。PGA区是在用户进程连接 数据库 ,创建一个会话时,由Oracle为用户分配的内存区域,保存当前用户私有的 数据 和控制信息,因此该区又称为私有全局区。每个服务器进程只能访问自己的PGA区,所有服务器进程PGA区总和即为实例的PGA区的大小。 5. 说明 数据库 空间 的种类,以及不同类型 空间 的作用。 数据库 空间 分为系统 空间 和非系统 空间 两类,其 非系统 空间 包括撤销 空间 、临时 空间 和用户 空间 等。 SYSTEM 空间 主要用于存储 数据库 数据 字典、PL/SQL程序的源代码和解释代码、 数据库 对象的定义。撤销 空间 专门进行回退信息的自动管理。临时 空间 是专门进行临时段管理的 空间 。用户 空间 用于分离不同应用的 数据 ,而且能够减少读取 数据 文件时产生的I/O冲突。 6. 说明Oracle 10g 数据库 文本初始化参数文件与服务器初始化参数文件的区别。 文本初始化参数文件是一个本地的初始化参数文件,而服务器初始化参数文件是一个放在 数据库 服务器端的共享的二进制初始化参数文件。文本参数文件的修改是通过直接对文本的修改实现的,通过命令行是无法将修改后的参数值写入该文件 ,而服务器初始化参数文件是不能直接修改的,必须通过ALTER SYSTEM语句来进行参数修改的。 7. 简述PL/SQL程序结构及各个部分的作用。 PL/SQL程序的基本单元是语句块,所有的PL/SQL程序都是由语句块构成的,语句块之间可以相互嵌套,每个语句块完成特定的功能。  声明部分:以关键字DECLARE开始,BEGIN结束。主要用于声明变量、常量、 数据 类型、游标、异常处理名称以及本地(局部)子程序定义等。  执行部分:是PL/SQL块的功能实现部分,以关键字BEGIN开始,EXCEPTION或END结束(如果PL/SQL块 没有异常处理部分,则以END结束)。该部分通过变量赋值、流程控制、 数据 查询 数据 操纵、 数据 定义、事务控制、游标处理等实现块的功能。 异常处理部分:以关键字EXCEPTION开始,END结束。该部分用于处理该块执行过程 产生的异常。 8. 说明触发器的种类和对应的作用对象、触发事件。 触发器包括DML触发器、INSTEAD-OF触发器和系统触发器。其 ,DML触发器主要作用于 ,其事件有INSERT、UPDATE、DELETE;INSTEAD-OF触发器主要主用于视图,其事件有INSERT、UPDATE、DELETE;系统触发器主要是DML事件和系统事件发生时调用的触发器,其 DML事件包括CREATE、DROP、ALTER等,系统事件包括LOGON、LOGOFF、STARTUP、SHUTDOWN、SERVERERROR等。 9.简述Oracle 数据库 角色的种类、作用,以及如何利用角色为用户授权。 Oracle 数据库 角色分为系统预定义的角色和用户自定义的角色两类。角色是一系列权限的集合,可以先将权限授予角色,然后将角色授予具有相同权限的用户。 四、求解题 现有关系 数据库 如下: S(SNO,SNAME,CITY) P(PNO,PNAME,COLOR,WEIGHT) J(JNO,JNAME,CITY) SPJ(SNO,PNO,JNO,QTY) 其 ,S为供应商,包含属性的含义依次是供应商代码、供应商名字、供应商所在城市;P为零件,包含属性的含义依次是零件代码、零件名字、颜色、重量;J为工程项目,包含属性的含义依次是工程项目代码、工程项目名字、工程项目所在城市;SPJ为供货关系,包含属性的含义依次是供应商代码、零件代码、工程项目代码,某供应商向某个项目供应数量的零件数量。 请用SQL语言完成如下问题: (1) 查询 供应工程J1零件P1的供应商号码SNO (2) 查询 供应工程J1零件为红色的供应商号码SNO (3) 查询 没有使用北京供应商生产的红色零件的工程号JNO 五、设计题(E-图) 设学校环境如下:一个系有若干个专业,每个专业一年只招一个班,每个班有若干个学生: 现要建立关于系、学生、班级的 数据库 ,关系模式为: 班CLASS(班号classid,专业名subject,系名deptname,入学年份enrolltime,人数num) 学生STUDENT(学号studentid,姓名name,年龄age,班号classid) 系DEPARTMENT(系号deptid,系名deptname) 试用PL/SQL语言完成以下功能: 1. 建 ,在定义 要求声明: (1) 每个 的主外键。 (2) 每个班级的人数不能超过30人。 (3) 学生的年龄介于15到40岁之间。 (4) 学生姓名不能为空。 2. 插入如下 数据 CLASS classid subject deptname enrolltime num 101 软件 计算机 1995 20 102 微电子 计算机 1996 30 111 无机化学 化学 1995 29 112 高分子化学 化学 1996 25 121 统计数学 数学 1995 20 131 现代语言 文 1996 20 141 国际贸易 经济 1997 30 142 国际金融 经济 1996 14 STUDENT studentid name age classid 8101 张三 18 101 8102 钱四 16 121 8103 王玲 17 131 8105 李飞 19 102 8109 赵四 18 141 8110 李可 20 142 8201 张飞 18 111 8302 周瑜 16 112 8203 王亮 17 111 8305 董庆 19 102 8409 赵龙 18 101 8510 李丽 20 142 DEPARTMENT deptid deptname 001 数学 002 计算机 003 化学 004 文 005 经济 3. 学校又新增加了一个物理系,编号为006 4. 学生张三退学,请更新相关的 。 1、有一张 test,有3个字段id,name,parentid。parentid是指父亲的id,请写一个sql语句,找出当过爷爷的id和name。 2、有一张学生 student,字段有student_id,name,即学号,名字。 还有一张选课 ,字段有student_id,lesson_id。 还有一张课程 ,字段lesson_id,lesson_name。 学生和课程是多对多的关系。 写一个sql语句,找出所有选了全部课程的学生。 3、有一张 person ,字段有id,name,age。age是年龄。 写一个sql语句,找出年龄最接近的2个人。 如有下面4条记录: 1,a,18 2,b,20 3,c,25 4,d,26 则输出3,4 select dept_id from s_emp where userid is not null; 2.列出薪金比“chad”多的所有员工。 select id,salary from s_emp where salary>(select salary from s_emp where first_name='Chad'); 3.列出所有员工的姓名及其直接上级的姓名。 select l.first_name as yuangong,e.first_name as laoban from s_emp e,s_emp l where e.manager_id=l.id(+); 4.列出受雇日期早于其直接上级的所有员工。 select l.first_name as yuangong,e.first_name as laoban from s_emp e,s_emp l where e.manager_id=l.id(+) and l.start_date>e.start_date; 5.列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门。 6.列出所有“CLERK”(办事员)的姓名及其部门名称。 7.列出最低薪金大于1500的各种工作。 8.列出在部门“SALES”(销售部)工作的员工的姓名,假定不知道销售部的部门编号。 9.列出薪金高于公司平均薪金的所有员工。 10.列出与“SCOTT”从事相同工作的所有员工。 11.列出薪金等于部门30 员工的薪金的所有员工的姓名和薪金。 12.列出薪金高于在部门30工作的所有员工的薪金的员工姓名和薪金。 13.列出在每个部门工作的员工数量、平均工资和平均服务期限。 14.列出所有员工的姓名、部门名称和工资。 15.列出从事同一种工作但属于不同部门的员工的一种组合。 16.列出所有部门的详细信息和部门人数。 17.列出各种工作的最低工资。 18.列出各个部门的MANAGER(经理)的最低薪金。 19.列出所有员工的年工资,按年薪从低到高排序。 原文:http://www.2xyd.cn/showtopic-524.aspx Oracle习题二附答案 使用scott/tiger的emp 完成练习 更多编程相关:http://www.2xyd.cn/showforum-11.aspx select distinct dname from dept where deptno in (select distinct deptno from emp); 要查部门编号如果存在于emp ,说明这个部门有员工。 select ename,job,mgr,hiredate,sal from emp where sal> (select sal from emp where ename='SMITH'); select e.ename, e.mgr , w.ename from emp e, emp w where e.mgr=w.empno; select e.ename, e.mgr , e.hiredate,w.ename,w.hiredate from emp e, emp w where e.mgr=w.empno and e.hiredate1500; select e.ename,d.dname from emp e,dept d select d.deptno,d.dname, count(e.ename), avg(e.sal), avg(months_between(sysdate,e.hiredate)) from emp e, dept d where e.deptno(+)= d.deptno group by d.deptno,dname; 或者下面的方法,这种方法更好理解,把需要汇总的生成一个视图e。 select e.*,d.dname , from (select deptno, count(ename) ,avg(sal),avg(months_between(sysdate,hiredate)) from emp group by deptno) e, dept d where e.deptno =d.deptno; select d.dname, e.ename, sal+nvl(comm,0) from emp e, dept d where d.deptno=e.deptno; select e.ename,e.job, e.deptno ,d.job, d.deptno from emp e, emp d where e.job=d.job and e.deptnod.deptno; select count(e.ename),d.dname from emp e, dept d where e.deptno(+)= d.deptno group by e.deptno,d.dname; select d.deptno,e.*,d.dname from (select deptno,count(ename) from emp group by deptno) e,dept d where e.deptno(+)= d.deptno; select job,min(sal+nvl(comm,0))from emp group by job; select deptno,min(sal) from emp where job=upper('manager') group by deptno ; select ename , (sal+nvl(comm,0))*12 yearsal from emp order by yearsal ; --1、列出至少有一个雇员的所有部门   select distinct dname from dept where deptno in (select distinct deptno from emp);   --2、列出薪金比"SMITH"多的所有雇员   select ename,sal from emp where sal>(select sal from emp where ename=upper('smith'));   --3、列出所有雇员的姓名及其直接上级的姓名   select e.ename,m.ename from emp e,emp m where e.mgr=m.empno(+);   --4、列出入职日期早于其直接上级的所有雇员   select ename from emp e where hiredate1500;   --8、列出从事“SALES”(销售)工作的雇员的姓名,假定不知道销售部的部门编号   select ename from emp where deptno = (select deptno from dept where dname=uppder('SALES'))   --9、列出薪金高于公司平均水平的所有雇员   select ename from emp where sal>(select avg(sal) from emp);   --10、列出与“SCOTT”从事相同工作的所有雇员   select ename from emp where job=(select job from emp where ename=upper('scott'));   --11、列出某些雇员的姓名和薪金,条件是他们的薪金等于部门30 任何一个雇员的薪金   select ename,sal from emp where sal in (select sal from emp where deptno=30);   --12、列出某些雇员的姓名和薪金,条件是他们的薪金高于部门30 所有雇员的薪金   select ename ,sal from emp where sal>(select max(sal) from emp where deptno=30);   --13、列出每个部门的信息以及该部门 雇员的数量   select d.deptno,dname,count(ename) from dept d left join emp e on (d.deptno=e.deptno)   group by d.deptno,dname   --14、列出所有雇员的雇员名称、部门名称和薪金   Select e.ename,d.dname,e.sal from emp e left join dept d on (d.deptno=e.deptno)   --15、列出从事同一种工作但属于不同部门的雇员的不同组合   Select tba.ename,tbb.ename,tba.job,tbb.job,tba.deptno,tba.deptno   From emp tba,emp tbb   Where tba.job=tbb.job and tba.deptnotbb.deptno   --16、列出分配有雇员数量的所有部门的详细信息,即使是分配有0个雇员   Select dept.deptno,dname,loc,count(empno)   From dept,emp   Where dept.deptno=emp.deptno(+)   Group by dept.deptno,dname,loc   --17、列出各种类别工作的最低工资   Select min(sal) from emp group by job   --18、列出各个部门的MANAGER(经理)的最低薪金   Select deptno,min(sal) from emp where job=upper(‘manager’) group by deptno   --19、列出按年薪排序的所有雇员的年薪   select (sal+nvl(comm,0))*12 as avn from emp order by avn   --20、列出薪金水平处于第四位的雇员   Select * from (Select ename,sal, rank() over (order by sal desc) as grade from emp) where grade=4 --1、选择部门30 的雇员   select * from emp where deptno=30;   --2、列出所有办事员的姓名、编号和部门   select ename,empno,dname from emp e inner join dept d on e.deptno = d.deptno where job=upper(‘clerk’);   --3、找出佣金高于薪金的雇员   select * from emp where comm>sal;   --4、找出佣金高于薪金60%的雇员   select * from emp where comm>sal*0.6   --5、找出部门10 所有经理和部门20 的所有办事员的详细资料   select * from emp where (deptno=10 and job=upper(‘manager‘)) or (deptno=20 and job=upper(‘clerk ‘));   --6、找出部门10 所有经理、部门20 所有办事员,既不是经理又不是办事员但其薪金>=2000的所有雇员的详细资料   select * from emp where (deptno=10 and job=upper(‘manager‘)) or (deptno=20 and job=upper(‘clerk ‘)) or (jobupper(‘manager’) and jobupper(‘clerk’) and sal>=2000)   --7、找出收取佣金的雇员的不同工作   select distinct job from emp where comm>0;   --8、找出不收取佣金或收取的佣金低于100的雇员   select * from emp where nvl(comm,0)25;   select * from emp where hiredate0;   --25、以年、月和日显示所有雇员的服务年限   Select months_between(sysdate,hiredate)/12 as “年”, months_between(sysdate,hiredate) as “月”, sysdate-hiredate as “日” from emp
    窗体顶端 1. (单选题) 下列给出的计算机软件 ,(Windows2000、Word、Excel、Powerpoint )是微软公司Office 办公自动化软件,( )是常用的 数据库 开发平台软件。(本题2.0分) A、 CPU、ROM、DOS B、 Windows2000、Word、Excel、Powerpoint C、 软盘、硬盘和 IE4.0 D、 Access2000 、Visual Foxpro6.0 、SQL Server2000 2. (单选题) 按照计算机软件的分类,操作系统是一种( )。(本题2.0分) A、 系统软件 B、 应用软件 C、 源程序 D、 操作规 3. (单选题) 计算机程序 ,用高级语言编写的程序经编译后产生的程序叫( ) 。(本题2.0分) A、 源程序 B、 目标程序 C、 连接程序 D、 运行程序 4. (单选题) 计算机存储系统 , 示信息存贮容量的单位2KB是容量大小是指( )。(本题2.0分) A、 1024*2 B、 1024*2 C、 2000 D、 2000 5. (单选题) 微型计算机 的80486或Pentium Pro指的是( )。(本题2.0分) A、 存贮容量 B、 运算速度 C、 CPU的类型 D、 显示器型号 6. (单选题) 下列给出的( )不是微机硬件系统的主要性能指标。(本题2.0分) A、 机器主频 B、 存容量 C、 字长 D、 OS的性能 7. (单选题) 多媒体计算机配置 ,4倍速VCD光驱的读取速率是( )KB/s左右。(本题2.0分) A、 150 B、 300 C、 400 D、 600 8. (单选题) 某台连网计算机的IP地址为210.37.6.20,该IP地址属于( )地址。(本题2.0分) A、 A类地址 B、 B类地址 C、 C类地址 D、 D类地址 9. (单选题) 二进制数101,将其转换成八进制数是(11 ),转换成十六进制数又是( ) 。(本题2.0分) A、 9H B、 5H C、 6H D、 7H 10. (单选题) 下列( )不属于操作系统的软件。(本题2.0分) A、 Windows2000 B、 Netware C、 Access2000 D、 UNIX 11. (单选题) ( ) The basic unit of information in computer. It usually consists of eight binary bits.(本题2.0分) A、 Byte B、 Bit C、 Word D、 data 12. (单选题) 微机的发展是以( )的发展为核心。(本题2.0分) A、 存 B、 硬盘 C、 主板 D、 微处理器 13. (单选题) 下列都属于计算机软件的选项有( ) 。(本题2.0分) A、 CPU、ROM、DOS 、CD-ROM B、 Windows、Word、Excel 、UNIX C、 软盘、硬盘和IE4.0 D、 以上都不是软件 14. (单选题) 二进制数1011转换成十六进制数是( ) 。(本题2.0分) A、 10 B、 11 C、 A D、 B 15. (单选题) 数据 处理的最小单位是( )。(本题2.0分) A、 数据 B、 数据 元素 C、 数据 项 D、 数据 结构 16. (单选题) 建立 数据 的SQL关键词为( )(本题2.0分) A、 CREATE TABLE B、 CREATE VIEW C、 CREATE INDEX D、 ALTER TABLE 17. (单选题) 在关系 数据库 ,用来 示实体之间联系的是( )。(本题2.0分) A、 树结构 B、 网结构 C、 线性 D、 二维 18. (单选题) 算法的 空间 复杂度是指( )。(本题2.0分) A、 算法程序的长度 B、 算法程序 的指令条数 C、 算法程序所占的存储 空间 D、 算法执行过程 所需的存储 空间 19. (单选题) 根据国标规定,每个汉字在计算机 占用 ( )存储。(本题2.0分) A、 一个字节 B、 二个字节 C、 三个字节 D、 四个字节 20. (单选题) 聚强度最低的是( )。(本题2.0分) A、 偶然聚 B、 功能聚 C、 过程聚 D、 时间聚 21. (单选题) 一个完整的计算机系统包括( )。(本题2.0分) A、 计算机及其外部设备 B、 主机、键盘、显示器 C、 系统软件和应用软件 D、 硬件系统和软件系统 22. (单选题) 按照计算机软件的分类,操作系统是一种( )。(本题2.0分) A、 系统软件 B、 应用软件 C、 源程序 D、 操作规 23. (单选题) 央处理器CPU是指( )(本题2.0分) A、 运算器和主存 B、 控制器 C、 运算器和控制器 D
    第一章 绪论 1.1. 选题背景 这几年,许多新名词涌入我们的视野:博客、圈子、播客、WAP等。这些都预示着我们进入了一个新的互联网阶段web 2.0,它是相对web 1.0的新的一类互联网应用的总称,是一次从核心内容到外部应用的革命[10]。这个阶段发展迅速,互联网应用趋于多样化,其 变化最大的是由web 1.0网站创造内容的时代变为由用户创造内容的web 2.0时代。 在web 2.0应用 ,博客(Blog)是web 2.0核心应用 最典型、最流行的代 之一,也是web 2.0技术应用的最直观的 现,是web 2.0精神和理念的具体体现。 1.2. 问题的提出 Blog记载了日常发生的事情和自己的兴趣爱好,把自己的思想和知识和他人分享、交流,同时又通过“六度 空间 ”结识了更多志趣相投的朋友;而越来越多专业知识的 Blog 的出现,让我们看到了 Blog 更多所蕴涵的巨大的信息价值:不同的 Blog 选择不同的内容,收集和整理成为很多人关注的专业 Blog ——目前越来越多的人获取信息的来源是一些固定的 Blog 。随着博客人数的增加, Blog 作为一种新的生活方式、新的工作方式、新的学习方式已经被越来越多的人所接受,并且在改变传统的网络和社会结构:网络信息不再是虚假不可验证的,交流和沟通更有明确的选择和方向性,单一的思想和群体的智慧结合变的更加有效,个人出版变成人人都可以实现的梦想—— Blog 正在影响和改变着我们的生活。 1.3. 系统的开发目标 管理员通过前台页面进入后台管理模块后,可对注册的博客用户进行维护,包括对注册用户的添加、查找、修改和删除。 管理员进入登录后,可对帐户进行管理,包括添加管理员帐户、修改管理员帐户、删除管理员帐户和对帐户进行权限设置。 博客用户通过前台登录后,可对自己的博客 空间 进行管理,包括发布自己的网络日志、收藏个人图片、和相关人员进行交流和沟通以及删除访问者发 的评论等。 因此,在具体设计实现该博客网站时,主要考虑了主流博客网站的几个主要功能:(1)博客的注册、登录验证功能(2) 网络用户通过关键字搜索博文功能(3) 最热门博客页面推荐浏览(4) 文章详细内容及相关评论显示(5) 博客页面访问量统计(6) 博客个人文章管理维护功能(7) 博客个人文章分类管理维护功能(8) 博客个人友情链接维护功能(9) 博客个人基本信息管理维护功能(10) 博客图片上传及个人相册管理(11) 网络用户写留言,博主查看留言。 第二章 系统设计 2.1. 系统分析 在整个blog进行开发之前,要确定出整个项目的整体架构,包括系统的选型、运行环境的确定及系统结构设计。下面对这进行详细介绍。 在进行软件系统开发的最初环节,一般都需要进行系统的选型,即根据系统功能的实际需求,选择合适的开发工具及软件架构。 blog对系统的可靠性、稳定性有比较高的要求。本系统设计时,比较主流的B/S设计有基于JSP、ASP、PHP、CGI及J2EE等模式。相比较而言PHP的功能相对简单,不适合做大程序;而CGI效率相对较低,所以也不考虑。由于J2EE的开源的框架 提供了MVC模式实现框架Struts、对象关系模型 的Hibernate 的框架及拥有事务管理和依赖注入的Spring。利用现存框架可以更快开发系统。所以选择Java技术作为blog 的开发工具。 为了增加系统的吞吐量,提高并发处理客户请求数量,系统采用了IBM服务器作为主机。在 数据库 处理方面,不需要在 数据 层借助存储过程及 数据库 服务器端函数封装过多的业务逻辑,因此 数据库 系统采用相对精巧的MySQL[6]。 该在线博客系统服务器端如果需要布置到其他主机上,则该主机必备条件如下: 1. 服务器端操作系统:独立于操作系统的跨平台系统,客户端MicroSoft Windows 2000及以上; 2. 数据库 :MySQL 5.0.27版本; 3. Web服务器:Tomcat 5.5及以上版本,配合MVC设计模式及 Hibernate开发架构; 4. 客户端运行环境:能运行IE 5以上或Netscape 5以上浏览器的操作系统,配合使用Ajax技术; 5. 客户端运行工具:目前的系统采用浏览器作为客户端,为了支持Ajax开发框架,应该选择使用IE 5以上版本浏览器。 本网站以xp为Web平台,JSP+Ajax+Servlet+JavaBean+Hibernate为网站实现技术,建立基于MySQL 数据库 系统的核心动态网页,实现博客网站前台及博客个人维护管理等功能模块。 1、 系统处理的准确性和及时性:系统处理的准确性和及时性是系统的必要性能。在系统设计和开发过程 ,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足信息处理的需求。 2、 系统的开放性和系统的可扩充性:系统在开发过程 ,应该充分考虑以后的可扩充性。例如 数据 用户选择字段方式的改变,用户 查询 的需求也会不断的更新和完善。所有这些,都要求系统提供足够的手段进行功能的调整和扩充。而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。通过软件的修补、替换完成系统的升级和更新换代。 3、 系统的易用性和易维护性:要实现这一点,就要求系统应该尽量使用用户熟悉的术语和 文信息的界面;针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。 4、 系统的 数据 要求:1、 数据 录入和处理的准确性和实时性。2、 数据 的一致性与完整性。3、 数据 的共享与独立性。 2.2. 系统的可行性分析 2.2.1. 技术可行性 技术上的可行性分析要考虑将来要采用的硬件和软件技术能否满足用户(这里是服务器,网速)提出的要求(如计算机的容量、速度等)。此外,还要考虑开发人员的水平,学习了两年的jsp开发,对于这个系统的编写,我想完整的之需要两个月就可以写出程序,再花上几天的调试,计划两个月左右就可以完成投入使用了。 我们掌握了 数据库 及其应用技术、 数据库 原理、计算机网络技术等课程,对 数据库 的设计、应用、维护及局域网的组成有了深刻的认识与一定的动手实践能力,考取了信息处理、程序设计、 数据库 技术等国家IT认证。从一定程度上具备了开发一个小型系统的能力。再有就! 2.2.2. 经济可行性 主要从对项目的经济上进行分析评价,一方面是支出的费用,包括设备购置费、管理和维护费用、人员工资和培训费等,另一个是取得的收益。这是个小型的系统,从投入的人力,财力与物力来讲是非常小的,发布出去之需要注册域名就可以了,从节省人力方面,可以让管理人员从繁与复杂的工作 解脱出来,做更多的工作。 2.2.3. 管理可行性 有IP地址、用户名与密码等,可以下载一个FTP上传工具(cure)上传更新后的内容.可以在http://www.skycn.com/soft/683.html下载到. 下载以后,通过"站点管理"-->"新建站点".输入IP,用户名,密码.然后连接即可. 当然也可用FTP工具.直接在IE浏览器地址栏输入ftp://www.域名/然后输入用户名和密码.同样可以上传.随时更新文件! 第三章 开发环境的说明与安装 3.1. 开发语言的选择 3.1.1. JAVA简介 Java是Sun公司推出的新的一代面向对象程序设计语言,特别适合于Internet应用程序开发。Java的产生与流行是当今Internet发展的客观要求,Java是一门各方面性能都很好的编程语言,它的基本特点是简单、面向对象、分布式、解释的、健壮的、安全的、结构 立的、可移植的、性能很优异的、多线程的、动态的,特别适合在Internet环境上开发的应用系统。 3.1.2. Web应用程序开发环境—JSP技术 JSP的全称是Java Server Pages,它是SUN推出的一种动态网页技术标准。它在传统的静态页面文件(*.html,*.htm) 加入JAVA程序片段和JSP标记,就构成了JSP页面。JSP具有以下的优点: 1、将业务层与 示层分离:使用JSP技术,网络开发人员可充分使用HTML来设计页面显示部分(如字体颜色等),并使用JSP指令或者JAVA程序片段来生成网页上的动态内容; 2、能够跨平台:JSP支持绝大部分平台,包括现在非常流行的LINUX系统,应用非常广泛的Apache服务器也提供了支持JSP的服务; 3、组件的开发和使用很方便:如ASP的组件是由C++,VB等语言开发的,并需要注册才能使用;而JSP的组件是用Java开发的,可以直接使用; 4、一次编写,处处运行:作为JAVA开发平台的一部分,JSP具有JAVA的所有优点,包括Write once , Run everywhere. 3.2. 数据库 的选择 3.2.1. Web应用程序开发环境— SQLserver 数据库 SQL Server是由Microsoft开发和推广的关系 数据库 管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的。SQL Server 2000是Microsoft公司于2000年推出的最新版本。 SQL Server 特点:   1.真正的客户机/服务器体系结构。   2.图形化用户界面,使系统管理和 数据库 管理更加直观、简单。   3.丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。   4.SQL Server与Windows NT完全集成,利用了NT的许多功能,如发送和接受消息,管理登录安全性等。SQL Server也可以很好地与Microsoft BackOffice产品集成。   5.具有很好的伸缩性,可跨越从运行Windows 95/98的膝上型电脑到运行Windows 2000的大型多处理器等多种平台使用。   6.对Web技术的支持,使用户能够很容易地将 数据库 数据 发布到Web页面上。   7.SQL Server提供 数据 仓库功能,这个功能只在Oracle和其他更昂贵的DBMS 才有。   SQL Server 2000与以前版本相比较,又具有以下新特性 :   1.支持XML(Extensive Markup Language,扩展标记语言)   2.强大的基于Web的分析   3.支持OLE DB和多种 查询 4.支持分布式的分区视图   安装、运行SQL Server 2000的硬件需求   (1)计算机   Inter及其兼容计算机,Pentium 166Mz或者更高处理器或DEC Alpha和其兼容系统。   (2)内存(RAM)   企业版最少64MB内存,其他版本最少需要32MB内存,建议使用更多的内存。   (3)硬盘 空间 完全安装(Full)需要180MB的 空间 ,典型安装(Typical)需要170MB的 空间 ,最小安装(Minimum)需要65MB的 空间 。 3.3. 开发工具的选择 MyEclipse,Deamweare,选择 SQLserver 作为后台的 数据库 ,选择JAVA、JSP、JavaScript、Html作为应用程序开发工具,运用Tomcat服务器技术,整个系统完全基于B/S (Browser/Server)模式进行设计。 1、Tomcat应用服务器 目前支持JSP的应用服务器是较多的,Tomcat是其 较为流行的一个Web服务器,被JavaWorld杂志的编辑选为2001年度最具创新的Java产品,可见其在业界的地位。 Tomcat是一个免费的开源的Serlvet容器,在Tomcat ,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器 访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp转化为Servlet文件,然后编译。编译以后,访问将会很快。 Tomcat也具有传统的Web服务器的功能:处理Html页面。但是与Apache相比,它的处理静态Html的能力就不如Apache。我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理Jsp和Servlet。Tomcat是一个很好的工具,不仅仅因为其免费,功能强大,更因为其开放性,越来越受到人们的重视。 2、 B/S 开发模式 伴随着Internet的迅速发展,计算机技术正在由基于C/S(client/ Server)模式的应用系统转变为基于B/S模式的应用系统。 过去,网络软件的开发都采用C/S(client)模式,在这种模式下,主要的业务逻辑都集 于客户端程序,因此,必然导致以下问题: 系统安装、调试、维护和升级困难。由于客户端的硬件配置可能存在差异,软件环能各不相同,因此,在安装时,必须对每一个客户端分别进行配置,同样,在软件升级时也要对客户端分别处理。 B/S模式带来了巨大的好处: 开发成本及维护成本降低。由于B/S架构管理软件只安装在服务器端(Server)上,即应用程序在部署、升级、维护时,只需要在服务器端进行配置就可以了,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。 良好的安全性能,防火墙技术可以保证后台 数据库 的安全性。所有的配置工作都集 在服务器端且所有客户端请求都是通过DBMS来访问 数据库 ,从而大大减少了 数据 直接暴露的风险。 第四章 系统设计 4.1开发框架技术介绍 对于框架技术,我们采用Struts+ajax的整合! Struts是应用比较广泛的一种 现层框架 1、 Struts是一个为开发基于模型(Model)-视图(View)-控制器(Controller)(MVC)模式的应用架构的开源框架,是利用Servlet,JSP和custom tag library构建Web应用的一项非常有用的技术。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速。它使用服务层框架可以将JavaBeans从Jsp/Servlet 分离出来,而使用 现层框架则可以将Jsp 剩余的JavaBeans完全分离,这部分JavaBeans主要负责显示相关信息,一般是通过标签库(Taglib)实现,不同框架有不同自己的标签库,Struts是应用比较广泛的一种 现层框架。 2、 Ajax我们主要应用就是xmlhttprequest,回调函数实现局部刷新达道 数据 更新! 4.2需求分析 Blog网站主要是实现注册用户登录、管理相关信息、博文及相关评论、查看留言、友情链接、及图片的上传和图像的播放而为上网用户提供按博文主题搜索,查看注册用户的博文及提出相关评论,并为注册用户写留言,游览注册用户的相册、注册等功能的系统。下面就以两种不同的用户来分析博客网站的需求。 4.2.1注册博友 首先必须在博客首页 登录填写用户名和密码,这样才能执行一些相关操作,不然就是普通用户只能查看一些信息,而不能发 博文。可以在管理页面上添加博文的分类,可以上传图片和游览自己的相册,在上传过程 可以将一张图片定义为自己的签名,在个人管理页面 注册用户还可以修改自己的个人信息。博文管理,友情链接管理及博文分类管理,用例图2。 图2 博客管理页面的用例图 在博客主界面 博文时可以选择博文类型,这样可以更好管理自己的博文。并查看和删除网友对自己的博文的一些评论、查看和删除网友留下的一些留言,提供与其他网友交流的 空间 。更好交流,在信息时代人们通过个人 空间 沟通也用来但不能在自己的博客主页面 提交评论和留言。。这样在本系统 就可以为博友提供更多的个人色彩。在管理页面 添加和删除友情连接。这样博友可以在自己 空间 快速定位自己的关心的网站。这样还可以让网友看到自己的一些信息。友情链接及网页访问量统计显示:在博客的个人页面 还提供了推荐给普通网络用户的相关友情链接,此外,对个人页面的访问量也在随时进行统计,并在个人页面 进行直观的显示。 博客主页面的用例图如图3所示: 图3 博客主页面的用例图 4.2.2 普通用户 在博客注册页面注册成为博客的注册用户,才可以拥有自己独立的 空间 ,进入某一博客页面查看相关文章信息时,可以随时对自己所感兴趣的文章发 评论,同时也可以查看到其他人针对该博文的评论。普通用户在阅读博文时可以在最后留下自己的一些评论。他也可以留下更多的信息。这样他可以写留言。这样他留下的信息就更快地被博友所看到。普通用户进入博友的用例图如图4所示: 图4上网博友在博客主页面的用例图 普通网友可以搜索自己关心的一些 数据 。并且在搜索结果 提供在结果范围内再次搜索。这样就可以将范围缩小。首页向注册用户提供登陆模块,注册用户在博客网站首页跟上网网友一样可以查看博客和博文推荐。上网网友可以注册成为博客用户,拥有自己独立的 空间 。这一模块的用例图如图5所示: 图5 博客首页的用例图 4.3 功能模块介绍 4.3.1 博客注册登录管理模块 博客注册登录管理模块用于建立博客网站固定的客户群体,通过记录对应的博客档案,实现对博客信息的后台维护及管理,同时也便于通过博客档案库将网站最新动态及相关企业的信息方便地传达给每一位潜在的客户。 该功能模块实现了以下几个子功能。 (1)新博客在线注册。 (2)博客登录管理。 (3)跳转到博客主页。 只有进行登录并通过身份验证的用户,才可以在个人博客页面发 日志,并借助个人设置实现对个人博客相关信息的管理维护。对于没有经过身份验证的网络用户不允许在博客页面 日志,更不允许对博客页面信息进行管理维护。 该模块实现新博客的注册及登录验证功能。其 ,注册新博客时会对用户输入的注册信息进行有效性验证,包括基本 数据 格式的有效性以及逻辑有效性,例如,用户名被 占用 时将及时给出提示。注册成功的博客登录时,会随时根据博客输入的登录信息进行提示,如用户名错误或者密码错误。
    create table #Data(name varchar(100),row varchar(100),reserved varchar(100),data varchar(100),index_size varchar(100),unused varchar(100)) declare @name varchar(100) declare cur cursor for exec sp_spaceused @tbname 但是这只能 查询 单个 的信息。在sql server 的系统 sys.tables ,没有保存每个 的行数, 空间 大小等信息。 所以只能自己编写存储过程,便利DB 所有 ,循环调用 sp_spaceused 把相关信息存储到. use information_schema; – 2. 查询 所有 数据 的大小: select concat(round(sum(data_length/1024/1024),2),‘MB’) as data from information_schema.tables – 3. 查看实例下所有 数据库 空间 占用 情况 select table_schema ,concat(round(sum(data_length/10
    第一章 绪论 1.1. 选题背景 这几年,许多新名词涌入我们的视野:博客、圈子、播客、WAP等。这些都预示着我们进入了一个新的互联网阶段web 2.0,它是相对web 1.0的新的一类互联网应用的总称,是一次从核心内容到外部应用的革命[10]。这个阶段发展迅速,互联网应用趋于多样化,其 变化最大的是由web 1.0网站创造内容的时代变为由用户创造内容的web 2.0时代。 在web 2.0应用 ,博客(Blog)是web 2.0核心应用 最典型、最流行的代 之一,也是web 2.0技术应用的最直观的 现,是web 2.0精神和理念的具体体现。 1.2. 问题的提出 Blog记载了日常发生的事情和自己的兴趣爱好,把自己的思想和知识和他人分享、交流,同时又通过“六度 空间 ”结识了更多志趣相投的朋友;而越来越多专业知识的 Blog 的出现,让我们看到了 Blog 更多所蕴涵的巨大的信息价值:不同的 Blog 选择不同的内容,收集和整理成为很多人关注的专业 Blog ——目前越来越多的人获取信息的来源是一些固定的 Blog 。随着博客人数的增加, Blog 作为一种新的生活方式、新的工作方式、新的学习方式已经被越来越多的人所接受,并且在改变传统的网络和社会结构:网络信息不再是虚假不可验证的,交流和沟通更有明确的选择和方向性,单一的思想和群体的智慧结合变的更加有效,个人出版变成人人都可以实现的梦想—— Blog 正在影响和改变着我们的生活。 1.3. 系统的开发目标 管理员通过前台页面进入后台管理模块后,可对注册的博客用户进行维护,包括对注册用户的添加、查找、修改和删除。 管理员进入登录后,可对帐户进行管理,包括添加管理员帐户、修改管理员帐户、删除管理员帐户和对帐户进行权限设置。 博客用户通过前台登录后,可对自己的博客 空间 进行管理,包括发布自己的网络日志、收藏个人图片、和相关人员进行交流和沟通以及删除访问者发 的评论等。 因此,在具体设计实现该博客网站时,主要考虑了主流博客网站的几个主要功能:(1)博客的注册、登录验证功能(2) 网络用户通过关键字搜索博文功能(3) 最热门博客页面推荐浏览(4) 文章详细内容及相关评论显示(5) 博客页面访问量统计(6) 博客个人文章管理维护功能(7) 博客个人文章分类管理维护功能(8) 博客个人友情链接维护功能(9) 博客个人基本信息管理维护功能(10) 博客图片上传及个人相册管理(11) 网络用户写留言,博主查看留言。 第二章 系统设计 2.1. 系统分析 在整个blog进行开发之前,要确定出整个项目的整体架构,包括系统的选型、运行环境的确定及系统结构设计。下面对这进行详细介绍。 在进行软件系统开发的最初环节,一般都需要进行系统的选型,即根据系统功能的实际需求,选择合适的开发工具及软件架构。 blog对系统的可靠性、稳定性有比较高的要求。本系统设计时,比较主流的B/S设计有基于JSP、ASP、PHP、CGI及J2EE等模式。相比较而言PHP的功能相对简单,不适合做大程序;而CGI效率相对较低,所以也不考虑。由于J2EE的开源的框架 提供了MVC模式实现框架Struts、对象关系模型 的Hibernate 的框架及拥有事务管理和依赖注入的Spring。利用现存框架可以更快开发系统。所以选择Java技术作为blog 的开发工具。 为了增加系统的吞吐量,提高并发处理客户请求数量,系统采用了IBM服务器作为主机。在 数据库 处理方面,不需要在 数据 层借助存储过程及 数据库 服务器端函数封装过多的业务逻辑,因此 数据库 系统采用相对精巧的MySQL[6]。 该在线博客系统服务器端如果需要布置到其他主机上,则该主机必备条件如下: 1. 服务器端操作系统:独立于操作系统的跨平台系统,客户端MicroSoft Windows 2000及以上; 2. 数据库 :MySQL 5.0.27版本; 3. Web服务器:Tomcat 5.5及以上版本,配合MVC设计模式及 Hibernate开发架构; 4. 客户端运行环境:能运行IE 5以上或Netscape 5以上浏览器的操作系统,配合使用Ajax技术; 5. 客户端运行工具:目前的系统采用浏览器作为客户端,为了支持Ajax开发框架,应该选择使用IE 5以上版本浏览器。 本网站以xp为Web平台,JSP+Ajax+Servlet+JavaBean+Hibernate为网站实现技术,建立基于MySQL 数据库 系统的核心动态网页,实现博客网站前台及博客个人维护管理等功能模块。 1、 系统处理的准确性和及时性:系统处理的准确性和及时性是系统的必要性能。在系统设计和开发过程 ,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足信息处理的需求。 2、 系统的开放性和系统的可扩充性:系统在开发过程 ,应该充分考虑以后的可扩充性。例如 数据 用户选择字段方式的改变,用户 查询 的需求也会不断的更新和完善。所有这些,都要求系统提供足够的手段进行功能的调整和扩充。而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。通过软件的修补、替换完成系统的升级和更新换代。 3、 系统的易用性和易维护性:要实现这一点,就要求系统应该尽量使用用户熟悉的术语和 文信息的界面;针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。 4、 系统的 数据 要求:1、 数据 录入和处理的准确性和实时性。2、 数据 的一致性与完整性。3、 数据 的共享与独立性。 2.2. 系统的可行性分析 2.2.1. 技术可行性 技术上的可行性分析要考虑将来要采用的硬件和软件技术能否满足用户(这里是服务器,网速)提出的要求(如计算机的容量、速度等)。此外,还要考虑开发人员的水平,学习了两年的jsp开发,对于这个系统的编写,我想完整的之需要两个月就可以写出程序,再花上几天的调试,计划两个月左右就可以完成投入使用了。 我们掌握了 数据库 及其应用技术、 数据库 原理、计算机网络技术等课程,对 数据库 的设计、应用、维护及局域网的组成有了深刻的认识与一定的动手实践能力,考取了信息处理、程序设计、 数据库 技术等国家IT认证。从一定程度上具备了开发一个小型系统的能力。再有就! 2.2.2. 经济可行性 主要从对项目的经济上进行分析评价,一方面是支出的费用,包括设备购置费、管理和维护费用、人员工资和培训费等,另一个是取得的收益。这是个小型的系统,从投入的人力,财力与物力来讲是非常小的,发布出去之需要注册域名就可以了,从节省人力方面,可以让管理人员从繁与复杂的工作 解脱出来,做更多的工作。 2.2.3. 管理可行性 有IP地址、用户名与密码等,可以下载一个FTP上传工具(cure)上传更新后的内容.可以在http://www.skycn.com/soft/683.html下载到. 下载以后,通过"站点管理"-->"新建站点".输入IP,用户名,密码.然后连接即可. 当然也可用FTP工具.直接在IE浏览器地址栏输入ftp://www.域名/然后输入用户名和密码.同样可以上传.随时更新文件! 第三章 开发环境的说明与安装 3.1. 开发语言的选择 3.1.1. JAVA简介 Java是Sun公司推出的新的一代面向对象程序设计语言,特别适合于Internet应用程序开发。Java的产生与流行是当今Internet发展的客观要求,Java是一门各方面性能都很好的编程语言,它的基本特点是简单、面向对象、分布式、解释的、健壮的、安全的、结构 立的、可移植的、性能很优异的、多线程的、动态的,特别适合在Internet环境上开发的应用系统。 3.1.2. Web应用程序开发环境—JSP技术 JSP的全称是Java Server Pages,它是SUN推出的一种动态网页技术标准。它在传统的静态页面文件(*.html,*.htm) 加入JAVA程序片段和JSP标记,就构成了JSP页面。JSP具有以下的优点: 1、将业务层与 示层分离:使用JSP技术,网络开发人员可充分使用HTML来设计页面显示部分(如字体颜色等),并使用JSP指令或者JAVA程序片段来生成网页上的动态内容; 2、能够跨平台:JSP支持绝大部分平台,包括现在非常流行的LINUX系统,应用非常广泛的Apache服务器也提供了支持JSP的服务; 3、组件的开发和使用很方便:如ASP的组件是由C++,VB等语言开发的,并需要注册才能使用;而JSP的组件是用Java开发的,可以直接使用; 4、一次编写,处处运行:作为JAVA开发平台的一部分,JSP具有JAVA的所有优点,包括Write once , Run everywhere. 3.2. 数据库 的选择 3.2.1. Web应用程序开发环境— SQLserver 数据库 SQL Server是由Microsoft开发和推广的关系 数据库 管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的。SQL Server 2000是Microsoft公司于2000年推出的最新版本。 SQL Server 特点:   1.真正的客户机/服务器体系结构。   2.图形化用户界面,使系统管理和 数据库 管理更加直观、简单。   3.丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。   4.SQL Server与Windows NT完全集成,利用了NT的许多功能,如发送和接受消息,管理登录安全性等。SQL Server也可以很好地与Microsoft BackOffice产品集成。   5.具有很好的伸缩性,可跨越从运行Windows 95/98的膝上型电脑到运行Windows 2000的大型多处理器等多种平台使用。   6.对Web技术的支持,使用户能够很容易地将 数据库 数据 发布到Web页面上。   7.SQL Server提供 数据 仓库功能,这个功能只在Oracle和其他更昂贵的DBMS 才有。   SQL Server 2000与以前版本相比较,又具有以下新特性 :   1.支持XML(Extensive Markup Language,扩展标记语言)   2.强大的基于Web的分析   3.支持OLE DB和多种 查询 4.支持分布式的分区视图   安装、运行SQL Server 2000的硬件需求   (1)计算机   Inter及其兼容计算机,Pentium 166Mz或者更高处理器或DEC Alpha和其兼容系统。   (2)内存(RAM)   企业版最少64MB内存,其他版本最少需要32MB内存,建议使用更多的内存。   (3)硬盘 空间 完全安装(Full)需要180MB的 空间 ,典型安装(Typical)需要170MB的 空间 ,最小安装(Minimum)需要65MB的 空间 。 3.3. 开发工具的选择 MyEclipse,Deamweare,选择 SQLserver 作为后台的 数据库 ,选择JAVA、JSP、JavaScript、Html作为应用程序开发工具,运用Tomcat服务器技术,整个系统完全基于B/S (Browser/Server)模式进行设计。 1、Tomcat应用服务器 目前支持JSP的应用服务器是较多的,Tomcat是其 较为流行的一个Web服务器,被JavaWorld杂志的编辑选为2001年度最具创新的Java产品,可见其在业界的地位。 Tomcat是一个免费的开源的Serlvet容器,在Tomcat ,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。你在浏览器 访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp转化为Servlet文件,然后编译。编译以后,访问将会很快。 Tomcat也具有传统的Web服务器的功能:处理Html页面。但是与Apache相比,它的处理静态Html的能力就不如Apache。我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理Jsp和Servlet。Tomcat是一个很好的工具,不仅仅因为其免费,功能强大,更因为其开放性,越来越受到人们的重视。 2、 B/S 开发模式 伴随着Internet的迅速发展,计算机技术正在由基于C/S(client/ Server)模式的应用系统转变为基于B/S模式的应用系统。 过去,网络软件的开发都采用C/S(client)模式,在这种模式下,主要的业务逻辑都集 于客户端程序,因此,必然导致以下问题: 系统安装、调试、维护和升级困难。由于客户端的硬件配置可能存在差异,软件环能各不相同,因此,在安装时,必须对每一个客户端分别进行配置,同样,在软件升级时也要对客户端分别处理。 B/S模式带来了巨大的好处: 开发成本及维护成本降低。由于B/S架构管理软件只安装在服务器端(Server)上,即应用程序在部署、升级、维护时,只需要在服务器端进行配置就可以了,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。 良好的安全性能,防火墙技术可以保证后台 数据库 的安全性。所有的配置工作都集 在服务器端且所有客户端请求都是通过DBMS来访问 数据库 ,从而大大减少了 数据 直接暴露的风险。 第四章 系统设计 4.1开发框架技术介绍 对于框架技术,我们采用Struts+ajax的整合! Struts是应用比较广泛的一种 现层框架 1、 Struts是一个为开发基于模型(Model)-视图(View)-控制器(Controller)(MVC)模式的应用架构的开源框架,是利用Servlet,JSP和custom tag library构建Web应用的一项非常有用的技术。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速。它使用服务层框架可以将JavaBeans从Jsp/Servlet 分离出来,而使用 现层框架则可以将Jsp 剩余的JavaBeans完全分离,这部分JavaBeans主要负责显示相关信息,一般是通过标签库(Taglib)实现,不同框架有不同自己的标签库,Struts是应用比较广泛的一种 现层框架。 2、 Ajax我们主要应用就是xmlhttprequest,回调函数实现局部刷新达道 数据 更新! 4.2需求分析 Blog网站主要是实现注册用户登录、管理相关信息、博文及相关评论、查看留言、友情链接、及图片的上传和图像的播放而为上网用户提供按博文主题搜索,查看注册用户的博文及提出相关评论,并为注册用户写留言,游览注册用户的相册、注册等功能的系统。下面就以两种不同的用户来分析博客网站的需求。 4.2.1注册博友 首先必须在博客首页 登录填写用户名和密码,这样才能执行一些相关操作,不然就是普通用户只能查看一些信息,而不能发 博文。可以在管理页面上添加博文的分类,可以上传图片和游览自己的相册,在上传过程 可以将一张图片定义为自己的签名,在个人管理页面 注册用户还可以修改自己的个人信息。博文管理,友情链接管理及博文分类管理,用例图2。 图2 博客管理页面的用例图 在博客主界面 博文时可以选择博文类型,这样可以更好管理自己的博文。并查看和删除网友对自己的博文的一些评论、查看和删除网友留下的一些留言,提供与其他网友交流的 空间 。更好交流,在信息时代人们通过个人 空间 沟通也用来但不能在自己的博客主页面 提交评论和留言。。这样在本系统 就可以为博友提供更多的个人色彩。在管理页面 添加和删除友情连接。这样博友可以在自己 空间 快速定位自己的关心的网站。这样还可以让网友看到自己的一些信息。友情链接及网页访问量统计显示:在博客的个人页面 还提供了推荐给普通网络用户的相关友情链接,此外,对个人页面的访问量也在随时进行统计,并在个人页面 进行直观的显示。 博客主页面的用例图如图3所示: 图3 博客主页面的用例图 4.2.2 普通用户 在博客注册页面注册成为博客的注册用户,才可以拥有自己独立的 空间 ,进入某一博客页面查看相关文章信息时,可以随时对自己所感兴趣的文章发 评论,同时也可以查看到其他人针对该博文的评论。普通用户在阅读博文时可以在最后留下自己的一些评论。他也可以留下更多的信息。这样他可以写留言。这样他留下的信息就更快地被博友所看到。普通用户进入博友的用例图如图4所示: 图4上网博友在博客主页面的用例图 普通网友可以搜索自己关心的一些 数据 。并且在搜索结果 提供在结果范围内再次搜索。这样就可以将范围缩小。首页向注册用户提供登陆模块,注册用户在博客网站首页跟上网网友一样可以查看博客和博文推荐。上网网友可以注册成为博客用户,拥有自己独立的 空间 。这一模块的用例图如图5所示: 图5 博客首页的用例图 4.3 功能模块介绍 4.3.1 博客注册登录管理模块 博客注册登录管理模块用于建立博客网站固定的客户群体,通过记录对应的博客档案,实现对博客信息的后台维护及管理,同时也便于通过博客档案库将网站最新动态及相关企业的信息方便地传达给每一位潜在的客户。 该功能模块实现了以下几个子功能。 (1)新博客在线注册。 (2)博客登录管理。 (3)跳转到博客主页。 只有进行登录并通过身份验证的用户,才可以在个人博客页面发 日志,并借助个人设置实现对个人博客相关信息的管理维护。对于没有经过身份验证的网络用户不允许在博客页面 日志,更不允许对博客页面信息进行管理维护。 该模块实现新博客的注册及登录验证功能。其 ,注册新博客时会对用户输入的注册信息进行有效性验证,包括基本 数据 格式的有效性以及逻辑有效性,例如,用户名被 占用 时将及时给出提示。注册成功的博客登录时,会随时根据博客输入的登录信息进行提示,如用户名错误或者密码错误。 4.3.2 博客及文章检索 查询 模块 博客及文章检索 查询 模块为网络用户提供便捷的搜索,以及日志阅读浏览等功能,同时对日志的评论信息、博客推荐也能够及时反馈给网络用户。 该功能模块实现了以下几个子功能。 (1)热门博客页面推荐。 (2)最新博客日志推荐。 (3)日志信息关键字搜索。 该模块能够在网页 随时提供在线的最新日志信息。该信息需要定期更新,网络用户可以随时获得最新日志以及最热门的博客推荐。在客户选择了某个博客或者某个感兴趣的日志后,可以方便地跳转到对应博客页面进行日志的阅读,并和博客进行交流互动。 为了使网络用户尽快定位到所需的博客资料及日志信息,本模块提供了搜索功能,用户可以对所关注的日志信息按照标题进行关键字搜索,以避免用户浏览多个页面来寻找所需的日志信息。 4.3.3博客页面显示模块 当网络用户进入某个人博客主页后,在该页面 将提供博客日志列 的显示,同时为了方便用户浏览,在该模块 提供根据分类名进行日志列 的显示,也提供日志评论的浏览,此外还允许用户在博客页面 评论及留言。 该功能模块实现了如下几个子功能。 (1)用户可以分页查看对应的日志内容及评论信息。 (2)用户可以针对日志内容发 评论。 (3)用户可以针对博客进行留言。 (4)用户可以分类查看日志内容。 在该模块 还提供了博客页面统计信息,日志、评论及留言信息分页显示等方便用户的显示效果。 4.3.4 博客个人维护管理模块 博客个人维护管理模块用于实现用户对博客个人主页及相关信息的动态管理。 该功能模块实现了如下几个子功能: (1)日志及日志分类管理。 (2)评论及留言管理。 (3)个人基本信息维护管理。 借助该模块,用户可以随时对个人博客主页 的内容进行增加或修改,包括日志分类信息的更新、评论及留言管理等功能,也允许用户对博客的个人信息进行维护及其管理。 4.4 系统分析 本系统采用严格的J2 EE 应用结构,主要有如下几个分层。 1. 现层:由JSP 页面组成。 2. MVC 层:使用Struts框架。 3. 业务逻辑层:主要由Spring loC 容器管理的业务逻辑组件组成。 4. DAO 层:由7 个DAO 组件组成,实现类必须继承Spring提供的HibernateDaoSupport。 5. Hibernate 持久层:由7 个PO 组成,并在Hibernate Session 管理下,完成 数据库 访问。 6. 数据库 服务层:使用MySQL 数据库 存储持久化 数据 。 系统的具体分层如图5 所示。 图6 系统结构图 在图6 黑色大方框内的MVC 控制层、Service 层及DAO 组件层的组件,都由Spring IOC 容器负责生成,并管理组件的实例(实例必须是单身模式的,本系统 的bean基本上是单身的)。 4.3.1系统架构说明 本系统不仅严格按MVC 模式设计,还按J2 EE 分层设计,将 间层严格分成业务逻辑层、DAO 层及 数据 持久层等。MVC 层的控制器绝对禁止持久层访问,甚至不参与业务逻辑的实现。 现层采用传统JSP 技术。 本系统采用的是典型的J2EE 三层结构,分为 现层、 间层(业务逻辑层)和 数据 服务层。三层体系将业务规则、 数据 访问及合法性校验等工作放在 间层处理。客户端不直接与 数据库 交互,而是通过组件与 间层建立连接,再由 间层与 数据库 交互。Jsp广泛的应用和稳定的 现,为其作为 现层技术打下了坚实的基础。 间层采用的是流行的Spring+Hibernate ,为了将控制层与业务逻辑层分离,又细分为以下几种。 Web 层,就是MVC 模式里面的C,负责逻辑层和 现层的交互。调用业务逻辑层,并将业务 数据 返回给 现层作组织 现,该系统的MVC采用Struts框架。 Service 层(就是业务逻辑层),负责实现业务逻辑。业务逻辑层以DAO 层为基础,通过对DAO 组件的正面模式包装,完成系统所要求的业务逻辑。 DAO 层,负责与持久化对象交互。该层封装了 数据 的增、删、查、改的操作。 PO ,持久化对象。通过实体关系映射工具将关系型 数据库 数据 映射成对象,很方便地实现以面向对象方式操作 数据库 ,该系统采用Hibernate 作为ORM 框架。Spring 的作用贯穿了整个 间层,将Web 层、Service 层、DAO 层及PO 无缝整合,其 数据 服务层用来存放 数据 。 通过使用Hibernate 持久层,可以避免使用传统的JDBC 操作 数据库 ,对JDBC近一步包装,从而更好地使用面向对象的方式来操作 数据库 。保证了整个软件开发过程以面向对象的方式进行,即面向对象分析、设计及编程,透过Hibernte 对PO对象持久化操作,不管插入还是 查询 都是通过PO。 4.3.2实现DAO 层 DAO 还有助于提升系统的可移植性。独立的DAO 层使得系统能在不同的 数据库 之间轻易切换,底层的 数据库 实现对于业务逻辑组件是透明的。 数据库 移植时仅仅影响DAO 层,不同 数据库 的切换不会影响业务逻辑组件,因此提高了系统的可复用性。 对于不同的持久层技术, Spring 的DAO 提供一个DAO 模板,将通用的操作放在模板里完成,而对于特定的操作,则通过回调接口完成。Spring 为Hibernate 提供的DAO 支持类是: HibernateDaoSupport。 4.3.3 DAO组件的定义 DAO 组件提供了各持久化对象的基本的CRUD 操作。而在DAO 接口里则对DAO组件包含的各种CRUD 方法提供了声明,但有一些IDE 工具也可以生成基本的CRUD方法。使用DAO 接口的原因是:避免业务逻辑组件与特定的DAO组件藕合。由于DAO 组件 的方法不是开始就设计出来的,其 的很多方法可能会随着业务逻辑的需求而增加,但以下几个方法是通用 • get: 根据主键加载持久化实例。 • saveor update: 保存或更新持久化实例。 • remove: 删除持久化实例。 上面涉及了7个PO,这样我们必须设计7个对应的PODao 7个Dao必须继承BaseDao 这个BaseDao 有对接口的一些基本的CURD操作。7个Dao 如下。LinksDao ,BlogDao、FeedBackDao、ArticleDao、MessageDao、SortDao、PictureDao。这7个Dao 分别封装对自己的持久化对象的一些操作。 4.3.4 部署DAO 层 HibernateDaoSupport类只需要一个SessionFactory 属性,即可完成 数据库 访问。SessionFactroy创建Session,而 数据库 的CRUD操作都是有Session 完成,并将 查询 结果保存在一级缓存 ,每次用户提交一次会话,可能需要Session完成一些 数据库 的操作而实际的 数据库 访问由模板类HibernateTemplate完成,该模板类提供了大量便捷的方法,简化了 数据库 的访问。 第五章 数据库 设计 5.1定义( 数据 词典) 1、 数据库 名的定义使用:重点字_table;重点字可以是多个英文单词的组合,从组合的第二单词起首字母大写,字段命名是能 达字段内容的英文单词的组合,组合方式同 名重点字相同。 2、NN 示not null 不填 可为空。 3、 数据 类型不使用固定 数据库 的类型,标识大众类型,如字符串、字符、数字等。这样在更改 数据库 时需求的 数据 是可移植的 4、输写 数据 数据库 的物理名称,可用自己熟悉的语言再定义 名称,方便沟通。 5、长度定义又 数据 类型决定:如字符串可选8000以下,数字可在50位之间,字符只允许一位。 6、输入方式 数据 的来源:生成 由程序或 数据库 的索引自动生成,而不需人工录入;输入 示通过文本框等输入的 数据 ;选择 单选框、复选框、下拉列 等通过选择输入的 数据 ;自定获取是为外码的输入设定的,它由程序自动获取。 5.2主要 结构如下 1. [blogs]日志 数据 字段名 类型 说明 blogid Int(10) 日志的ID title text 日志标题 pubtime Int(11) 日志发 时间 authorid Int(8) 日志作者的UID replies Int(8) 日志的评论数 tbs Int(8) 日志的trackback数 views Int(8) 日志的查看次数 category Int(3) 日志所属的分类的ID content mediumtext 日志正文内容 property Int(1) 日志的属性 0 公开日志 1 锁定日志 2 隐藏日志 3 一般草稿 2. [user]博友登陆信息 字段名 类型 说明 userid Int(10) 博友ID nicheng Text 博友在博客里的称呼 username text 登陆时的用户名 password text 登陆密码 3. [register]用户 数据 字段名 类型 说明 userid Int(8) 登陆时需要用到的用户名 username text 用户昵称 userpwd Int(8) 登陆密码 regtime Int(11) 注册时间 usergroup Int(2) 所属的用户组ID email text 用户email qq text Qq号 msn text 用户msn gender text 用户性别 第六章 主要功能的实现 6.1 登录控制: if(this.session().getAttribute("rand")!=null){//检验随机数是否为空 if(this.checkCode.equals(this.session().getAttribute("rand").toString())){//比较随机数 uservo=userbo.queryUserByINfo(uservo);//检验用户信息并将信息返回 if(uservo!=null){//看用户是否存在 this.setUserpurview(uservo.getPurviewId());//设置用户权限 this.session().setAttribute("user", uservo);//将用户信息放在session return SUCCESS;//返回用户主界面页面 }else{ return ERROR;返回到失败页面} }else{return ERROR; }}else{ return ERROR; } 6.2 Ajax 读取txt格式 数据 function ajax_function(var1,var2){ var xmlHttp = null; //创建xmlhttprequest // Firefox, Opera 8.0+, Safari 对不同浏览器常见不同对象 xmlHttp=new XMLHttpRequest(); catch (e) // Internet Explorer xmlHttp=new ActiveXObject('Msxml2.XMLHTTP'); catch (e) xmlHttp=new ActiveXObject('Microsoft.XMLHTTP'); catch (e) alert('Your browser does not support AJAX!'); return false; xmlHttp.onreadystatechange=function() if(xmlHttp.readyState == 4 && xmlHttp.status == 200) var someDiv = document.getElementById('someDiv'); someDiv.innerHTML=xmlHttp.responseText; xmlHttp.open('GET','www/index.jsp?param1='+var1+'¶m2='+var2,true); xmlHttp.send(null); 6.3 系统架构与 数据库 的连接 由于我们开发时是利用MVC的设计模式,所以在此我们的 数据库 连接是封存在M 的,即只要我们和M层连接上,就已经连接上 数据库 了。 Hibernate使用 数据库 和配置信息来为应用程序提供持久化服务(以及持久的对象)。我们只需在hibernate.cfg.xml 配置以下语句即可: jdbc:microsoft: sqlserver ://localhost:1035;DatabaseName=webexamine org.hibernate.dialect. SQLServer Dialect sqlserver 2000 aaaaaaaa com.microsoft.jdbc. sqlserver . SQLServer Driver org.hibernate.dialect.HSQLDialect 其实我们在这里配置了一个 数据 连接,以保证系统的正常运行,我们需要使用proxool连接池,我们经测试,分别用proxool、tomcat JNDI、Hibernate自带的连接池进行配置之后分别执行以上的10000条 数据 插入和读取,结果显示proxool的性能要优于tomcat JNDI,而Hibernate自带的就更不用提了,差很远。依次为:39265毫秒/10000条、26013毫秒/10000条、50029毫秒/10000条。 6.4 数据 的备份与还原 我们根据Mysql 数据库 提供的backup(备份)命令及restore(恢复)命令,进行 数据库 的备份与还原,在连接 数据库 后,我们在需要备份和还原的地方加入以下语句: backup database to disk='备份文件名' restore database from disk='备份文件名' 然后发送给 数据库 的管理对象进行 数据 还原与备份。 在知道了 数据库 备份与还原的接口后,用JAVA进行具体的连接,这里采用JAVA直连的方 法,部分代码如下: String user="sa";//连接 sqlserver 2000 数据库 登陆名 String password="aaaaaaaa";//连接 sqlserver 2000 数据库 密码 String sDBDriver="com.microsoft.jdbc. sqlserver . SQLServer Driver";//连接 数据库 的驱动字符串 String connStr="jdbc:microsoft: sqlserver ://localhost:1433;DatabaseName=webexamine";//注册连接字符串 Connection con=null; Class.forName( sDBDriver);//注册 数据库 驱动 con = Driver Manager.getConnection(connStr ,user,password);//获取 数据库 连接 String sql="backup database xncsims to disk='d:\\xncback.dat'";//备份 数据库 ,还原 数据库 和着类似,只是将这句变为还原的语句 st=con.createStatement();//创建发送对象 rs=st.executeQuery(sql);//这里就是把你的SQL语句发到 数据库 执行 }catch(SQLException e){ System.out.println(e.toString());} catch(Exception e){ System.out.println(e.toString());} 6.4部分效果预览图 2.设计内容 (1)系统应符合图书馆信息管理的规定,满足图书馆日常管理的工作需要,并达到操作过程 的直观、方便、实用、安全等要求; (2)系统采用模块化程序设计方法,即便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。 (3)系统应具备 数据库 维护功能,及时根据用户需求进行 数据 的添加,删除,修改等操作。 3.需求描述 整个软件生命周期 ,开发所占的费用和时间都很小。后期维护工作一般要占整个软件生命周期的80% 以上。所以系统分析很重要,一个好的系统分析可以减少很多后期维护工作。 下面以一所学校的图书馆为例子进行分析,画出图书馆的组织结构图如下: 该图书馆各个部门负责的主要业务如下: (1)采编组主要负责图书采编工作,包括购置新书、打印编目、增加数量。 (2)目录厅主要负责读者 查询 工作,包括可借图书(按图书名称或关键字 查询 ); (3)借阅组主要负责图书流通、 查询 统计、借阅 查询 等工作。 (4)阅览室、工具书室主要负责读者阅览工作,包括:阅览各种杂志、报纸、阅览各种工具书。 下面绘制出图书馆流通业务 借书的流程图: (1)读者在目录厅查阅索引卡; (2)读者写出所借图书的分类号、种次号、交给图书管理员,并出示本人的借书证; (3)图书管理员根据图书的分类号、种次号到书库找书; (4)将图书交给读者,并由读者填写所借图书的借书卡。 (5)图书管理员把借书卡保存到写有该读者借书证号的口袋里。 得出该图书馆业务流程图如下所示: 图1.2 图书馆业务流程图 4.系统详细分析设计 数据库 设计是计算机管理信息系统 很重要的部分,设计质量的好坏、 数据 结构的优劣将直接影响到管理系统的成败。 数据库 设计的基本原则是在MIS总体信息方案的指导下,各个库应当为它所支持的管理目标服务,在设计 数据库 系统时,应当重点考虑以下几个因素: (1) 数据库 必须层次分明,布局合理。 (2) 数据库 必须高度结构化,保证 数据 的结构化、规范化和标准化。这是建立 数据库 和进行信息交换的基础。 数据 结构的设计应该遵循国家标准和行业标准,尤其是应重视编码的应用。 (3)在设计 数据库 时,一方面要尽可能的减少冗余度,减少存储 空间 占用 ,降低 数据 的一致性问题发生的可能性;另一方面,还要考虑适当的冗余,以提高运行速度、降低开发难度。 (4)必须维护 数据 的正确性和一致性,在MIS ,多个用户共享 数据库 ,由于并行开发操作,可能影响 数据 的一致性,因此必须用加锁等办法保证 数据 的一致性。 (5)设定相应的安全机制,由于 数据库 的信息对特定用户有特殊的保密要求,保密机制必不可少。 数据库 需求分析 根据以上的需求分析和 数据 组织,开始设计 数据 结构,即根据需求勾画出实体/关系图(E/R)。在概念上,E/R图代 的是系统需要的 数据 及其这些 数据 之间的关系。如图所示的实体/关系图。 实体/关系图 从图 可以看出,在这个系统 实际存在的实体:图书和借阅人,其 借阅人和图书是多对多关系,针对本系统,通过对图书借阅管理的内容和 数据 流程分析,设计 数据 项和 数据 结构如下: (1)图书基本信息,其 数据 项有图书编号、图书名称、作者、出版社等。 (2)借阅人基本信息,其 数据 项有借阅人编号、借阅人姓名、电话等。 (3)图书借阅登记,其 数据 项有借阅序号、借阅图书编号、借阅人编号等。 为了实现图书信息录入的方便性与规范性以及相关的统计功能,还应增加出版社信息与图书分类信息。 (4)出版社信息,其 数据 项有出版社编号、出版社名称、地址、电话、传真等。 (5)图书分类信息,其 数据 项有分类编号、分类名称、同一类型图书数目。 同时针对于本系统的多用户使用特点,增加用户信息 : (6)管理员信息 ,其 数据 项有用户名、密码。 为了实现图书借阅超期罚款制度,还应增设罚金规则 : (7)罚金规则 ,其 数据 项包括免费使用天数、罚金费率、借阅数量。 数据库 逻辑结构设计 数据库 设计有几个范式,一般我们要做到的是第三范式,即 数据 没有冗余字段以及同一个 的字段没有函数依赖关系,冗余字段即在一个 已经保存过的信息,在另一个 就不应该存在,如果需要的话,可以通过 间的关联来得到,函数依赖性就是一个 的字段间不应该有计算关系,如一个 有单价字段、数量字段,就不应该有一个总金额字段。如果程序运行过程 需要总金额,可以实时计算。不过在一些较常用的 ,我们可以适当地保留冗余字段,这样,在程序运行过程 可以减少由于 间互相关联而使用速度降低等问题。这就是所谓的第四范式。 数据 设计时,最好不要使用用户输入的信息作为主键,每一个 数据 自己定义一个主键,添加信息是由程序自动添加,这样就可以减少 数据 更新时产生的错误。 相关联的外键最好是由程序自动生成的主键,这样 数据库 就比较规范了。 另外, 数据 设计时一般都应该有一些标志字段,标志字段可以定义成INT或BIT型。建议实际应用 定义成INT字段可以存储多种可能的状态,在最初设计时,可能我们没有考虑到的一些情况,在程序后来的开发 ,可以通过设计标志字段为不同的 值来解决,这样就避免了修改 数据库 结构。 数据库 初期设计时一定要谨慎,把所有可能的情况都考虑进去,即使当时没有用到,也要将它留在 数据库 作为备用字段以便将来扩充。 程序一旦开始编码,就应该尽量避免再修改 数据库 。因为如果 数据库 结构一旦改变,所有与修改的 数据 相关的业务都有可能受到影响,而某些影响还很难看到,这样就容易形成一个恶性循环。错误越改越多,越改越乱,最终导致程序的失败。 (1)规划有效的索引 a.在组合 的列 创建索引,包括主关键字和外部关键字所在的列。 b.在列或类组合 创建唯一的索引能增强唯一性。 c.浏览索引并卸载不使用的索引。索引需要一定硬盘 空间 和时间来维护。具有较高 数据 插入操作频率的 数据库 最好不要索引。有较高读操作频率的 数据库 应该有更多的索引。 d.避免在簇索引 包括不必要的列。在可能的情况下,使用较小的 数据 类型,例如用varchar替代char。 e.考虑使用簇索引来支持排序和范围化 查询 。在为 数据 检索优化 时,簇索引必须支持 数据 的分组索引。为簇关键字选择列或列组,簇关键字以经常需要的顺序排序 数据 或以必须被一起访问的记录而分组记录。 f.创建支持一般 查询 的查找参数索引。具有高选择性的列是索引的最好候选列。具有高密度的列是索引糟糕的候选列。 (2)使用约束实现 数据 的完整性 PRIMARY KEY约束在 定义了主关键字,它是行唯一的标识符,它可以强制实体完整性。在使用PRIMARY KEY约束时考虑以下事实: a. 每个 只能有一个PRIMARY KEY约束。 b. 键入的值必须是唯一的。 c. 不允许有空值。 d. PRIMARY KEY约束在指定的列创建唯一的索引,可以指定簇索引和非簇索引(如果非簇索引先前并不存在,簇索引是默认的)。 UNIQUE约束指定,在一列 的两行不能有相同的值。该约束使用唯一的索引来强制实体的完整性。在已有一个主关键字时UNIQUE约束很有用,例如雇员号,但是必须保证其他标识符(例如,雇员驾驶证号)也是唯一的。在使用UNIQUE约束时,考虑以下事实; a. 允许有空值。 b. 在一个 可以设置多个UNIQUE约束。 c. 可以将UNIQUE约束运用于具有唯一值的单列或多列,但不能用于 的主关键字。 d. 通过在指定的列或列组 创建唯一的索引,可以使UNIQUE索引得到强制 系统主要功能模块的创建 本系统是功能结构完整的图书管理系统,程序涉及的窗体和模块相对较多。在详细介绍各个窗体之前,首先把本系统的主要功能模块汇总如下: (1)用户登录模块设计(index_book.aspx) 用户登录模块主要根据用户登录的信息,与 数据库 信息成功匹配后,获得其相应的操作权限。用户也可以不进行登录,但只能浏览书籍的基本信息,不能进行借书等操作功能。 (2) 用户信息模块设计(Regedit.aspx) 为了减轻图书管理员的工作压力,允许读者自己填写相关信息,管理员只要在后台对相关读者信息进行审核即可。 (3) 图书详细信息模块设计(Book_Info.aspx) 读者可以查看具体书籍的信息,包括这本书是否已经借出等相关信息,登录的用户还可以对未借出的书籍进行在线借阅。 (4)图书搜索模块(Book_class.aspx) 读者可以在左边菜单栏内对图书名称或关键字进行模糊 查询 ,根据搜索结果会显示出相关信息,单击相应的名称还可以查看具体书籍的信息 (5)图书管理员后台登录模块(Book_admin/Login.aspx) 图书管理员可以登录此后台进行相关业务的管理,包括书籍的添加,读者信息审核,读者书籍归还等操作 (6)用户类别管理(Book_admin/Mem_Class.aspx) 对用户权限的设置,可以对不同用户进行分类,可以设置不同的属性 (7)书籍类别的管理(Book_admin/Book_Class.aspx) 对不同的图书进行分类,使用户更好的查找,也便于图书的维护。 (8)出版社信息管理(Book_admin/Pub_Class.aspx) 考虑到出版社的有限,也是为了能更好的维护出版社信息,作揖作为独立一个模块进行维护,能大量减少管理员的工作。 (9)注册用户管理(Book_admin/index.aspx) 对注册读者的信息进行审核,核实读者信息的正确性,管理员可以修改注册用户的信息及审核的一些状态。(只有通过审核的读者才能借阅书籍) (10)图书信息的管理(Book_admin/Manage_Book.aspx) 管理员可以添加,修改,删除书籍,并且可以时时进行维护 (11)图书归还管理(Book_admin/Borw_Book.aspx) 后台页面将显示用户还未归还书籍的相关信息,管理员也可以通过模糊或精确 查询 查询 有关用户未还书的信息,可以查看具体借书的信息及超时,罚款等信息。 建立应用程序层次结构 在介绍系统 各个主要功能实现模块之前,首先把本系统的整个层次结构归纳如下(为了制图方便有些功能模块已合并,这里只是简单的对整个系统有初步印象,使用户操作起来更方便)见图4-1所示: 图4.1 系统运行层次结构图 图书基本情况的录入、修改、删除等基本操作。 办理借书卡模块。 实现借书功能。 实现还书功能。 能方便的对图书进行 查询 。 对超期的情况能自动给出提示信息。 具有 数据 备份和 数据 恢复功能。 4.1开发工具及系统运行环境 开发工具: MDAC,ASP.NET,IIS 5.1,SQL Server 2000 数据库 ,Microsoft Visual Studio 2008 运行环境: 在开始进行ASP.NET编程之前,要了解一下运行ASP.NET的环境需求。首先需要安装Web服务器IIS,如果没有安装过MDAC,还要安装MDAC,最后安装ASP.NET的运行环境.NET Framework。 IIS是ASP.NET惟一可以使用的Web服务器,所以,为了能够运行ASP.NET,就一定要安装IIS。 (1) IIS的安装 如果使用的是Windows 2000操作系统,那么安装的IIS的版本是IIS 5.0;如果使用的是Windows XP操作系统,那么安装的IIS的版本是IIS 5.1。 IIS是随操作系统一起提供的,如果已经安装过了IIS,那么就可以在控制面板的管理工具 找到它(在英文的版本 ,它的名字是Internet Information Services;在 文的版本 ,它的名字是Internet服务管理器)。如果没有找到IIS,那么就需要安装。 首先打开控制面板,使用它的“增加/删除程序”功能,选择“添加/删除Windows组件”功能,显示“Windows组件向导”对话框,如图B-1所示。 图B-1 “Windows组件向导”对话框 在此对话框的“组件”列 “Internet信息服务”复选框,并单击“详细信息”按钮,选择需要安装的IIS子组件,如图B-2所示。在所有选择都完成之后,单击“确定”按钮开始安装。 图B-2 “Internet信息服务”对话框 安装成功之后,只要启动Windows,IIS就会自动启动。IIS的大部分程序都安装在\winnt\system32\inetsrv ,同时创建了一个\InetPub目录用于存放Web网页文件。 (2) 使用IIS 由于IIS是在Windows启动的时候自动启动的,所以,如果没有特别设置,一旦进入Windows,IIS就是开启的状态。为了使用IIS,可以在控制面板的管理工具 找到Internet服务管理器。它的管理界面如图B-3所示。 图B-3 IIS管理界面 为了测试现在IIS是否工作,可以在浏览器 输入“http://cindyking/ localstart.asp”、“http://127.0.0.1/localstart.asp”(这里127.0.0.1是本机默认的IP地址)或者“http://localhost/ localstart.asp”等URL,如果Windows 2000附带的一个测试页localstart.asp可以成功显示,那么 示IIS安装成功。 (3)目录管理 为了能够访问到IIS管理的页面,需要把编制好的页面和程序放置在一个目录 ,这个目录对于IIS来说就是主目录。主目录 存放着HTTP请求所需要的资源。所以,在使用IIS之前还要做的一件事情就是设置主目录。 用右击Internet服务器管理程序 的默认Web站点,从弹出的快捷菜单 选择“属性”命令,显示图B-4所示的对话框。在“主目录”选项卡 可以看到,IIS允许有三种信息来源:此计算机上的目录、另一计算机的共享位置和重定向到URL。选择不同的选项,就可以在下面的文本框 输入相应的信息来获取相应的主目录。 图B-4 设置主目录 2. 数据库 安装 本系统采用的 数据库 是SQL Server 2000 数据库 ,如本地机器没有安装SQL Server 2000 数据库 ,请先安装SQL Server 2000 数据库 (SQL Server 2000试用软件请到“http://www.microsoft.com./china/sql/evaluation/trial/”下载),然后将本实例 数据库 附加到企业管理器 。附加 数据库 的具体方法如下: (1).单击“开始”菜单,在“所有程序”目录下选择“Microsoft SQL Server/企业管理器”选项,打开SQL Server 2000 的“企业管理器”,然后展开本地服务器,在“ 数据库 数据 项上单击鼠标右键,在弹出的快捷菜单 ,选择“所有任务”/“附加 数据库 ”菜选项,如图B-5所示。 图B-5在企业管理器 附加 数据库 (2).将弹出“附加 数据库 ”对话框,如图B-6所示,单击“要附加 数据库 的MDF文件”文本框后的【…】按钮,弹出“浏览现有文件对话框”,在浏览现有文件对话框 选择 数据库 文件POS.MDF,如图B-6所示。 图B-6 附加 数据库 (3).单击【确定】按钮,将弹出“附加 数据库 顺利完成”提示对话框,单击【确定】按钮,即可完成 数据库 的附加操作。 注意:登录SQL Server 2000的用户名为sa,密码为空。 由于本系统采用的是ADO连接 数据库 方法,而且系统 又有相应的配置服务器窗口,所以只要安装好SQL Server2000及 数据库 的附加(就是步骤2的配置);用户可以直接运行Manager.exe执行文件,可以操作本系统的功能。 3. 第三方控件的安装 如果用户想在本程序的基础上继续开发新的功能,需要安装第三方控件,因为在本系统 使用了大量的第三方控件,想要顺利的通过程序的编译,必需安装控件,否则将通不过编译,也无法继续完善新的功能。 本系统使用到的所有控件放在源代码同一目录下,在“bin”文件目录下面,主要包括Ajax.dll,aspnetpager.dll和FreeTextBox.dll。 打开Microsoft Visual Studio 2008开发环境,打开页面,在左边的“工具箱” 打开“Web窗体”空白处右击点“添加/移除项…”见下图B-7 4.2系统实现 可以写上程序的界面及相关程序,必须要有对界面及代码的解释内容,不能代码原样拷贝。 5.系统测试 5.1测试方法 (1)逻辑覆盖法。 (2)等价划分法。 (3)边值分析法。 (4)因过图法。 (5)错误猜测法。 (6)综合分析法。 5.2测试环境 5.3测试用例及测试结果
    第一章 Oracle入门 一、 数据库 概述 数据库 (Database)是按照 数据 结构来组织、存储和管理 数据 的仓库,它产生于距今五十年前。简单来说是本身可视为电子化的文件柜——存储电子文件的处所,用户可以对文件 数据 运行新增、截取、更新、删除等操作。 常见的 数据 模型 1. 层次结构模型: 层次结构模型实质上是一种有根结点的定向有序树,IMS(Information Manage-mentSystem)是其典型代 。 2. 网状结构模型:按照网状 数据 结构建立的 数据库 系统称为网状 数据库 系统,其典型代 是DBTG(Data Base Task Group)。 3. 关系结构模型:关系式 数据 结构把一些复杂的 数据 结构归结为简单的二元关系(即二维 格形式)。常见的有Oracle、mssql、mysql等 二、 主流 数据库 数据库 名 公司 特点 工作环境 mssql 微软 只能能运行在windows平台,体积比较庞大, 占用 许多系统资源, 但使用很方便,支持命令和图形化管理,收费。 型企业 Mysql 甲骨文 是个开源的 数据库 server,可运行在多种平台, 特点是响应速度特别快,主要面向 小企业 小型企业 PostgreSQL 号称“世界上最先进的开源 数据库 “,可以运行在多种平台下,是tb级 数据库 ,而且性能也很好 大型企业 oracle 甲骨文 获得最高认证级别的ISO标准安全认证,性能最高, 保持开放平台下的TPC-D和TPC-C的世界记录。但价格不菲 大型企业 db2 IBM DB2在企业级的应用最为广泛, 在全球的500家最大的企业 ,几乎85%以上用DB2 数据库 服务器。收费 大型企业 Access 微软 Access是一种桌面 数据库 ,只适合 数据 量少的应用,在处理少量 数据 和单机访问的 数据库 时是很好的,效率也很高 小型企业 三、 Oracle 数据库 概述 ORACLE 数据库 系统是美国ORACLE公司(甲骨文)提供的以分布式 数据库 为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的 数据库 之一。  拉里•埃里森  就业前景 从就业与择业的角度来讲,计算机相关专业的大学生从事oracle方面的技术是职业发展 的最佳选择。 其一、就业面广:全球前100强企业99家都在使用ORACLE相关技术, 国政府机构,大 型企事业单位都能有ORACLE技术的工程师岗位。 其二、技术层次深:如果期望进入IT服务或者产品公司(类似毕博、DELL、IBM等),Oracle技术能够帮助提高就业的深度。 其三、职业方向多:Oracle 数据库 管理方向、Oracle开发及系统架构方向、Oracle 数据 建模 数据 仓库等方向。 四、 如何学习 认真听课、多思考问题、多动手操作、有问题一定要问、多参与讨论、多帮组同学 五、 体系结构 oracle的体系很庞大,要学习它,首先要了解oracle的框架。oracle的框架主要由物理结构、逻辑结构、内存分配、后台进程、oracle例程、系统改变号 (System Change Number)组成  物理结构 物理结构包含三种 数据 文件: 1) 控制文件 2) 数据 文件 3) 在线重做日志文件  逻辑结构 功能: 数据库 如何使用物理 空间 组成: 空间 、段、区、块的组成层次 六、 oracle安装、卸载和启动  硬件要求 物理内存:1GB 可用物理内存:50M 交换 空间 大小:3.25GB 硬盘 空间 :10GB 1. 安装程序成功下载,将会得到如下2个文件: 解压文件将得到database文件夹,文件组织如下: 点击setup.exe执行安装程序,开始安装。 2. 点击安装程序将会出现如下安装界面,步骤 1/9:配置安全更新 填写电子邮件地址(可以不填),去掉复选框,点击下一步 3. 步骤2/9:选择安装选项 勾选第一个,安装和配置 数据库 ,点击下一步 4. 步骤3/8:选择系统类 勾选第一个:桌面类,点击下一步 5. 步骤4/8:配置 数据库 安装 选择安装路径,选择 数据库 版本(企业版),选择字符集(默认值) 填写全局 数据库 名,管理口令 6. 步骤5/8:先决条件检查 如果你的电脑满足要求但仍然显示检查失败,这时候直接忽略,勾选全部忽略 7. 步骤6/8:概要信息 核对将要安装 数据 的详细信息,并保存响应文件,以备以后查看。然后点击完成 数据库 安装 8. 步骤7/8:安装产品 产品安装过程 将会出现以上2个界面 9. 步骤8/8:完成安装  卸载Oracle 1. 在运行services.msc打开服务,停止Oracle的所有服务。 2. oracle11G自带一个卸载批处理\app\Administrator\product\11.2.0\dbhome_1\deinstall\deinstall.bat 3. 运行该批处理程序将自动完成oracle卸载工作,最后手动删除\app文件夹(可能需要重启才能删除) 4. 运行regedit命令,打开注册 窗口。删除注册 与Oracle相关的内容,具体如下:  删除HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE目录。  删除HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services 所有以oracle或OraWeb为开头的键。  删除HKEY_LOCAL_MACHINE/SYSETM/CurrentControlSet/Services/Eventlog/application 所有以oracle开头的键。  删除HKEY_CLASSES_ROOT目录下所有以Ora、Oracle、Orcl或EnumOra为前缀的键。  删除HKEY_CURRENT_USER/SOFTWARE/Microsoft/windows/CurrentVersion/Explorer/MenuOrder/Start Menu/Programs 所有以oracle 开头的键。  删除HKDY_LOCAL_MACHINE/SOFTWARE/ODBC/ODBCINST.INI 除Microsoft ODBC for Oracle注册 键以外的所有含有Oracle的键。  删除环境变量 的PATHT CLASSPATH 包含Oracle的值。  删除“开始”/“程序” 所有Oracle的组和图标。  删除所有与Oracle相关的目录,包括: C:\Program file\Oracle目录。 ORACLE_BASE目录。 C:\Documents and Settings\系统用户名、LocalSettings\Temp目录下的临时文件。 七、 oracle 数据库 八、 常用的工具  Sql Plus  Sql Developer  Oracle Enterprise Manager 第二章 用户和权限 一、 用户介绍 ORACLE用户是学习ORACLE 数据库 的基础知识,下面就介绍下类系统常用的默认ORACLE用户: 1. sys用户:超级用户,完全是个SYSDBA(管理 数据库 的人)。拥有dba,sysdba,sysoper等角色或权限。是oracle权限最高的用户,登录时不能用normal。 2. system用户:超级用户,默认是SYSOPT(操作 数据库 的人),不过它也能以SYSDBA的权限登陆。拥有普通dba角色权限。 3. scott用户:是个演示用户,是让你学习Oracle用的。 二、 常用命令 学习oracle,首先我们必须要掌握常用的基本命令,oracle 的命令比较多,常用的命令如下: 1. 登录命令(sqlplus) 说明:用于登录到oracle 数据库 用法:sqlplus 用户名/密码 [as sysdba/sysoper] 注意:当用特权用户登录时,必须带上sysdba或sysoper 普通用户登录 sys用户登录 操作系统的身份登录 2. 连接命令(conn) 说明:用于连接到oracle 数据库 ,也可实现用户的切换 用法:conn 用户名/密码 [as sysdba/sysoper] 注意:当用特权用户连接时,必须带上sysdba或sysoper 3. 断开连接(disc) 说明:断开与当前 数据库 的连接 用法:disc 4. 显示用户名(show user) 说明:显示当前用户名 用法:show user 5. 退出(exit) 说明:断开与当前 数据库 的连接并会退出 用法:exit 6. 编辑脚本(edit/ed) 说明:编辑指定或缓冲区的sql脚本 用法:edit [文件名] 7. 运行脚本 (start/@) 说明:运行指定的sql脚本 用法:start/@ 文件名 8. 印刷屏幕 (spool) 说明:将sql*plus屏幕 的内容输出到指定的文件 用法:开始印刷->spool 文件名 结束印刷->spool off 9. 显示宽度 (linesize) 说明:设置显示行的宽度,默认是80个字符 用法:set linesize 120 10. 显示页数 (pagesize) 说明:设置每页显示的行数,默认是14页 用法:set pagesize 20 三、 用户管理 1. 创建用户 说明:Oracle 需要创建用户一定是要具有dba( 数据库 管理员)权限的用户才能创建,而且创建的新用户不具备任何权限,连登录都不可以。 用法:create user 新用户名 identified by 密码 2. 修改密码 说明:修改用户密码一般有两种方式,一种是通过命令password修改,另一种是通过语句alter user实现,如果要修改他人的密码,必须要具有相关的权限才可以 方式一 password [用户名] 方式二 alert user 用户名 identified by 新密码 修改当前用户(方式一) 修改当前用户(方式二) 修改其他用户(方式一) 修改其他用户(方式二) 3. 用户禁用与启用 说明:Oracle 想要禁用或启用一个账户也同样是使用alter user 命令来完成,只是语法和修改密码有所不同。 禁用 alert user 用户名 account lock 启用 alert user 用户名 account unlock 4. 删除用户 说明:Oracle 要删除一个用户,必须要具有dba的权限。而且不能删除当前用户,如果删除的用户有 数据 对象,那么必须加上关键字cascade。 用法:drop user 用户名 [cascade] 四、 用户权限与角色 1. 权限 Oracle 权限主要分为两种,系统权限和实体权限。  系统权限:系统规定用户使用 数据库 的权限。(系统权限是对用户而言)。  DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建 数据库 结构。  RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建 数据库 结构。  CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建 数据库 结构。 对于普通用户:授予connect, resource权限。 对于DBA管理用户:授予connect,resource, dba权限。  授予系统权限 说明:要实现授予系统权限只能由DBA用户授出。 用法:grant 系统权限1[,系统权限2]… to 用户名1[,用户名2]….  系统权限回收: 说明:系统权限只能由DBA用户回收 用法:revoke 系统权限 from 用户名  实体权限:某种权限用户对其它用户的 或视图的存取权限。(是针对 或视图而言的)。主要包括select, update, insert, alter, index, delete, all其 all包括所有权限。  授予实体权限 用法:grant 实体权限1[,实体权限2]… on 名 to用户名1[,用户名2]….  实体权限回收 用法:revoke 实体权限 on 名from 用户名  查询 用户拥有哪里权限: SQL> select * from role_tab_privs;// 查询 授予角色的对象权限 SQL> select * from role_role_privs;// 查询 授予另一角色的角色 SQL> select * from DBA_tab_privs;// 查询 直接授予用户的对象权限 SQL> select * from dba_role_privs;// 查询 授予用户的角色 SQL> select * from dba_sys_privs;// 查询 授予用户的系统权限 SQL> select * from role_sys_privs;// 查询 授予角色的系统权限 SQL> Select * from session_privs;// 查询 当前用户所拥有的权限 2. 角色 角色。角色是一组权限的集合,将角色赋给一个用户,这个用户就拥有了这个角色 的所有权限。  系统预定义角色 预定义角色是在 数据库 安装后,系统自动创建的一些常用的角色。下面我们就简单介绍些系统角色:  CONNECT, RESOURCE, DBA这些预定义角色主要是为了向后兼容。其主要是用于 数据库 管理。oracle建议用户自己设计 数据库 管理和安全的权限规划,而不要简单的使用这些预定角色。将来的版本 这些角色可能不会作为预定义角色。  DELETE_CATALOG_ROLE, EXECUTE_CATALOG_ROLE,SELECT_CATALOG_ROLE这些角色主要用于访问 数据 字典视图和包。  EXP_FULL_DATABASE, IMP_FULL_DATABASE这两个角色用于 数据 导入导出工具的使用。  自定义角色 Oracle建议我们自定义自己的角色,使我们更加灵活方便去管理用户  创建角色 SQL> create role admin;  授权给角色 SQL> grant connect,resource to admin;  撤销角色的权限 SQL> revoke connect from admin;  删除角色 SQL> drop role admin; 第三章 Sql 查询 与函数 一、 SQL概述 SQL(Structured Query Language)结构化 查询 语言,是一种 数据库 查询 和程序设计语言,用于存取 数据 以及 查询 、更新和管理关系 数据库 系统。同时也是 数据库 脚本文件的扩展名。  SQL语言主要包含5个部分  数据 定义语言Data Definition Language(DDL),用来建立 数据库 数据 对象和定义其列。例如:CREATE、DROP、ALTER等语句。  数据 操作语言Data Manipulation Language(DML),用来插入、修改、删除、 查询 ,可以修改 数据库 数据 。例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语句  数据 查询 语言 (Data Query Language, DQL) 是SQL语言 ,负责进行 数据 查询 而不会对 数据 本身进行修改的语句,这是最基本的SQL语句。例如:SELECT( 查询 )  数据 控制语言Data Controlling Language(DCL),用来控制 数据库 组件的存取允许、存取权限等。例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句。  事务控制语言(Transactional Control Language,TCL),用于维护 数据 的一致性,包括COMMIT(提交事务)、ROLLBACK(回滚事务)和SAVEPOINT(设置保存点)3条语句 二、 Oracle的 数据 类型 类型 参数 描述 字符类型 char 1~2000字节 固定长度字符串,长度不够的用空格补充 varchar2 1~4000字节 可变长度字符串,与CHAR类型相比,使用VARCHAR2可以节省磁盘 空间 ,但 查询 效率没有char类型高 数值类型 Number(m,n) m(1~38) n(-84~127) 可以存储正数、负数、零、定点数和精度为38位的浮点数,其 ,M 示精度,代 数字的总位数;N 示小数点右边数字的位数 日期类型 date 7字节 用于存储 的日期和时间 数据 ,取值范围是公元前4712年1月1日至公元9999年12月31日,7个字节分别 示世纪、年、月、日、时、分和秒 二进制 数据 类型 row 1~2000字节 可变长二进制 数据 ,在具体定义字段的时候必须指明最大长度n long raw 1~2GB 可变长二进制 数据 LOB 数据 类型 clob 1~4GB 只能存储字符 数据 nclob 1~4GB 保存本地语言字符集 数据 blob 1~4GB 以二进制信息保存 数据 三、 DDL语言 1. Create table命令 用于创建 。在创建 时,经常会创建该 的主键、外键、唯一约束、Check约束等  语法结构 create table 名( [字段名] [类型] [约束] ……….. CONSTRAINT fk_column FOREIGN KEY(column1,column2,…..column_n) REFERENCES tablename(column1,column2,…..column_n)  例子: create table student( stuNo char(32) primary key,--主键约束 stuName varchar2(20) not null,--非空约束 cardId char(20) unique,--唯一约束 sex char(2) check(sex='男' or sex='女'),--检查约束 address varchar2(100) default '地址不详'--默认约束 create table mark( mid int primary key,--主键约束 stuNo char(32) not null, courseName varchar2(20) not null,--非空约束 score number(3) not null check(score>=0 and scoreselect * from em-- 查询 所有 数据 SQL>select ename,job from em-- 查询 指定的字段 数据 SQL> select * from emp where sal>1000--加条件 2. 聚合函数 聚合函数对一组值执行计算并返回单一的值。聚合函数忽略空值。聚合函数经常与 SELECT 语句的 GROUP BY 子句一同使用。不能在 WHERE 子句 使用组函数。  AVG(expression): 返回集合 各值的平均值 -- 查询 所有人都的平均工资 select avg(sal) from emp  COUNT(expression): 以 Int32 形式返回集合 的项数 -- 查询 工资低于2000的人数 select count(*) from emp where sal2000 5. 连接 查询 连接 查询 是关系 数据库 最主要的 查询 ,主要包括内连接、外连接和交叉连接等。通过连接运算符可以实现多个 查询 。  内连接 内连接也叫连接,是最早的一种连接。还可以被称为普通连接或者自然连接,内连接是从结果 删除与其他被连接 没有匹配行的所有行,所以内连接可能会丢失信息。  等值连接: select * from emp inner join dept on emp.deptno=dept.deptno select * from emp,dept where emp.deptno=dept.deptno  不等值连接: select * from emp inner join dept on emp.deptno!=dept.deptno  外连接 外连接分为三种:左外连接,右外连接,全外连接。对应SQL:LEFT/RIGHT/FULL OUTER JOIN。通常我们省略outer 这个关键字。写成:LEFT/RIGHT/FULL JOIN。  左外连接(left join): 是以左 的记录为基础的 select * from emp left join dept on emp.deptno=dept.deptno  右外连接(right join): 和left join的结果刚好相反,是以右 (BL)为基础的 select * from emp right join dept on emp.deptno=dept.deptno  全外连接(full join): 左 和右 都不做限制,所有的记录都显示,两 不足的地方用null 填充 select * from emp full join dept on emp.deptno=dept.deptno  交叉连接 交叉连接即笛卡儿乘积,是指两个关系 所有元组的任意组合。一般情况下,交叉 查询 是没有实际意义的。 select * from cross full join dept 6. 常用 查询  like模糊 查询 -- 查询 姓名首字母为S开始的员工信息 select * from emp where ename like 'S%' -- 查询 姓名第三个字母为A的员工信息 select * from emp where ename like '__A%'  is null/is not null 查询 -- 查询 没有奖金的雇员信息 select * from emp where comm is null -- 查询 有奖金的雇员信息 select * from emp where comm is not null  in 查询 -- 查询 雇员编号为7566、7499、7844的雇员信息 select * from emp where empno in(7566,7499,7844)  exists/not exists 查询 (效率高于in) -- 查询 有上级领导的雇员信息 select * from emp e where exists (select * from emp where empno=e.mgr) -- 查询 没有上级领导的雇员信息 select * from emp e where not exists (select * from emp where empno=e.mgr)  all 查询 -- 查询 比部门编号为20的所有雇员工资都高的雇员信息 select * from emp where sal > all(select sal from emp where deptno=20)  union合并不重复 select * from emp where comm is not null union select * from emp where sal>3000  union all合并重复 select * from emp where comm is not null union all select * from emp where sal>3000 7. 子 查询 当一个 查询 是另一个 查询 的条件时,称之为子 查询 。子 查询 是一个 SELECT 语句,它嵌套在一个 SELECT、SELECT...INTO 语句、INSERT...INTO 语句、DELETE 语句、或 UPDATE 语句或嵌套在另一子 查询 。  在CREATE TABLE语句 使用子 查询 --创建 并拷贝 数据 create table temp(id,name,sal) as select empno,ename,sal from emp  在INSERT语句 使用子 查询 --当前 拷贝 insert into temp(id,name,sal) select * from temp --从其他 指定字段拷贝 insert into temp(id,name,sal) select empno,ename,sal from emp  在DELETE语句 使用子 查询 --删除SALES部门 的所有雇员 delete from emp where deptno in (select deptno from dept where dname='SALES')  在UPDATE语句 使用子 查询 --修改scott用户的工资和smith的工资一致 update emp set sal=(select sal from emp where ename='SMITH') where ename='SCOTT' --修改black用户的工作,工资,奖金和scott一致 update emp set(job,sal,comm)=(select job,sal,comm from emp where ename='SCOTT') where ename='BLAKE'  在SELECT语句 使用子 查询 -- 查询 和ALLEN同一部门的员工信息 select * from emp where deptno in (select deptno from emp where ename='ALLEN') -- 查询 工资大于部门平均工资的雇员信息 select * from emp e (select avg(sal) asal,deptno from emp group by deptno) t where e.deptno=t.deptno and e.sal>t.asal 六、 TCL语言 1. COMMIT commit --提交事务 2. ROLLBACK rollback to p1 --回滚到指定的保存点 rollback --回滚所有的保存点 3. SAVEPOINT savepoint p1 --设置保存点 4. 只读事务 只读事务是指只允许执行 查询 的操作,而不允许执行任何其它dml操作的事务,它的作用是确保用户只能取得某时间点的 数据 。 set transaction read only 七、 oracle函数 1. 字符串函数 字符串函数是oracle 比较常用的,下面我们就介绍些常用的字符串函数:  concat:字符串连接函数,也可以使用’||’ --将职位和雇员名称显示在一列 select concat(ename,concat('(',concat(job,')'))) from emp select ename || '(' || job || ')' from emp  length:返回字符串的长度 -- 查询 雇员名字长度为5个字符的信息 select * from emp where length(ename)=5  lower:将字符串转换成小写 --以小写方式显示雇员名 select lower(ename) from emp  upper:将字符串转换成大写 --以大写方式显示雇员名 select upper (ename) from emp  substr:截取字符串 --只显示雇员名的前3个字母 select substr(ename,0,3) from emp  replace:替换字符串 --将雇员的金额显示为*号 select ename,replace(sal,sal,’*’) from emp  instr:查找字符串 --查找雇员名含有’LA’字符的信息 select * from emp where instr(ename,’LA’)>0 2. 日期函数  sysdate:返回当前session所在时区的默认时间 --获取当前系统时间 select sysdate from dual  add_months:返回指定日期月份+n之后的值,n可以为任何整数 -- 查询 当前系统月份+2的时间 select add_months(sysdate,2) from dual -- 查询 当前系统月份-2的时间 select add_months(sysdate,-2) from dual  last_day:返回指定时间所在月的最后一天 --获取当前系统月份的最后一天 select last_day(sysdate) from dual  months_between:返回月份差,结果可正可负,当然也有可能为0 --获取入职日期距离当前时间多少天 select months_between(sysdate, hiredate) from emp  trunc:为指定元素而截去的日期值 --获取当前系统年,其他默认 select trunc(sysdate,'yy') from dual -- 查询 81年2月份入职的雇员 select * from emp where trunc(hiredate,'mm')=trunc(to_date('1981-02','yyyy-mm'),'mm') 3. 转换函数  to_char:将任意类型转换成字符串 --日期转换 select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') from dual --数字转换 select to_char(-100.789999999999,'L99G999D999') from dual  数字格式控制符 符号 描述 9 代 一位数字,如果当前位有数字,显示数字,否则不显示(小数部分仍然会强制显示) 0 强制显示该位,如果当前位有数字,显示数字,否则显示0 $ 增加美元符号显示 L 增加本地货币符号显示 . 小数点符号显示 , 千分位符号显示  to_date:将字符串转换成日期对象 --字符转换成日期 select to_date('2011-11-11 11:11:11', 'yyyy-mm-dd hh24:mi:ss') from dual  to_number:将字符转换成数字对象 --字符转换成数字对象 select to_number('209.976')*5 from dual select to_number('209.976', '9G999D999')*5 from dual 4. 数学函数  abs:返回数字的绝对值 select abs(-1999) from dual  ceil:返回大于或等于n的最小的整数值 select ceil(2.48) from dual  floor:返回小于等于n的最大整数值 select floor(2.48) from dual  round:四舍五入 select round(2.48) from dual select round(2.485,2) from dual  bin_to_num:二进制转换成十进制 select bin_to_num(1,0,0,1,0) from dual 第四章 锁 一、 概述 锁是实现 数据库 并发控制的一个非常重要的技术。当事务在对某个 数据 对象进行操作前,先向系统发出请求,对其加锁。加锁后事务就对该 数据 对象有了一定的控制,在该事务释放锁之前,其他的事务不能对此 数据 对象进行更新操作。 在 数据库 有两种基本的锁类型:排它锁(Exclusive Locks,即X锁)和共享锁(Share Locks,即S锁)。当 数据 对象被加上排它锁时,其他的事务不能对它读取和修改。加了共享锁的 数据 对象可以被其他事务读取,但不能修改。 根据保护的对象不同,Oracle 数据库 锁可以分为以下几大类:  DML锁(data locks, 数据 锁),用于保护 数据 的完整性  DDL锁(dictionary locks,字典锁),用于保护 数据库 对象的结构,如 、索引等的结构定义  内部锁和闩(internal locks and latches),保护 数据库 的内部结构 二、 DML锁 DML锁的目的在于保证并发情况下的 数据 完整性,在Oracle 数据库 ,DML锁主要包括TM锁和TX锁,其 TM锁称为 级锁,TX锁称为事务锁或行级锁。 1. 行级锁 当事务执行 数据库 插入、更新、删除操作时,该事务自动获得操作 操作行的排它锁 --不允许其他用户对雇员 的部门编号为20的 数据 进行修改 select * from emp where deptno=20 for update --不允许其他用户对雇员 的所有 数据 进行修改 select * from emp for update --如果已经被锁定,就不用等待 select * from emp for update nowait --如果已经被锁定,更新的时候等待5秒 select * from emp for update wait 5 2. 锁模式  0(none)  1(null)  2(rs):行共享  3(rx):行排他  4(s):共享  5(srx):共享行排他  6(x):排他 数字越大,锁级别越高 3. 级锁 当事务获得行锁后,此事务也将自动获得该行的 锁(行排他),以防止其它事务进行DDL语句影响记录行的更新  行共享锁(RS锁):允许用户进行任何操作,禁止排他锁 lock table emp in row share mode  行排他锁(RX锁):允许用户进行任何操作,禁止共享锁 lock table emp in row exclusive mode  共享锁(R锁):其他用户只能看,不能修改 lock table emp in share mode  排他锁(X锁):其他用户只能看,不能修改,不能加其他锁 lock table emp in exclusive mode  共享行排他(SRX锁):比行排他和共享锁级别高,不能添加共享锁 lock table emp in share row exclusive mode 4. 锁兼容性 S X RS RX SRX N/A S Y N Y N N Y X N N N N N Y RS Y N Y Y Y Y RX N N Y Y N Y SRX N N Y N N Y N/Y Y Y Y Y Y Y 5. 死锁 当两个事务需要一组有冲突的锁,而不能将事务继续下去的话,就出现死锁。 1) 用户A修改A ,事务不提交 2) 用户B修改B ,事务不提交 3) 用户A修改B ,阻塞 4) 用户B修改A ,阻塞 Oracle系统能自动发现死锁,并会自动选择工作量最少的事务进行撤销和释放所有锁 6. 悲观锁和乐观锁 数据 的锁定分为两种方法,第一种叫做悲观锁,第二种叫做乐观锁  悲观锁:就是对 数据 的冲突采取一种悲观的态度,也就是说假设 数据 肯定会冲突,所以在 数据 开始读取的时候就把 数据 锁定住。  乐观锁:就是认为 数据 一般情况下不会造成冲突,所以在 数据 进行提交更新的时候,才会正式对 数据 的冲突与否进行检测,如果发现冲突了,则让用户返回错误的信息,让用户决定如何去做。 三、 DDL锁 1. 排它DDL锁 创建、修改、删除一个 数据库 对象的DDL语句获得操作对象的排它锁。 2. 共享DDL锁 需在 数据库 对象之间建立相互依赖关系的DDL语句通常需共享获得DDL锁 3. 分析锁 分析锁是一种独特的DDL锁类型,ORACLE使用它追踪共享池对象及它所引用 数据库 对象之间的依赖关系 四、 内部锁和闩 这是ORACLE 的一种特殊锁,用于顺序访问内部系统结构。当事务需向缓冲区写入信息时,为了使用此块内存区域,ORACLE首先必须取得这块内存区域的闩锁,才能向此块内存写入信息。 第五章 数据库 对象 一、 概述 ORACLE 数据库 主要有如下 数据库 对象:  tablespace and datafile( 空间 数据 文件)  table( )  constraints(约束)  index(索引)  view(试图)  sequence(序列)  synonyms(同义词)  DB-link( 数据库 链路) 二、 空间 数据 文件 空间 数据库 的逻辑组成部分,从物理上讲, 数据库 数据 是存放在 数据 文件 ,从逻辑上讲 数据库 则是存放在 空间 空间 是由一个或多个 数据 文件组成。  空间  某一时刻只能属于一个 数据库  由一个或多个 数据 文件组成  可进一步划分为逻辑存储  空间 主要分为两种  System 空间  随 数据库 创建  包含 数据 字典  包含system还原段  非system 空间  用于分开存储段  易于 空间 管理  控制分配给用户的 空间 量  数据 文件  只能属于一个 空间 和一个 数据库  是方案对象 数据 的资料档案库  创建 空间 CREATE TABLESPACE tablespacename [DATAFILE clause] [MINIMUM EXTENT integer[k|m]] [BLOCKSIZE integer[k]] [LOGGING|NOLOGGING] [DEFAULT storage_clause] [ONLINE|OFFLINE] [PERMANENT|TEMPORARY] [extent_management_clause] [segment_management_clause] --创建本地管理 空间 create tablespace firstSpance datafile 'e:/firstspance.dbf'size 100M extent management local uniform size 256k --修改文件大小 alter database datafile 'e:/firstspance.dbf' resize 110m --删除 空间 drop tablespace firstSpance INCLUDING CONTENTS and datafiles --使用 数据库 空间 --创建用户指定 空间 create user guest identified by 123456 default tablespace firstSpance -- 指定 空间 create table account( accountid number(4), accountName varchar2(20) )tablespace firstSpance -- 空间 脱机 alter tablespace firstSpance offline -- 空间 联机 alter tablespace firstSpance online -- 空间 只读,不能进行dml操作 alter tablespace firstSpance read only 三、 同义词 Oracle 数据库 提供了同义词管理的功能。同义词是 数据库 方案对象的一个别名,经常用于简化对象访问和提高对象访问的安全性。Oracle同义词有两种类型,分别是公用Oracle同义词与私有Oracle同义词。  公有同义词 CREATE [OR REPLACE] PUBLIC SYNONYM sys_name FOR [SCHEMA.] object_name  创建(需拥有CREATE PUBLIC SYNONYM权限才可以创建) --创建同义词 create public synonym syn_emp for scott.emp --访问同义词 select * from syn_emp drop public synonym syn_emp  私有同义词 CREATE [OR REPLACE] SYNONYM sys_name FOR [SCHEMA.] object_name --创建同义词 create synonym syn_pri_emp for emp --访问同义词 select * from syn_ pri _emp drop public synonym syn_emp 四、 分区 当 数据 量不断增大, 查询 数据 的速度就会变慢,应用程序的性能就会下降,这时就应该考虑对 进行分区。 进行分区后,逻辑上 仍然是一张完整的 ,只是将 数据 在物理上存放到多个 空间 (物理文件上),这样 查询 数据 时,不至于每次都扫描整张 。  优点:  改善 查询 性能:对分区对象的 查询 可以仅搜索自己关心的分区,提高检索速度。  增强可用性:如果 的某个分区出现故障, 在其他分区的 数据 仍然可用;  维护方便:如果 的某个分区出现故障,需要修复 数据 ,只修复该分区即可;  均衡I/O:可以把不同的分区映射到磁盘以平衡I/O,改善整个系统性能。  使用场合  的大小超过2GB  包含历史 数据 ,新的 数据 被增加都新的分区  常见分区方法:  范围 --- 8  Hash --- 8i  列 --- 9i  组合 --- 8i 1. 范围分区 范围分区将 数据 基于范围映射到每一个分区,这个范围是你在创建分区时指定的分区键决定的。这种分区方式是最为常用的,并且分区键经常采用日期。  特点:  最早、最经典的分区算法  Range分区通过对分区字段值的范围进行分区  Range分区特别适合于按时间周期进行 数据 的存储。日、周、月、年等。  数据 管理能力强( 数据 迁移、 数据 备份、 数据 交换)  范围分区的 数据 可能不均匀  范围分区与记录值相关,实施难度和可维护性相对较差  按值划分 CREATE TABLE book ( bookid NUMBER(5), bookname VARCHAR2(30), price NUMBER(8) )PARTITION BY RANGE (price)--分区字段 PARTITION P1 VALUES LESS THAN (4) TABLESPACE system, PARTITION P2 VALUES LESS THAN (8) TABLESPACE system, PARTITION P3 VALUES LESS THAN (maxvalue) TABLESPACE system, --MAXVALUE代 了一个不确定的值,这个值高于其它分区 的任何分区键的值  按日期划分 CREATE TABLE student ( stuno NUMBER(5), stuname VARCHAR2(30), birthday date )PARTITION BY RANGE (birthday)--分区字段 PARTITION P1990 VALUES LESS THAN (to_date('1990-01-01','yyyy-mm-dd')) TABLESPACE system, PARTITION P1991 VALUES LESS THAN (to_date('1991-01-01','yyyy-mm-dd')) TABLESPACE system 2. Hash分区(散列分区) 这类分区是在列值上使用散列算法,以确定将行放入哪个分区 。当列的值没有合适的条件时,建议使用散列分区。散列分区为通过指定分区编号来均匀分布 数据 的一种分区类型。如果你要使用hash分区,只需指定分区的数量即可。建议分区的数量采用2的n次方,这样可以使得各个分区间 数据 分布更加均匀。  基于分区字段的HASH值,自动将记录插入到指定分区。  分区数一般是2的幂  易于实施  总体性能最佳  适合于静态 数据  HASH分区适合于 数据 的均匀存储  数据 管理能力弱  HASH分区对 数据 值无法控制 CREATE TABLE classes ( clsno NUMBER(5), clsname VARCHAR2(30) )PARTITION BY HASH(clsno)--分区字段 PARTITION ph1 tablespace system, PARTITION ph2 tablespace system 3. List分区(列 分区) 该分区的特点是某列的值只有几个,基于这样的特点我们可以采用列 分区。  List分区通过对分区字段的离散值进行分区  List分区是不排序的,而且分区之间也没有关联  List分区适合于对 数据 离散值进行控制  List分区只支持单个字段  List分区具有与range分区相似的优缺点  数据 管理能力强  各分区的 数据 可能不均匀 CREATE TABLE users ( userid NUMBER(5), username VARCHAR2(30), province char(5) )PARTITION BY list(province)--分区字段 PARTITION pl1 values('广东') tablespace system, PARTITION pl2 values('江西') tablespace system, PARTITION pl3 values('广西') tablespace system, PARTITION pl4 values('湖南') tablespace system 4. 组合分区 常见的组合分区主要有范围散列分区和范围列 分区  既适合于历史 数据 ,又适合于 数据 均匀分布  与范围分区一样提供高可用性和管理性  实现粒度更细的操作  组合范围列 分区 这种分区是基于范围分区和列 分区, 首先按某列进行范围分区,然后再按某列进行列 分区,分区之 的分区被称为子分区。 CREATE TABLE student ( stuno NUMBER(5), stuname VARCHAR2(30), birthday date, province char(5) )PARTITION BY RANGE (birthday) --主分区字段 subpartition BY LIST(province)--子分区字符 PARTITION P1990 VALUES LESS THAN(to_date('1990-01-01','yyyy-mm-dd')) TABLESPACE system SUBPARTITION pl1 values('广东') tablespace system, SUBPARTITION pl2 values('江西') tablespace system, SUBPARTITION pl3 values('广西') tablespace system, SUBPARTITION pl4 values('湖南') tablespace system PARTITION P1991 VALUES LESS THAN(to_date('1991-01-01','yyyy-mm-dd')) TABLESPACE system SUBPARTITION p21 values('广东') tablespace system, SUBPARTITION p22 values('江西') tablespace system, SUBPARTITION p23 values('广西') tablespace system, SUBPARTITION p24 values('湖南') tablespace system  组合范围散列分区 这种分区是基于范围分区和散列分区, 首先按某列进行范围分区,然后再按某列进行散列分区。 CREATE TABLE student ( stuno NUMBER(5), stuname VARCHAR2(30), birthday date )PARTITION BY RANGE(birthday) --主分区字段 SUBPARTITION BY HASH(stuno)--子分区字符 PARTITION P1990 VALUES LESS THAN(to_date('1990-01-01','yyyy-mm-dd')) TABLESPACE system SUBPARTITION ph12 tablespace system, SUBPARTITION ph13 tablespace system PARTITION P1991 VALUES LESS THAN(to_date('1991-01-01','yyyy-mm-dd')) TABLESPACE system SUBPARTITION ph21 tablespace system, SUBPARTITION ph22 tablespace system 5. 分区常用操作  添加分区 --添加主分区 alter table book add partition p4 values less than(maxvalue) tablespace system --添加子分区 ALTER TABLE student MODIFY PARTITION P1990 ADD SUBPARTITION pl5 values('福建')  删除分区 --删除主分区 ALTER TABLE student DROP PARTITION P1990 --删除子分区 ALTER TABLE student DROP SUBPARTITION p15  重命名 分区 ALTER TABLE student RENAME PARTITION P21 TO P2  显示 数据库 所有分区 的信息 select * from DBA_PART_TABLES  显示当前用户所有分区 的信息 select * from USER_PART_TABLES  查询 指定 分区 数据 select * from users partition(pl2)--主分区 select * from users subpartition(phl2)--子分区  删除分区 一个分区的 数据 alter table book truncate partition p11 第六章 视图 一、 概述 视图是基于一个 或多个 或视图的逻辑 ,本身不包含 数据 ,通过它可以对 里面的 数据 进行 查询 和修改。视图基于的 称为基 。视图是存储在 数据 字典里的一条select语句。 通过创建视图可以提取 数据 的逻辑上的集合或组合。  为什么使用视图  控制 数据 访问  简化 查询 数据 独立性  避免重复访问相同的 数据  使用修改基 的最大好处是安全性,即保证那些能被任意人修改的列的安全性  Oracle 视图分类  关系视图  内嵌视图  对象视图  物化视图 二、 关系视图 关系视图是作为 数据库 对象存在的,创建之后也可以通过工具或 数据 字典来查看视图的相关信息。关系视图是4种视图 最简单,同时也最常用的视图。 CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view_name [(alias[, alias]...)] AS subquery [WITH CHECK OPTION [CONSTRAINT constraint]] [WITH READ ONLY] 1. OR REPLACE:若所创建的试图已经存在,ORACLE自动重建该视图 2. FORCE:不管基 是否存在ORACLE都会自动创建该视图 3. NOFORCE:只有基 都存在ORACLE才会创建该视图 4. Alias:为视图产生的列定义的别名 5. subquery:一条完整的SELECT语句,可以在该语句 定义别名 6. WITH CHECK OPTION:插入或修改的 数据 行必须满足视图定义的约束 7. WITH READ ONLY:该视图上不能进行任何DML操作 create or replace view view_Account_dept select * from emp where deptno=10 --只读视图 create or replace view view_Account_dept select * from emp where deptno=10 order by sal with read only --约束视图 create or replace view view_Account_dept select * from emp where deptno=10 with check option  查询 视图 select * from emp where view_Account_dept  修改视图 通过OR REPLACE 重新创建同名视图即可  删除视图 DROP VIEW VIEW_NAME语句删除视图  视图上的DML 操作原则 1. 简单视图可以执行DML操作; 2. 在视图包含GROUP函数,GROUP BY子句,DISTINCT关键字时不能执行delete语句 3. 在视图包含GROUP函数,GROUP BY子句,DISTINCT关键字,ROWNUM为例,列定义为 达式时不能执行update语句 4. 在视图包含GROUP函数,GROUP BY子句,DISTINCT关键字,ROWNUM为例,列定义为 达式, 非空的列子视图定义 未包括时不能执行insert语句 5. 可以使用WITH READ ONLY来屏蔽DML操作 三、 内嵌视图 内嵌视图是在from语句 的可以把 改成一个子 查询 。内嵌视图不属于任何用户,也不是对象,内嵌视图是子 查询 的一种。 Select * from (select * from emp where deptno=10) where sal>2000 四、 对象视图 对象类型在 数据库 编程 有许多好处,但有时,应用程序已经开发完成。为了迎合对象类型而重建 数据 是不现实的。对象视图正是解决这一问题的优秀策略。 五、 物化视图 常用于 数据库 的容灾,不是传统意义上虚拟视图,是实体化视图,和 一样可以存储 数据 查询 数据 。主备 数据库 数据 同步通过物化视图实现,主备 数据库 通过data link连接,在主备 数据库 物化视图进行 数据 复制。当主 数据库 垮掉时,备 数据库 接管,实现容灾。 create materialized view materialized_view_name build [immediate|deferred] --1.创建方式 refresh [complete|fast|force|never] --2.物化视图刷新方式 on [commit|demand] --3.刷新触发方式 start with (start_date) --4.开始时间 next (interval_date) --5.间隔时间 with [primary key|rowid] --默认 primary key ENABLE QUERY REWRITE --7.是否启用 查询 重写 as --8.关键字 select statement; --9.基 选取 数据 的select语句 1. 创建方式  immediate(默认):立即  deferred:延迟,至第一次refresh时,才生效 2. 物化视图刷新方式  force(默认):如果可以快速刷新,就执行快速刷新,否则,执行完全刷新  complete:完全刷新,即刷新时更新全部 数据 ,包括视图 已经生成的原有 数据  fast:快速刷新,只刷新增量部分。前提是,需要在基 上创建物化视图日志。该日志记录基 数据 变化情况,所以才能实现增量刷新  never:从不刷新 3. 刷新触发方式  on commit:基 有commit动作时,刷新视图,不能跨库执行(因为不知道别的库的提交动作)  on demand,在需要时刷新,根据后面设定的起始时间和时间间隔进行刷新,或者手动调用dbms_mview包 的过程刷新时再执行刷新。 4. 开始时间和间隔时间  4和5即开始刷新时间和下次刷新的时间间隔。如:start with sysdate next sysdate+1/1440 示马上开始,刷新间隔为1分钟。(与 on commit选项冲突) 5. 创建模式  primary key(默认):基于基 的主键创建  rowed:不能对基 执行分组函数、多 连结等需要把多个rowid合成一行的操作 6. 是否启用 查询 重写  如果设置了初始化参数query_rewrite_enabled=true则默认就会启用 查询 重写。但是, 数据库 默认该参数为false。并且,不是什么时候都应该启用 查询 重写。所以,该参数应该设置为false,而在创建特定物化视图时,根据需要开启该功能。 7. 注意  如果选择使用了上面第4,5选项,则不支持 查询 重写功能(原因很简单,所谓重写,就是将对基 查询 定位到了物化视图上,而4、5选项会造成物化视图上部分 数据 延迟,所以,不能重写)。 --创建增量刷新的物化视图时应先创建存储的日志 空间 --在scott.emp 创建物化视图日志 create materialized view log on emp tablespace users with rowid; --开始创建物化视图 --方式一 create materialized view mv_emp tablespace users --指定 空间 build immediate --创建视图时即生成 数据 refresh fast --基于增量刷新 on commit -- 数据 DML操作提交就刷新 with rowid --基于ROWID刷新 as select * from emp --方式二 create materialized view mv_emp2 tablespace users --指定 空间 refresh fast --基于增量刷新 start with sysdate --创建视图时即生成 数据 next sysdate+1/1440 /*每隔一分钟刷新一次*/ with rowid --基于ROWID刷新 as select * from emp --删除物化视图日志 drop materialized view mv_emp 第七章 索引 一、 概述 索引是建立在 上的可选对象,设计索引的目的是为了提高 查询 的速度。但同时索引也会增加系统的负担,进行影响系统的性能。 索引一旦建立后,当在 上进行DML操作时,Oracle会自动维护索引,并决定何时使用索引。 索引的使用对用户是透明的,用户不需要在执行SQL语句时指定使用哪个索引及如何使用索引,也就是说,无论 上是否创建有索引,SQL语句的用法不变。用户在进行操作时,不需要考虑索引的存在,索引只与系统性能相关。  索引的原理 当在一个没有创建索引的 查询 符合某个条件的记录时,DBMS会顺序地逐条读取每个记录与 查询 条件进行匹配,这种方式称为全 扫描。全 扫描方式需要遍历整个 ,效率很低。  索引的类型 Oracle支持多种类型的索引,可以按列的多少、索引值是否唯一和索引 数据 的组织形式对索引进行分类,以满足各种 查询 条件的要求。  单列索引和复合索引  B树索引  位图索引  函数索引  创建索引 CREATE [UNIQUE] | [BITMAP] INDEX index_name ON table_name([column1 [ASC|DESC],column2 [ASC|DESC],…] | [express]) [TABLESPACE tablespace_name] [PCTFREE n1] [STORAGE (INITIAL n2)] [NOLOGGING] [NOLINE] [NOSORT]  UNIQUE: 示唯一索引,默认情况下,不使用该选项。  BITMAP: 示创建位图索引,默认情况下,不使用该选项。  PCTFREE:指定索引在 数据 的空闲 空间 。对于经常插入 数据 ,应该为 索引指定一个较大的空闲 空间 。  NOLOGGING: 示在创建索引的过程 不产生任何重做日志信息。默认情况下,不使用该选项。  ONLINE: 示在创建或重建索引时,允许对 进行DML操作。默认情况下,不使用该选项。  NOSORT:默认情况下,不使用该选项。则Oracle在创建索引时对 记录进行排序。如果 数据 已经是按该索引顺序排列的,则可以使用该选项。 二、 单列索引和复合索引 一个索引可以由一个或多个列组成。基于单个列所创建的索引称为单列索引,基于两列或多列所创建的索引称为多列索引。 三、 B树索引 B树索引是Oracle 数据库 最常用的一种索引。当使用CREATE INDEX语句创建索引时,默认创建的索引就是B树索引。B树索引就是一棵二叉树,它由根、分支节点和叶子节点三部分构成。叶子节点包含索引列和指向 每个匹配行的ROWID值。叶子节点是一个双向链 ,因此可以对其进行任何方面的范围扫描。 B树索引 所有叶子节点都具有相同的深度,所以不管 查询 条件如何, 查询 速度基本相同。另外,B树索引能够适应各种 查询 条件,包括精确 查询 、模糊 查询 和比较 查询 。 --创建B树索引,属于单列索引 create index idx_emp_job on emp(job) --创建B树索引,属于复合索引 create index idx_emp_nameorsal on emp(ename,sal) --创建唯一的B树索引,属于单列索引 create unique index idx_emp_ename on emp(ename) --删除索引 drop index idx_emp_job drop index idx_emp_nameorsal drop index idx_emp_ename --如果 已存在大量的 数据 ,需要规划索引段 create index idx_emp_nameorsal on emp(ename,sal) pctfree 30 tablespace system 四、 位图索引 在B树索引 ,保存的是经排序过的索引列及其对应的ROWID值。但是对于一些基数很小的列来说,这样做并不能显著提高 查询 的速度。所谓基数,是指某个列可能拥有的不重复值的个数。比如性别列的基数为2(只有男和女)。 因此,对于象性别、婚姻状况、政治面貌等只具有几个固定值的字段而言,如果要建立索引,应该建立位图索引,而不是默认的B树索引。 --创建位图索引,单列索引 create bitmap index idx_bm_job on emp(job) --创建位图索引,复合索引 create bitmap index idx_bm_jobordeptno on emp(job,deptno) --删除位图索引 drop index idx_bm_job drop index idx_bm_jobordeptno 五、 函数索引 函数索引既可以使用B树索引,也可以使用位图索引,可以根据函数或 达式的结果的基数大小来进行选择,当函数或 达式的结果不确定时采用B树索引,当函数或 达式的结果是固定的几个值时采用位图索引。 --合并索引 alter index idx_emp_ename COALESCE 六、 并和重建索引 在使用一段时间后,由于用户不断对其进行更新操作,而每次对 的更新必然伴随着索引的改变,因此,在索引 会产生大量的碎片,从而降低索引的使用效率。有两种方法可以清理碎片:合并索引和重建索引。  合并索引就是将B树叶子节点 的存储碎片合并在一起,从而提高存取效率,但这种合并并不会改变索引的物理组织结构。 --创建B树类型的函数索引 create index idx_fun_emp_hiredate on emp(to_char(hiredate,'yyyy-mm-dd')) --创建位图类型的函数索引 create index idx_fun_emp_job on emp(upper(job))  重建索引相当于删除原来的索引,然后再创建一个新的索引,因此,CREAT INDEX语句 的选项同样适用于重建索引。如果在索引列上频繁进行UPDATE和DELETE操作,为了提高 空间 的利用率,应该定期重建索引。 七、 管理索引的原则 使用索引的目的是为了提高系统的效率,但同时它也会增加系统的负担,进行影响系统的性能,因为系统必须在进行DML操作后维护索引 数据 。 在新的SQL标准 并不推荐使用索引,而是建议在创建 的时候用主键替代。因此,为了防止使用索引后反而降低系统的性能,应该遵循一些基本的原则: 1. 小 不需要建立索引。 2. 对于大 而言,如果经常 查询 的记录数目少于 总记录数目的15%时,可以创建索引。这个比例并不绝对,它与全 扫描速度成反比。 3. 对于大部分列值不重复的列可建立索引。 4. 对于基数大的列,适合建立B树索引,而对于基数小的列适合建立位图索引。 5. 对于列 有许多空值,但经常 查询 所有的非空值记录的列,应该建立索引。 6. LONG和LONG RAW列不能创建索引。 7. 经常进行连接 查询 的列上应该创建索引。 8. 在使用CREATE INDEX语句创建 查询 时,将最常 查询 的列放在其他列前面。 9. 维护索引需要开销,特别时对 进行插入和删除操作时,因此要限制 索引的数量。对于主要用于读的 ,则索引多就有好处,但是,一个 如果经常被更改,则索引应少点。 10. 在 插入 数据 后创建索引。如果在装载 数据 之前创建了索引,那么当插入每行时,Oracle都必须更改每个索引。 八、 ROWID和ROWNUM 1. ROWID rowid是一个伪列,是用来确保 行的唯一性,它并不能指示出行的物理位置,但可以用来定位行。rowid是存储在索引 的一组既定的值(当行确定后)。我们可以像 普通的列一样将它选出来, 利用rowid是访问 一行的最快方式。rowid的是基于64位编码的18个字符显示( 数据 对象编号(6)+文件编号(3) +块编号(6)+行编号(3)=18位) select rowid from emp  ROWID的使用 --快速删除重复的记录 delete from temp t where rowid not in( select max(rowid) from temp where t.id=id and t.name=name and t.sal = sal 2. ROWNUM ROWNUM是一个序列,是oracle 数据库 数据 文件或缓冲区 读取 数据 的顺序。它取得第一条记录则rownum值为1,第二条为2,依次类推。 select rownum,emp.* from emp  ROWID的使用 --取前3条记录 select * from emp where rownum<=3--方式一 select * from emp where rownum!=4--方式二 select * from emp where empno not in( select empno from emp where rownum<5--方式一 ) and rownum <4 第八章 PL/SQL编程 一、 介绍 PL/SQL是oracle在标准sql语言上的扩展,PL/SQL不仅允许嵌入sql语言,还可以定义变量和常量,允许使用例外处理各种错误,这样使它的功能变得更加强大。 PL/SQL也是一种语言,叫做过程化sql语言(procedural language/sql),通过此语言可以实现复杂功能或者复杂的计算。 1. 提高应用程序的运行性能 2. 模块化的设计思想 3. 减少网络传输量 4. 提高安全性 1. 可移植性差 2. 违反MVC设计模式 3. 无法进行面向对象编程 4. 无法做成通用的业务逻辑框架 5. 代码可读性差,相当难维护 二、 PL/SQL基础 1. 编写规范 1) 注释 --单行注释 /*块注释*/ 2) 标识符的命名规范  定义变量:建议用v_作为前缀v_price  定义常量:建议用c_作为前缀c_pi  定义游标:建议用_cursor作为后缀emp_cursor  定义例外:建议用e_作为前缀e_error 2. 块结构 PL/SQL块由三个部分组成:定义部分、执行部分、例外处理部分 Declare 定义部分(可选):定义常量、变量、游标、例外,复杂 数据 类型 begin 执行部分(必须):要执行的PL/SQL语句和SQL语句 exception /*例外部分(可选):处理运行各种错误*/ 案例一 :只定义执行部分 begin dbms_output是oracle提供的包(类似java开发包) 该包包含一些过程,put_line就是其一个过程 dbms_output.put_line('HELLO WORLD'); --控制台输出 案例二 :定义声明部分和执行部分 declare --声明变量 v_name varchar2(20); v_sal number(7,2); begin --执行 查询 select ename,sal into v_name,v_sal from emp where rownum=1; --控制台输出 dbms_output.put_line('用户名:' || v_name); dbms_output.put_line('工资:' || v_sal); 案例三 :定义声明部分、执行部分和例外部分 declare --声明变量 v_name varchar2(20); v_sal number(7,2); begin --执行 查询 ,条件 的& 示从控制接受 数据 select ename,sal into v_name,v_sal from emp where empno=&no; --控制台输出 dbms_output.put_line('用户名:' || v_name); dbms_output.put_line('工资:' || v_sal); exception --例外处理(no_data_found) when no_data_found then dbms_output.put_line('执行 查询 没有结果'); 3. 预定义例外 1) case_not_found预定义例外 在开发pl/sql块 编写case语句时,如果在when子句 没有包含必须的条件分支,就会触发case_not_found例外。 2) cursor_already_open预定义例外 当重新打开已经打开的游标时,会隐含的触发cursor_already_open例外。 3) dup_val_on_index预定义例外 在唯一索引所对应的列上插入重复的值时,会隐含的触发例外 4) invalid_cursorn预定义例外 当试图在不合法的游标上执行操作时,会触发该例外 5) invalid_number预定义例外 当输入的 数据 有误时,会触发该例外 6) no_data_found预定义例外 当执行select into没有返回行,就会触发该例外 7) too_many_rows预定义例外 当执行select into语句时,如果返回超过了一行,则会触发该例外 8) zero_divide预定义例外 当执行2/0语句时,则会触发该例外 9) value_error预定义例外 当在执行赋值操作时,如果变量的长度不足以容纳实际 数据 ,则会触发该例外value_error 10) others 4. 变量类型分类 在编写PL/SQL时,可以定义变量和常量,常用的类型主要有:  标量类型(scalar)  复合类型(composite)  参照类型(reference)  lob(large object) 5. 标量类型:常用类型 declare --定义一个变长字符串 v_name varchar2(20); --定义小数,并赋值 v_sal number(7,2) :=9.8; --定义整数 v_num number(4); --定义日期 v_birthday date; --定义布尔类型,不能为空,初始值为false v_flg boolean not null default false; --使用%type类型 v_job emp.job%type; begin v_flg := true; v_birthday :=sysdate; dbms_output.put_line('当前时间:' || v_birthday); 6. 复合类型:可以存放多个值。主要包括PL/SQL记录、PL/SQL 、嵌入 和varray这四种类型 记录类型:类似于c 的结构体 declare --定义记录类型 type emp_record_type is record( empno emp.empno%type, ename emp.ename%type, sal emp.sal%type --定义变量引用记录类型 v_record emp_record_type; begin --使用记录类型 select empno,ename,sal into v_record from emp where rownum=1; --控制台输出 dbms_output.put_line('雇员编号:' || v_record.empno); dbms_output.put_line('雇员姓名:' || v_record.ename); dbms_output.put_line('雇员工资:' || v_record.sal); 类型:类似于java语言 的数组 declare --声明 类型 type emp_table_type is table of varchar2(20) index by PLS_INTEGER;-- 按整数来排序 v_enames emp_table_type;--定义变量引用 类型 begin select ename into v_enames(0) from emp where rownum=1; select ename into v_enames(1) from emp where empno=7499; select ename into v_enames(2) from emp where empno=7698; dbms_output.put_line('下标0:' || v_enames(0)); dbms_output.put_line('下标1:' || v_enames(1)); dbms_output.put_line('下标2:' || v_enames(2)); varray类型:可变长数组 declare --定义varray类型 type varray_list is varray(20) of number(4); --定义变量引用varray类型 v_list varray_list:=varray_list(7369,7499,7566); begin --for i in v_list.first..v_list.last for i in 1..v_list.count dbms_output.put_line(v_list(i)); end loop; PL/SQL集合方法 1) exists():用于确定特定集合元素是否存在 2) count:用于返回集合变量的元素总个数 3) limit:用于返回varray变量所允许的最大元素个数 4) first:用于返回集合变量 的一个元素的下标 5) last:用于返回集合变量 最后一个元素的下标 6) prior():返回当前元素前一个元素的下标 7) next():返回当前元素后一个元素的下标 8) extend:为集合变量添加元素,此方法适合用于嵌套 和varray 9) trim:从集合变量尾部删除元素,此方法适用于嵌套 和varray 10) delete:从集合变量 删除特定的元素,此方法适用于嵌套 和index-by 7. 参照类型:类似c语言 的指针,oracle的游标 三、 PL/SQL控制语句 1. 条件分支语句 1) if—then declare --声明变量 v_empno emp.empno%type; v_sal emp.sal%type; begin --根据雇员编号 查询 工资 select empno,sal into v_empno,v_sal from emp where empno=&no; --如果工资小于2000就加100 if v_sal<2000 --工资加100 update emp set sal = sal+100 where empno=v_empno; commit; end if; 2) if—then—else declare --声明变量 v_loginname varchar2(10); v_password varchar2(10); begin --从控制台接收 数据 v_loginname := '&ln'; v_password := '&pw'; if v_loginname = 'admin' and v_password = '123456' dbms_output.put_line('用户登录成功!'); dbms_output.put_line('用户登录失败!'); end if; 3) if—then—elsif—else declare --声明变量 v_empno emp.empno%type; v_job emp.job%type; begin --根据雇员编号 查询 职位 select empno,job into v_empno,v_job from emp where empno=&no; /*如果雇员所属职位是manager工资加1000 职位是salesman工资加500 其他职位加200 if v_job = 'MANAGER' then --MANAGER职位工资加1000 update emp set sal = sal+1000 where empno=v_empno; elsif v_job = 'SALESMAN' then --SALESMAN职位工资加500 update emp set sal = sal+500 where empno=v_empno; --其他职位工资加200 update emp set sal = sal+200 where empno=v_empno; end if; commit; 4) case declare --声明变量 v_mark number(4); v_outstr varchar2(40); begin --从控制台接收成绩 v_mark := &m; when v_mark=90 then v_outstr := '优秀'; when v_mark=80 then v_outstr := '良好'; when v_mark=70 then v_outstr := ' 等'; when v_mark=60 then v_outstr := '及格'; when v_mark=0 then v_outstr := '不及格'; v_outstr := '成绩输入有误'; end case; --控制台输出 dbms_output.put_line(v_outstr); 2. 循环语句 1) loop LOOP 要执行的语句; EXIT WHEN /*条件满足,退出循环语句*/ END LOOP; 其 :EXIT WHEN 子句是必须的,否则循环将无法停止。 declare v_num number(4):=1; begin --从控制台接收 数据 并插入到account insert into account values(v_num,'&name'); exit when v_num =10; v_num :=v_num+1; end loop; 2) while WHILE LOOP要执行的语句;END LOOP; 其 :  循环语句执行的顺序是先判断的真假,如果为真则循环执行,否则退出循环  在WHILE循环语 p.rows AS RowCounts, SUM(a.total_pages) * 8 AS TotalSpaceKB, CAST(ROUND(((SUM(a.total_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS 总共 占用 空间 , SUM(a.used_pages) * 8 AS UsedSpaceKB, -- 查询 各个 对应的 数据 行数 select a.name,b.rows from sysobjects a inner join sysindexes b on a.id=b.id where a.type='u' and b.indid in (0,1) order by b.rows desc -- 查询 各个 对应的 空间 占用 量及行数 select
    --SQL Server 统计 数据库 所有 的记录数和 占用 空间 create table #tmp (name varchar(50),rows int,reserved varchar(50),data varchar(50),index_size varchar(50),unused varchar(50)); insert into #tmp (name,rows,reserved,data
    如果想知道MySQL 数据库 每个 占用 空间 记录的行数的话,可以打开MySQL的 information_schema 数据库 。在该库 有一个 TABLES ,这个 主要字段分别是: TABLE_SCHEMA : 数据库 名 TABLE_NAME: 名 ENGINE:所使用的存储引擎 TABLES_ROWS:记录数 DATA_LENGTH: 数据 大小 INDEX...
    你可以将 `[database_name]` 替换成你想 查询 数据库 名,将 `[table_name]` 替换成你想 查询 名,将 `[column_name]` 替换成你想 查询 的列名。 如果你想 查询 SQL Server 所有 数据库 的所有 的某一个字段,可以使用动态 SQL 语句,例如: DECLARE @column_name nvarchar(max) = '[column_name]'; DECLARE @sql nvarchar(max) = ''; SELECT @sql = @sql + 'USE [' + name + ']; SELECT ''' + name + ''' AS database_name, ' + @column_name + ' FROM [' + t.name + ']; ' FROM sys.databases CROSS APPLY sys.tables t; EXEC sp_executesql @sql; 你可以将 `[column_name]` 替换成你想 查询 的列名。 希望这能帮到你! chxgzs01: 抄的作业,连接的时候提示错误:Connection refused: no further information, server ClickHouseNode [uri=http://localhost:8123/default, options={use_server_time_zone=false,use_time_zone=false}]@-922317308 Connection refused: no further information Connection refused: no further information Visual Studio 2019密钥 w_495804634: 感谢大佬,好人一生平安,一胎生八个,身体健康,子孙满堂,长命百岁,年年有余,岁岁平安,花开富贵 表情包 Visual Studio 2019密钥 梦川乃澪: 万分感谢! Visual Studio 2019密钥 琉璃心梦: 简单粗暴,人狠话不多,非常感谢!!! 解决当前标识(IIS APPPOOL\XXXX)没有对“C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files”... 修改NuGet包默认存放位置 解决ECharts官网打开缓慢的问题
     
    推荐文章