在游标中使用use dbname遇到的问题。

nettt 2011-01-14 06:08:41
use DB1
go
--变量定义我就不写了,
declare R_x cursor
for select code,[name],description2,description3,description5,description6 from dbo.Material_Syn Order by id
open R_x
fetch next from R_x into @Code,@Name,@description2,@description3,@description5,@description6
---在这里我想连到db2中取一个值。
use db2 问题就出在这里,@baseid取到值,我感觉从这里往下就没运行过,不知道是不是游标内部不能使用use db
SELECT @baseid=material from dbo.proc_materials where materialtype=32

while @@fetch_status=0
begin
------这里面有一些update操作
end

fetch next from R_x into @Code,@Name,@description2,@description3,@description5,@description6 --回过头再取一便
Close R_x
DEALLOCATE R_x
...全文
95 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
nettt 2011-01-14
  • 打赏
  • 举报
回复
可以我已经成功了。
AcHerat 元老 2011-01-14
  • 打赏
  • 举报
回复
貌似不可以这样写吧!游标还是存储过程,在里面都不能出现use database 这种语句吧!
nettt 2011-01-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wxf163 的回复:]

SQL code
SELECT @baseid=material from db2.dbo.proc_materials where materialtype=32 --这样写
[/Quote]
这个方法我试过了,不行。
gw6328 2011-01-14
  • 打赏
  • 举报
回复
我看到写了一个DB2我还以为是db2数据库,帮顶
王向飞 2011-01-14
  • 打赏
  • 举报
回复
SELECT @baseid=material from db2.dbo.proc_materials where materialtype=32 --这样写
Oracle9i初始化参数文说明 Blank_trimming: 说明: 如果值为TRUE, 即使源长度比目标长度 (SQL92 兼容) 更长, 也允许分配数据。 值范围: TRUE | FALSE 默认值: FALSE serializable: 说明: 确定查询是否获取表级的读取锁, 以防止在包含该查询的事务处理被提交之前更新任何对象读取。这种操作模式提供可重复的读取, 并确保在同一事务处理种对相同数据的两次查询看到的是相同的值。 值范围: TRUE | FALSE 默认值: FALSE row_locking: 说明: 指定在表已更新或正在更新时是否获取行锁。如果设置为 ALWAYS, 只有在表被更新后才获取行锁。如果设置为 INTENT, 只有行锁将用于SELECT FOR UPDATE, 但在更新时将获取表锁。 值范围: ALWAYS | DEFAULT | INTENT 默认值: ALWAYS shared_servers 说明 : 指定在启动例程后, 要为共享服务器环境创建的服务器进程的数量。 值范围: 根据操作系统而定。 默认值 : 1 circuits: 说明 : 指定可用于入站和出站网络会话的虚拟电路总数。 该参数是构成某个例程的总 SGA 要求的若干参数之一。 默认值 : 派生: SESSIONS 参数的值 (如果正在使用共享服务器体系结构); 否则为 0。 Mts_multiple_listeners: 说明: 指定多个监听程序的地址是分别指定的, 还是用一个 ADDRESS_LIST 字符串指定。如果该值为 TRUE, MTS_LISTENER_ADDRESS 参数可被指定为: (ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(PORT=5000)(HOST=zeus)) (ADDRESS=(PROTOCOL=decnet)(OBJECT=outa)(NODE=zeus)) 此参数在 8.1.3 版已废弃。 值范围: TRUE | FALSE 默认值: FALSE mts_servers: 说明 : 指定在启动例程后, 要为共享服务器环境创建的服务器进程的数量。 值范围: 根据操作系统而定。 默认值 : 1 mts_service: 说明 : 一个共享服务器参数, 用于指定已在调度程序上注册, 用来建立数据库连接的唯一服务名。如果要在没有调度程序的情况下仍能连接到数据库, 请将该值设置为与例程名相同。此参数自 8.1.3 版起已废弃。 值范围: 根据操作系统而定。 默认值 :0 mts_sessions: 说明 : 指定允许的共享服务器体系结构用户会话的总数。设置此参数可为专用服务器保留一些用户会话。 值范围: 0 到 SESSIONS - 5 默认值 : 派生: MTS_CIRCUITS 和 SESSIONS - 5 两者的较小值 shared_server_sessions: 说明 : 指定允许的共享服务器体系结构用户会话的总数。设置此参数可为专用服务器保留一些用户会话。 值范围: 0 到 SESSIONS - 5 默认值 : 派生: MTS_CIRCUITS 和 SESSIONS - 5 两者的较小值 mts_max_dispatchers 说明 : 指定在一个共享服务器环境可同时运行的调度程序进程的最大数量。 值范围: 根据操作系统而定。 默认值 : 如果已配置了调度程序, 则默认值为大于 5 的任何数目或配置的调度程序的数目 mts_max_servers: 说明 : 指定在一个共享服务器环境可同时运行的共享服务器进程的最大数量。 值范围: 根据操作系统而定。 默认值 : 20 dispatchers: 说明 : 为设置使用共享服务器的共享环境而设置调度程序的数量和类型。可以为该参数指定几个选项。有关详细信息, 请参阅“Oracle8i 管理员指南”和“Oracle Net Administrator's Guide”。这是字符串值的一个示例: '(PROTOCOL=TCP)(DISPATCHERS=3)'。 值范围: 参数的有效指定值。 默认值 : NULL max_shared_servers: 说明 : 指定在一个共享服务器环境可同时运行的共享服务器进程的最大数量。 值范围: 根据操作系统而定。 默认值 : 20 mts_circuits: 说明 : 指定可用于入站和出站网络会话的虚拟电路总数。 该参数是构成某个例程的总 SGA 要求的若干参数之一。 默认值 : 派生: SESSIONS 参数的值 (如果正在使用共享服务器体系结构); 否则为 0。 Mts_listener_address: 说明 : 指定共享服务器的监听程序配置。监听程序进程需要一个监听地址, 以便处理系统所用的各个网络协议的连接请求。 除非 MTS_MULTIPLE_LISTENERS=TRUE, 否则每个条目都必须有一个独立的相邻值。此参数自 8.1.3 版起已废弃 语法 : (ADDRESS=(PROTOCOL=tcp)(HOST=myhost)(PORT=7002)) 默认值 : NULL mts_dispatchers: 说明 : 为设置使用共享服务器的共享环境而设置调度程序的数量和类型。可以为该参数指定几个选项。有关详细信息, 请参阅“Oracle8i 管理员指南”和“Oracle Net Administrator's Guide”。这是字符串值的一个示例: '(PROTOCOL=TCP)(DISPATCHERS=3)'。 值范围: 参数的有效指定值。 默认值 : NULL max_dispatchers: 说明 : 指定在一个共享服务器环境可同时运行的调度程序进程的最大数量。 值范围: 根据操作系统而定。 默认值 : 如果已配置了调度程序, 则默认值为大于 5 的任何数目或配置的调度程序的数目 nls_nchar_conv_excp: 说明: (如果值为 TRUE) 当在隐式转换丢失数据时返回错误的参数。 值范围: FALSE | TRUE 默认值: TRUE nls_numeric_characters: 说明: 指定将用作组分隔符和小数位的字符。组分隔符就是用来分隔整数位组 (如千, 百万等等) 的字符。小数分隔符用来将一个数字的整数部分与小数部分分隔开。其格式是 。 值范围: 任何单字节字符, '+', '-', '<', '>' 除外。 默认值: 从 NLS_TERRITORY 获得 nls_sort: 说明: 指定 ORDER BY 查询的比较顺序。对于二进制排序, ORDER BY 查询的比较顺序是以数值为基础的。对于语言排序, 则需要进行全表扫描, 以便将数据按照所定义的语言排序进行整理。 值范围: BINARY 或有效的语言定义名。 默认值: 从 NLS_LANGUAGE 获得 nls_territory: 说明: 为以下各项指定命名约定, 包括日期和星期的编号, 默认日期格式, 默认小数点字符和组分隔符, 以及默认的 ISO 和本地货币符号。可支持的区域包括美国, 法国和日本。有关所有区域的信息, 请参阅 Oracle8i National Language Support Guide。 值范围: 任何有效的地区名。 默认值: 根据操作系统而定 nls_timestamp_format: 说明: 与 NLS_TIME_FORMAT 相似, 只不过它设置的是 TIMESTAMP 数据类型的默认值, 该数据类型既存储YEAR, MONTH 和 DAY 这几个日期值, 也存储 HOUR, MINUTE 和 SECOND 这几个时间值。 语法: TIMESTAMP '1997-01-31 09:26:50.10' (将值存储为 11 个字节)。 默认值: 从 NLS_TERRITORY 获得 nls_time_format: 说明: 指定一个字符串值, 设置 TIME 数据类型的默认值, 该数据类型包含 HOUR, MINUTE 和 SECOND 这几个日期时间字段。 语法: TIME '09:26:50' (将值存储为 7 个字节)。 默认值: 从 NLS_TERRITORY 获得 nls_time_tz_format: 说明: 指定一对值 (UTC,TZD), 设置 TIME WITH TIME ZONE 数据类型的默认值, 该数据类型包含 HOUR, MINUTE, SECOND, TIMEZONE_HOUR 和 TIMEZONE_MINUTE 这几个日期时间字段。UTC 是世界时而 TZD 是当地时区。 语法: TIME '09:26:50.20+ 02:00' (将值存储为 9 个字节)。 默认值: 从 NLS_TERRITORY 获得 nls_length_semantics: 说明: 使用字节或码点语义来指定新列的创建, 如 char, varchar2, clob, nchar, nvarchar2, nclob 列。各种字符集对字符都有各自的定义。在客户机和服务器上使用同一字符集时, 应以该字符集所定义的字符来衡量字符串。现有的列将不受影响。 值范围: BYTE 或 CHAR。 默认值: nls_length_semantics 的数据库字符集的字符所使用的度量单位。BYTE。 nls_date_format: 说明: 指定与 TO_CHAR 和 TO_DATE 函数一同使用的默认日期格式。该参数的默认值由 NLS_TERRITORY 确定。该参数的值可以是包含在双引号内的任何有效的日期格式掩码。例如: ''MMM/DD/YYYY''。 值范围: 任何有效的日期格式掩码, 但不得超过一个固定长度。 默认值: 派生 nls_timestamp_tz_format: 说明: 与 NLS_TIME_TZ_FORMAT 相似, 其的一对值指定 TIMESTAMP 数据类型的默认值, 该类型除存储 YEAR, MONTH 和 DAY 日期值, HOUR, MINUTE 和 SECOND 时间值, 还存储 TIMEZONE_HOUR 和 TIMEZONE_MINUTE。 语法: TIMESTAMP '1997- 01- 31 09:26:50+ 02:00' (将值存储为 13 个字节)。 默认值: 从 NLS_TERRITORY 获得 nls_language: 说明: 指定数据库的默认语言, 该语言将用于消息, 日期和月份名, AD, BC, AM 和 PM 的符号, 以及默认的排序机制。可支持的语言包括英语, 法语和日语等等。 值范围: 任何有效的语言名。 默认值: 根据操作系统而定 nls_comp: 说明: 在 SQL 语句, 应避免使用繁琐的 NLS_SORT 进程。正常情况下, WHERE 子句进行的比较是二进制的, 但语言比较则需要 NLSSORT 函数。可以使用 NLS_COMP 指定必须根据NLS_SORT 会话参数进行语言比较。 值范围: Oracle8i National Language Support Guide 指定的任何有效的10 字节字符串。 默认值: BINARY nls_currency: 说明: 为 L 数字格式元素指定用作本地货币符号的字符串。该参数的默认值由 NLS_TERRITORY 确定。 值范围: Oracle8i National Language Support Guide 指定的任何有效的10 字节字符串。 默认值: 从 NLS_TERRITORY 获得 nls_date_language: 说明: 指定拼写日期名, 月名和日期缩写词 (AM, PM, AD, BC) 的语言。该参数的默认值是由 NLS_LANGUAGE指定的语言。 值范围: 任何有效的 NLS_LANGUAGE 值。 默认值: NLS_LANGUAGE 的值 nls_dual_currency: 说明: 用于覆盖 NLS_TERRITORY 定义的默认双重货币符号。如果不设置该参数, 就会使用默认的双重货币符号; 否则就会启动一个值为双重货币符号的新会话。 值范围: 任何有效的格式名。。 默认值: 双重货币符号 nls_iso_currency: 说明: 为 C 数字格式元素指定用作国际货币符号的字符串。该参数的默认值由 NLS_TERRITORY 确定。 值范围: 任何有效的 NLS_TERRITORY 值。 默认值: 从 NLS_TERRITORY 获得 nls_calendar: 说明: 指定 Oracle 使用哪种日历系统作为日期格式。例如, 如果 NLS_CALENDAR 设置为 'Japanese Imperial', 那么日期格式为 'E YY-MM-DD'。即: 如果日期是 1997 年 5 月 15 日, 那么 SYSDATE 显示为 'H 09-05-15'。 值范围: Arabic Hijrah, English Hijrah, Gregorian, Japanese Imperial, Persian, ROC Official (Republic of China) 和 Thai Buddha。 默认值: Gregorian plsql_native_c_compiler: 说明: 指定用于将生成的 C 文件编译为目标文件的 C 编译程序的完整路径名。此参数是可选的。随每个平台附带的特有的 make 文件包含此参数的默认值。如果为此参数指定了一个值, 则该值将覆盖 make 文件的默认值。 值范围: C 编译程序的完整路径。 默认值: 无 remote_dependencies_mode: 说明: 用于指定数据库为远程 PL/SQL 存储的过程处理被依赖对象的方式。如果设置为 TIMESTAMP, 只有在服务器与本地时间戳相匹配的情况下, 才能执行该过程。如果设置为 SIGNATURE, 在签名安全的情况下即可执行该过程。 值范围: TIMESTAMP | SIGNATURE 默认值: TIMESTAMP utl_file_dir: 说明: 允许数据库管理员指定 PL/SQL 文件 I/O 许可的目录。使用多个 UTL_FILE_DIR 参数即可指定多个目录。请注意所有用户均可读取或写入 UTL_FILE_DIR 参数指定的所有文件。 值范围: 任何有效的目录路径。 默认值: 无 plsql_v2_compatibility: 说明: 设置 PL/SQL 兼容级。如果设置为 FALSE, 将执行 PL/SQL V3 行为, 而不允许 V2 行为; 否则在运行 PL/SQL V3 时将接受某些 PL/SQL V2 行为。 值范围: TRUE | FALSE 默认值: FALSE plsql_native_make_utility: 说明: 指定 make 实用程序 (如 UNIX 的 make 或 gmake, 即 GNU make) 的完整路径名。要从生成的 C 源生成共享对象或 DLL, 需要使用 make 实用程序。 值范围: make 实用程序的完整路径名。 默认值: 无 plsql_native_library_dir: 说明: 由 PL/SQL 编译程序使用。它指定目录名, 其存储了本机编译程序生成的共享对象。 范围值: 目录名。 默认值: 无 plsql_compiler_flags: 说明: 由 PL/SQL 编译程序使用。它将编译程序标志列表指定为一个用逗号分隔的字符串列表。 值范围: native (PL/SQL 模块将按本机代码来编译。), interpreted (然后 PL/SQL 模块将被编译为 PL/SQL 字节代码格式), debug (PL/SQL 模块将用探测调试符号来编译), non_debug。 默认值: " interpreted, non_debug " plsql_native_linker: 说明: 此参数指定链接程序 (如: UNIX 的 ld, 或用于将目标文件链接到共享对象或 DLL 的 GNU ld) 的完整路径名。此参数是可选的。随每个平台附带的特有的 make 文件包含此参数的默认值。如果为此参数指定了一个值, 则该值将覆盖 make 文件的默认值。 值范围: 链接程序的完整路径名。 默认值: 无 plsql_native_make_file_name: 说明: 指定 make 文件的完整路径名。make 实用程序 (由 PLSQL_NATIVE_MAKE_UTILITY 指定) 使用此 make 文件生成共享对象或 DLL。每个平台附带有端口专用的 make 文件, 该文件包含使用 make 实用程序在该平台上生成 DLL 时要遵循的规则。 值范围: make 文件的完整路径名。 默认值: 无 plsql_v2_compatibility: 说明: 设置 PL/SQL 兼容级。如果设置为 FALSE, 将执行 PL/SQL V3 行为, 而不允许 V2 行为; 否则在运行 PL/SQL V3 时将接受某些 PL/SQL V2 行为。 值范围: TRUE | FALSE 默认值: FALSE remote_dependencies_mode: 说明: 用于指定数据库为远程 PL/SQL 存储的过程处理被依赖对象的方式。如果设置为 TIMESTAMP, 只有在服务器与本地时间戳相匹配的情况下, 才能执行该过程。如果设置为 SIGNATURE, 在签名安全的情况下即可执行该过程。 值范围: TIMESTAMP | SIGNATURE 默认值: TIMESTAMP shared_memory_address: 说明: SHARED_MEMORY_ADDRESS 和 HI_SHARED_MEMORY_ADDRESS 指定运行时 SGA 的起始地址。许多平台在链接时间指定 SGA 起始地址, 在这类平台上这些参数将被忽略。如果两个参数都设置为 0 或 NULL, 那么地址将根据平台而定。 值范围: 任何整数值。 默认值: 0 lock_sga: 说明: 用于将整个 SGA 锁定在物理内存。在不支持这种功能的平台上, 该值将被忽略。 值范围: TRUE | FALSE 默认值: FALSE hi_shared_memory_address: 说明: 指定系统全局区 (SGA) 的运行时起始地址。在指定 SGA 连接时起始地址的平台上, 该值被忽略。在 64 位平台上, 请使用该值来指定高 32 位和低 32 位。如果不指定该值, 默认值是平台指定的位置。 值范围: 任何整数值。 默认值: 0 pre_page_sga: 说明: 一个根据平台而定的参数, 如果该参数为 TRUE, 将把所有 SGA 页装载到内存, 以便使该例程迅速达到最佳性能状态。这将增加例程启动和用户登录的时间, 但在内存充足的系统上能减少缺页故障的出现。 值范围: TRUE | FALSE 默认值: FALSE sga_max_size: 说明: 指定例程存活期间所占用的系统全局区的最大大小。 值范围: 0 到各操作系统所允许的最大值。请注意, 由于该参数值的最小值在启动时已经调整完毕, 因而它无关紧要。 默认值: 如果未指定值, sga_max_size 的默认值将与启动时 SGA 的最初大小 (比如说 X) 相同。该大小取决于 SGA 各种池的大小, 如缓冲区高速缓存, 共享池, 大型池等。如果指定的值小于 X, 则所使用的 sga_max_size 的值将为 X。也就是说, 它是 X 与用户指定的 sga_max_size 值两者之间的较大值。 Fast_start_parallel_rollback: 说明: 执行并行回退时确定进程的最大数量。在多数事务处理的运行时间都较长的系统上, 该值很有用。 值范围: FALSE | LOW | HIGH 默认值: LOW (2 * CPU_COUNT) transaction_auditing: 说明: 确定事务处理层是否生成一个特殊的重做记录, 其包含用户登录名, 用户名, 会话 ID, 部分操作系统信息以及客户机信息。在使用某一重做日志分析工具时, 这些记录可能很有用。 值范围: TRUE | FALSE 默认值: TRUE transactions: 说明: 指定并行事务处理的最大数量。如果将该值设置得较大, 将增加 SGA 的大小, 并可增加例程启动过程分配的回退段的数量。默认值大于 SESSIONS, 以实现递归事务处理。 值范围: 一个数值。 默认值: 派生 (1.1 * SESSIONS) enqueue_resources: 说明: 入队可使并行进程能够共享资源。例如, Oracle 允许一个进程以共享模式锁定一个表, 以共享更新模式锁定另一个表。 值范围: 10 - 65535 (7.3) 或 10 - 无限制 (8.1)。 默认值: 派生 (该值大于 DML_LOCKS + 20 即已足够) dml_locks: 说明: 所有用户获取的表锁的最大数量。对每个表执行 DML 操作均需要一个 DML 锁。例如, 如果 3 个用户修改 2 个表, 就要求该值为 6。 值范围: 0 或 20 到无限制。 默认值: 4 * TRANSACTIONS (派生) hash_join_enabled: 说明: 如果设置为 TRUE, 优化程序将在计算最有效的联接方法时考虑散列联接。Oracle 建议数据仓库应用程序应使用 TRUE值。 值范围: TRUE | FALSE 默认值: TRUE optimizer_features_enable: 说明: 允许更改 init.ora 参数, 该参数控制着优化程序的行为。受此影响的参数包括 PUSH_JOIN_PREDICATE, FAST_FULL_SCAN_ENABLED, COMPLEX_VIEW_MERGING 和 B_TREE_BITMAP_PLANS。 值范围: 8.0.0; 8.0.3; 8.0.4; 8.1.3。 默认值: 8.0.0 query_rewrite_integrity: 说明: Oracle Server 执行的查询重写的程度。如果设置为 ENFORCED, Oracle 将保证其一致性和完整性。如果设置为 TRUSTED, 将使用明确声明的关系来允许重写。如果设置为 STALE_TOLERATED, 即使实体化视图与基础数据不一致, 也仍可以进行重写。 值范围: ENFORCED, TRUSTED, STALE_TOLERATED 默认值: ENFORCED query_rewrite_enabled 说明: 启用或禁用对实体化视图的查询重写。一个特定实体化视图只在如下条件下启用: 会话参数和单独实体化视图均已启用, 并且基于成本的优化已启用。 值范围: TRUE | FALSE 默认值: FALSE partition_view_enabled: 说明: 如果将 PARTITION_VIEW_ENABLED 设置为 TRUE, 该优化程序将剪除 (或跳过) 分区视图不必要的表访问。该参数还能更改基于成本的优化程序从基础表统计信息计算分区视图统计信息的方式。 值范围: TRUE | FALSE 默认值: FALSE optimizer_max_permutations: 说明: 对带有大量联接的查询进行语法分析时, 优化程序将会考虑限制表的交换数。这有助于确保对查询进行语法分析的时间保持在可接受的限制范围内, 但代价是无法找到最佳计划。如果该值小于 1000, 就应该可以确保每次查询的时间仅为几秒钟或更短。 值范围: 4-2^32 (~4.3 G)。 默认值: 80,000 optimizer_index_cost_adj: 说明: 在考虑太多或太少索引访问路径的情况下, 可以用来优化优化程序的性能。该值越低, 优化程序越容易选择一个索引。也就是说, 如果将该值设置为 50%, 索引访问路径的成本就是正常情况下的一半。 值范围: 1 -10000 默认值: 100 (一个索引访问路径的常规成本) star_transformation_enabled: 说明: 确定基于成本的查询转换是否将被应用到星型查询。如果设置为 TRUE, 优化程序将考虑将基于成本的转换应用于星型查询; 如果设置为 FALSE, 将不使用任何转换; 如果设置为 TEMP_DISABLE, 将考虑查询转换, 但不使用临时表。 值范围: TRUE | FALSE | TEMP_DISABLE 默认值: FALSE optimizer_mode: 说明: 指定优化程序的行为。如果设置为 RULE, 就会使用基于规则的优化程序, 除非查询含有提示。如果设置为 CHOOSE, 就会使用基于成本的优化程序, 除非语句的表不包含统计信息。ALL_ROWS 或 FIRST_ROWS 始终使用基于成本的优化程序。 值范围: RULE | CHOOSE | FIRST_ROWS | ALL_ROWS 默认值: CHOOSE optimizer_index_caching: 说明: 调整基于成本的优化程序的假定值, 即在缓冲区高速缓存期望用于嵌套循环联接的索引块的百分比。它将影响使用索引的嵌套循环联接的成本。将该参数设置为一个较高的值, 可以使嵌套循环联接相对于优化程序来说成本更低。 值范围: 0 - 100 %。 默认值: 0 job_queue_processes: 说明: 只用于复制环境。它指定每个例程的 SNP 作业队列进程的数量 (SNP0, ... SNP9, SNPA, ... SNPZ)。要自动更新表快照或执行由 DBMS_JOB 创建的请求, 请将该参数设置为 1 或更大的值。 值范围: 0 到 36 默认值: 0 max_transaction_branches: 说明: 控制分布式事务处理分支的数量。将 MAX_TRANSACTION_BRANCHES 设置为较低的值, 可以根据 MAX_TRANSACTION_BRANCHES * DISTRIBUTED_TRANSACTIONS * 72 字节, 略微减少共享池的空间量。此参数在 8.1.3 版已废弃。 值范围: 1 - 32 默认值: 8 compatible: 说明: 允许您使用一个新的发行版, 同时保证与先前版本的向后兼容性。 值范围: 默认为当前发行版。 默认值: 由发行版确定 archive_lag_target: 说明: 此参数与基于时间的线程高级功能相关联。 值范围: 0 或 [60, 7200] 的任意整数。 默认值: 0 为默认值, 此时将禁用基于时间的线程高级功能。否则, 值将代表秒数 aq_tm_processes: 说明: 如果大于零, 就会启用对队列消息的时间监视。该时间值可用于指定消息的延迟和失效属性 (用于应用程序的开发)。 值范围: 0 - 10 默认值: 0 tracefile_identifier: spfile: 说明: 指定当前使用的服务器参数文件的名称。 值范围: 静态参数 默认值: SPFILE 参数可在客户端 PFILE 定义, 以指明要使用的服务器参数文件的名称。服务器使用默认服务器参数文件时, SPFILE 的值要由服务器在内部设置。 Logmnr_max_persistent_sessions: Standby_file_management: Trace_enabled: Ifile: 说明: 用于在当前参数文件嵌入其他参数文件。您可以在一个参数文件的多个行上多次使用该参数, 但最多只能有三级嵌套。 值范围: 任何有效的参数文件名 (语法是 IFILE = parameter_file_name)。 默认值: NULL remote_listener: global_context_pool_size: 说明: 从 SGA 分配的用于存储和管理全局应用程序环境的内存量。 值范围: 任意整数值。 默认值: 1 M plsql_native_library_subdir_count: fixed_date: 说明: SYSDATE 返回的数据。对于必须始终返回固定日期而非系统日期的测试, 该值很有用。使用双引号或不使用引号。请勿使用单引号。 值范围: YYYY-MM-DD-HH24:MI:SS (或默认的 Oracle 日期格式)。 默认值: NULL db_name: 说明: 一个数据库标识符, 应与 CREATE DATABASE 语句指定的名称相对应。 值范围: 任何有效名称最多可有 8 个字符。 默认值: 无 (但应指定) cluster_database: cluster_interconnects: cluster_database_instances: sql_version: replication_dependency_tracking: 说明: 跟踪相关性对复制服务器以并行方式传播所作的更改至关重要。如果设置为 FALSE, 数据库上的读/写操作将运行得更快, 但无法为复制服务器产生并行传播的相关性信息。 值范围: TRUE | FALSE 默认值: TRUE (即启用读/写相关性跟踪) remote_os_roles: 说明: 将 REMOTE_OS_ROLES 设置为 TRUE, 允许由远程客户机的操作系统来分配角色。如果设置为 FALSE, 则由远程客户机的数据库来识别和管理角色。 值范围: TRUE | FALSE 默认值: FALSE remote_os_authent: 说明: 将 REMOTE_OS_AUTHENT 设置为 TRUE, 允许使用 OS_AUTHENT_PREFIX 的值来验证远程客户机。 值范围: TRUE | FALSE 默认值: FALSE open_links: 说明: 指定在一次会话同时打开的与远程数据库的连接的最大数量。该值应等于或超过一个引用多个数据库的单个 SQL 语句引用的数据库的数量, 这样才能打开所有数据库以便执行该语句。 值范围: 0 - 255 (如果为 0, 不允许分布式事务处理)。 默认值: 4 open_links_per_instance: 说明: 指定 XA 应用程序可移植的打开连接的最大数量。XA 事务处理使用可移植的打开的连接, 以便在提交一个事务处理后能将这些连接高速缓存。如果创建连接的用户就是拥有事务处理的用户, 各事务处理则可共享连接。 值范围: 0 - UB4MAXVAL 默认值: 4 remote_login_passwordfile: 说明: 指定操作系统或一个文件是否检查具有权限的用户的口令。如果设置为 NONE, Oracle 将忽略口令文件。如果设置为 EXCLUSIVE, 将使用数据库的口令文件对每个具有权限的用户进行验证。如果设置为 SHARED, 多个数据库将共享 SYS 和 INTERNAL 口令文件用户。 值范围:NONE | SHARED | EXCLUSIVE 默认值: NONE hs_autoregister: 说明: 启用或禁用“异构服务 (HS)”代理的自动自注册。如果启用, 信息将被上载到数据字典, 以便在通过同一代理建立后续连接时降低开销。 值范围: TRUE | FALSE 默认值: TRUE global_names: 说明: 指定是否要求数据库链接与所连接的数据库同名。如果该值为 FALSE, 则不执行检查。要使分布式处理的命名约定一致, 请将该参数设置为 TRUE。 值范围: TRUE | FALSE 默认值: TRUE distributed_transactions: 说明: 一个数据库一次可参与的分布式事务处理的最大数量。如果由于网络故障异常频繁而减少该值, 将造成大量未决事务处理。 值范围: 0 - TRANSACTIONS 参数值。 默认值: 根据操作系统而定 commit_point_strength: 说明: 一个用于确定分布式事务处理提交点的位置的值。 值范围: 0 -255 默认值: 根据操作系统而定 db_domain: 说明: 指定数据库名的扩展名 (例如:US.ORACLE.COM) 为使一个域创建的数据库名唯一, 建议指定该值。 值范围: 由句点分隔的任何字符串, 最长可以有 128 个字符。 默认值: WORLD dblink_encrypt_login: 说明: 在连接到其他 Oracle Server 时, 数据库链接是否使用加密口令。 值范围: TRUE | FALSE 默认值: FALSE backup_tape_io_slaves: 说明: 一个恢复管理器参数, 用于确定读取或写入磁带是否要使用服务器进程或一个附加的 I/O 从属。 值范围: TRUE | FALSE 默认值: FALSE tape_asynch_io: 说明: 用于控制对顺序设备的 I/O 操作 (例如, 将 Oracle 数据备份或复原到磁带上, 或从磁带上备份或复原 Oracle 数据) 是否异步。只有在您的平台支持对顺序设备的异步 I/O 操作的情况下, 将该值设置为 TRUE 才有效; 如果异步 I/O 的执行情况不稳定, 请将该值设置为 FALSE。 值范围: TRUE | FALSE 默认值: FALSE log_file_name_convert: 说明: 将主数据库上的一个日志文件的文件名转换为备用数据库上对等的路径和文件名。将一个日志文件添加到一个主数据库后, 必须将一个相应的文件添加到备用数据库。该参数替代 Oracle7 的 LOG_FILE_NAME_CONVERT 参数。 值范围: 任何格式为 ''主体日志文件的路径/文件名'' 和 ''备用日志文件的路径/文件名'' 的有效路径/文件名 默认值: NULL fal_server: 说明: 指定此备用数据库的 FAL 服务器。该值是一个 Oracle Net 服务名。此 Oracle Net 服务名被假定为已在备用数据库系统上正确配置, 可指向期望的 FAL 服务器。 值范围: Oracle Net 服务名的字符串值。 Fal_client: 说明: 指定供 FAL 服务 (通过 FAL_SERVER 参数配置) 来引用 FAL 客户机的 FAL 客户机名称。该参数的值是一个 Oracle Net 服务名。此 Oracle Net 服务名被假定为已在 FAL 服务器系统上正确配置, 可指向 FAL 客户机 (即: 此备用数据库)。 值范围: Oracle Net 服务名的字符串值。 Drs_start: 说明: 使 Oracle 可以确定是否应启动 DRMON 进程。DRMON 是一种不会导致致命错误的 Oracle 后台进程, 只要例程存在, 该进程就存在。 值范围: TRUE | FALSE。 默认值: FALSE remote_archive_enable: 说明: 控制是否可向远程目标执行重做日志文件归档操作。必须将该参数值设置为 "TRUE", 以便 Oracle 数据库例程对重做日志文件进行远程归档, 并且/或者接收远程归档的重做日志文件。 值范围: FALSE | TRUE 默认值: TRUE standby_preserves_names: 说明: 表明备用数据库上的文件名是否与主数据库上的文件名相同。 值范围: TRUE 或 FALSE。注: 如果将值设置为 True, 且备用数据库与主数据库位于同一系统上, 则主数据库文件可能被覆盖。 默认值: FALSE。 Standby_archive_dest: 说明: 指定来自一个主例程的归档日志的到达位置。STANDBY_ARCHIVE_DEST 和 LOG_ARCHIVE_FORMAT 用于在备用位置上虚拟完全合格的归档日志文件名。备用数据库上的 RFS 服务器将使用该值, 而不是 ARCHIVE_LOG_DEST。 值范围: NULL 字符串或非 RAW 类型的有效路径/设备名。 默认值: NULL db_file_name_convert: 说明: 将主数据库上的一个新数据文件的文件名转换为备用数据库上的文件名。 值范围: 一个有效的主/备用目录和文件名对。 默认值: 无 max_enable_roles: 说明: 指定一个用户可以启用的数据库角色 (包括子角色) 的最大数量。用户可启用的角色的实际数量是 2 加上 MAX_ENABLED_ROLES 的值, 因为每个用户都有两个附加的角色: PUBLIC 和用户自己的角色。 值范围: 0 -148 默认值: 20 O7_DICTIONARY_ACCESSIBILITY: 说明: 主要用于从 Oracle7 移植到 Oracle8i。如果该值为 TRUE, SYSTEM 权限 (如 SELECT ANY TABLE) 将不限制对 SYS 方案各对象的访问 (Oracle7 行为)。如果该值为 FALSE, 只有被授予了 SELECT_CATALOG_ROLE, EXECUTE_CATALOG_ROLE 或 DELETE_CATALOG_ROLE 权限的用户才能访问 SYS 方案的各对象。 值范围: TRUE | FALSE 默认值: TRUE sql92_security: 说明: 指定要执行一个更新或删除引用表列的值是否需要具有表级的 SELECT 权限。 值范围: TRUE | FALSE 默认值: FALSE audit_trail: 说明: 启用或禁用数据库审计。如果该参数为 TRUE 或 DB, 审计记录将被写入 SYS.AUD$ 表; 如果参数为 OS, 则写入一个操作系统文件。 值范围: NONE | FALSE | DB | TRUE | OS 默认值: NONE rdbms_server_dn: 说明: RDBMS 服务器的唯一判别名。它用于在一个企业目录服务检索企业角色。有关详细信息, 请参阅“Oracle Advanced Security Administrator's Guide”。 值范围: 所有 X.500 唯一判别名格式值。 默认值: 无 os_roles: 说明: 确定操作系统或数据库是否为每个用户标识角色。如果设置为 TRUE, 将由操作系统完全管理对所有数据库用户的角色授予。否则, 角色将由数据库标识和管理。 值范围: TRUE | FALSE 默认值: FALSE os_authent_prefix: 说明: 使用用户的操作系统帐户名和口令来验证连接到服务器的用户。该参数的值与各用户的操作系统帐户连接在一起。要去除 OS 帐户前缀, 请指定空值。 值范围: 任何标识符。 默认值: 根据操作系统而定 (通常是 'OPS$') object_cache_max_size_percent: 说明: 指定会话对象的高速缓存增长可超过最佳高速缓存大小的百分比, 最大大小等于最佳大小加上该百分比与最佳大小的乘积。如果高速缓存大小超过了这个最大大小, 系统就会尝试将高速缓存缩小到最佳大小。 值范围: 0% 到根据操作系统而定的最大值。 默认值: 10% object_cache_optimal_size: 说明: 指定在高速缓存超过最大大小的情况下, 会话对象高速缓存将被缩小到的大小。 值范围: 10K 到根据操作系统而定的最大值。 默认值: 100K session_max_open_files: 说明: 指定可在任一给定会话打开的 BFILE 的最大数量。一旦达到这个数量, 此后将无法在该会话打开更多文件。该参数还取决于操作系统参数 MAX_OPEN_FILES。 值范围: 1 - 至少为 (50, OS 级上的 MAX_OPEN_FILES)。 默认值: 10 parallel_execution_message_size: 说明: 指定并行执行 (并行查询, PDML, 并行恢复和复制) 消息的大小。如果值大于 2048 或 4096, 就需要更大的共享池。如果 PARALLEL_AUTOMATIC_TUNING = TRUE, 将在大存储池之外指定消息缓冲区。 值范围: 2148 - 无穷大。 默认值: 如果 PARALLEL_AUTOMATIC_TUNING 为 FALSE, 通常值为 2148; 如果 PARALLEL_AUTOMATIC_TUNING 为 TRUE , 则值为 4096 (根据操作系统而定)。 Paralle_min_percent: 说明: 指定并行执行要求的线程的最小百分比。设置该参数, 可以确保并行执行在没有可用的恰当查询从属进程时, 会显示一个错误消息, 并且该查询会因此而不予执行。 值范围: 0 -100 默认值: 0, 表示不使用该参数。 Parallel_automatic_tuning: 说明: 如果设置为 TRUE, Oracle 将为控制并行执行的参数确定默认值。除了设置该参数外, 你还必须为系统的表设置并行性。 值范围: TRUE | FALSE 默认值: FALSE parallel_threads_per_cpu: 说明: 说明一个 CPU 在并行执行过程可处理的进程或线程的数量, 并优化并行自适应算法和负载均衡算法。如果计算机在执行一个典型查询时有超负荷的迹象, 应减小该数值。 值范围: 任何非零值。 默认值: 根据操作系统而定 (通常为 2) parallel_broadcast_enabled: 说明 : 通过使用一个散列联接或合并联接, 可以在将多个大结果集联接到一个小结果集 (以字节而不是行为单位来衡量大小) 时改善性能。如果该值设置为 TRUE, 优化程序可以将小结果集内的每个行都传播到大型集内的每个集群数据库处理行。 值范围: TRUE | FALSE 默认值 : FALSE parallel_adaptive_multi_user: 说明: 启用或禁用一个自适应算法, 旨在提高使用并行执行方式的多用户环境的性能。通过按系统负荷自动降低请求的并行度, 在启动查询时实现此功能。当 PARALLEL_AUTOMATIC_TUNING = TRUE 时, 其效果最佳。 值范围: TRUE | FALSE 默认值: 如果 PARALLEL_AUTOMATIC_TUNING = TRUE, 则该值为 TRUE; 否则为 FALSE parallel_max_servers: 说明: 指定一个例程的并行执行服务器或并行恢复进程的最大数量。如果需要, 例程启动时分配的查询服务器的数量将增加到该数量。 值范围: 0 -256 默认值: 由 CPU_COUNT, PARALLEL_AUTOMATIC_TUNING 和 PARALLEL_ADAPTIVE_MULTI_USER 确定 parallel_min_servers 说明: 指定为并行执行启动例程后, Oracle 创建的查询服务器进程的最小数量。 值范围: 0 - PARALLEL_MAX_SERVERS。 默认值: 0 log_archive_dest_state_3: 说明: 指定相应的归档日志目标参数 (仅 LOG_ARCHIVE_DEST_3) 的可用性状态。如果启用, 日志目标将被归档。如果延迟, 该目标将被排除在归档操作之外直至重新启用。 值范围: ENABLE | DEFER 默认值: ENABLE log_archive_dest_state_4: 说明: 指定相应的归档日志目标参数 (仅 LOG_ARCHIVE_DEST_4) 的可用性状态。如果启用, 日志目标将被归档。如果延迟, 该目标将被排除在归档操作之外直至重新启用。 值范围: ENABLE | DEFER 默认值: ENABLE log_archive_dest_state_5: 说明: 指定相应的归档日志目标参数 (仅 LOG_ARCHIVE_DEST_5) 的可用性状态。如果启用, 日志目标将被归档。如果延迟, 该目标将被排除在归档操作之外直至重新启用。 值范围: ENABLE | DEFER 默认值: ENABLE log_archive_dest_state_6: 说明: 标识特定日志归档目标的最近的用户定义状态。 值范围: ENABLE--如果目标属性有效, 则启用归档日志目标; DEFER--即使目标属性有效, 也要延迟处理归档日志目标; 或者是 ALTERNATE--延迟处理归档日志目标, 直到另一个目标的失败导致自动启用了此目标 (前提是备用目标的属性必须有效)。 log_archive_dest_state_7: 说明: 标识特定日志归档目标的最近的用户定义状态。 值范围: ENABLE--如果目标属性有效, 则启用归档日志目标; DEFER--即使目标属性有效, 也要延迟处理归档日志目标; 或者是 ALTERNATE--延迟处理归档日志目标, 直到另一个目标的失败导致自动启用了此目标 (前提是备用目标的属性必须有效)。 log_archive_dest_state_8: 说明: 标识特定日志归档目标的最近的用户定义状态。 值范围: ENABLE--如果目标属性有效, 则启用归档日志目标; DEFER--即使目标属性有效, 也要延迟处理归档日志目标; 或者是 ALTERNATE--延迟处理归档日志目标, 直到另一个目标的失败导致自动启用了此目标 (前提是备用目标的属性必须有效)。 log_archive_dest_state_9: 说明: 标识特定日志归档目标的最近的用户定义状态。 值范围: ENABLE--如果目标属性有效, 则启用归档日志目标; DEFER--即使目标属性有效, 也要延迟处理归档日志目标; 或者是 ALTERNATE--延迟处理归档日志目标, 直到另一个目标的失败导致自动启用了此目标 (前提是备用目标的属性必须有效)。 Log_archive_start: 说明: n只在数据库处于“归档日志”模式的情况下适用。它指定重做日志是自动还是手动复制。建议值是 TRUE, 即执行自动归档; 否则就需要手动干预, 使用 ALTER SYSTEM ARCHIVE LOG ... 命令来阻止例程挂起。 值范围: TRUE | FALSE 默认值: FALSE log_archive_duplex_dest: 说明: 指定 LOG_ARCHIVE_DEST 外的另一个归档目标。在 Oracle8i 企业版, 该参数被 LOG_ARCHIVE_DEST_n 代替。 值范围: 一个 NULL 字符串, 或者任何有效的路径或设备名, 原始分区除外。 默认值: NULL log_archive_format: 说明: LOG_ARCHIVE_FORMAT 只在数据库处于“归档日志”模式的情况下有用。文本字符串与变量 %s (日志序列号) 和 %t (线程号) 结合使用, 用于指定各归档重做日志文件的唯一文件名。该字符串被附加到 LOG_ARCHIVE_DEST 参数。 值范围: 任何有效的文件名。 默认值: 根据操作系统而定 log_archive_max_processes: 说明: 指定要求的 ARCH 进程的数量。如果 LOG_ARCHIVE_START = TRUE, 该值可以在例程启动时被评估; 也可以在通过 SQL*Plus 或 SQL 语法调用 ARCH 进程时评估。 值范围: 1 - 10 (包括端点) 的任何整数。 默认值: 1 log_archive_dest_2: 说明: 五个本地 (指定 LOCATION) 或远程 (指定 SERVICE) 目标位置的第二个, 归档重做日志文件可以在这些目标位置上被复制。该参数只在企业版 oracle8i 数据库或更高版本的数据库有效。 值范围: 语法为 (null_string | SERVICE=tnsnames-service | LOCATION=directory-spec)[MANDATORY | OPTIONAL][REOPEN=integer] 默认值: NULL log_archive_min_succeed_dest: 说明: 定义在可以覆盖日志文件前必须将其复制到的目标的最小数量。该值应大于或等于 LOG_ARCHIVE_DEST_n MANDATORY 目标的数量。 值范围: 1 - 5 (如果与 LOG_ARCHIVE_DEST 和 LOG_ARCHIVE_DUPLEX_DEST 共同使用, 则限制在 1-2)。 默认值: 1 log_archive_trace: 说明: 控制归档日志进程生成的输出。此进程可以通过下列方式启动 ARCn 后台进程 (在输出日志指定为 ARCn) 明确的会话调用的前台进程 (在输出日志指定为 ARCH) 或 “受管备用数据库”的远程文件服务器 (RFS) 进程。 值范围: 0: 禁用归档日志跟踪 (这是默认设置) 1: 重做日志文件的追踪归档 2: 每个归档日志目标的追踪归档状态 4: 追踪归档操作阶段 8: 追踪归档日志目标活动 16: 追踪详细的归档日志目标活动 32: 追踪归档日志目标参数修改 64: 追踪 ARCn 进程状态活动 默认值: 0 log_archive_dest_10: log_archive_dest_3: 说明: 五个本地 (指定 LOCATION) 或远程 (指定 SERVICE) 目标位置的第三个, 归档重做日志文件可以在这些目标位置上被复制。该参数只在企业版 oracle8i 数据库或更高版本的数据库有效。 值范围: 语法为 (null_string | SERVICE=tnsnames-service | LOCATION=directory-spec)[MANDATORY | OPTIONAL][REOPEN=integer] 默认值: NULL log_archive_dest: 说明: 五个本地 (指定 LOCATION) 或远程 (指定 SERVICE) 目标位置的第三个, 归档重做日志文件可以在这些目标位置上被复制。该参数只在企业版 oracle8i 数据库或更高版本的数据库有效。 值范围: 语法为 (null_string | SERVICE=tnsnames-service | LOCATION=directory-spec)[MANDATORY | OPTIONAL][REOPEN=integer] 默认值: NULL log_archive_dest_state_2: 说明: 指定相应的归档日志目标参数 (仅 LOG_ARCHIVE_DEST_2) 的可用性状态。如果启用, 日志目标将被归档。如果延迟, 该目标将被排除在归档操作之外直至重新启用。 值范围: ENABLE | DEFER 默认值: ENABLE log_archive_dest_5: 说明: 五个本地 (指定 LOCATION) 或远程 (指定 SERVICE) 目标位置的第五个, 归档重做日志文件可以在这些目标位置上被复制。该参数只在企业版 oracle8i 数据库或更高版本的数据库有效。 值范围: 语法为 (null_string | SERVICE=tnsnames-service | LOCATION=directory-spec)[MANDATORY | OPTIONAL][REOPEN=integer] 默认值: NULL log_archive_dest_6: log_archive_dest_1: log_archive_dest_8: log_archive_dest_9: log_archive_dest_state_1: 说明: 指定相应的归档日志目标参数 (仅 LOG_ARCHIVE_DEST_1) 的可用性状态。如果启用, 日志目标将被归档。如果延迟, 该目标将被排除在归档操作之外直至重新启用。 值范围: ENABLE | DEFER 默认值: ENABLE log_archive_dest_state_10 说明: 指定归档日志的目标。 值范围: 本地文件系统位置 (磁盘位置) 或通过 Oracle Net 服务名 (tns 服务) 指定的远程归档位置。: log_archive_dest_4: 说明: 五个本地 (指定 LOCATION) 或远程 (指定 SERVICE) 目标位置的第四个, 归档重做日志文件可以在这些目标位置上被复制。该参数只在企业版 oracle8i 数据库或更高版本的数据库有效。 值范围: 语法为 (null_string | SERVICE=tnsnames-service | LOCATION=directory-spec)[MANDATORY | OPTIONAL][REOPEN=integer] 默认值: NULL create_bitmap_area_size: 说明: CREATE_BITMAP_AREA_SIZE 指定为创建位图索引而分配的内存量。 值范围: 根据操作系统而定。 默认值: 8 MB pga_aggregate_target: 说明: 指定连接到例程的所有服务器进程的目标 PGA 总内存。请在启用自动设置工作区之前将此参数设置为一个正数。这部分内存不驻留在 SGA 。数据库将此参数值用作它所使用的目标 PGA 内存量。设置此参数时, 要将 SGA 从可用于 Oracle 例程的系统内存总量减去。然后可将剩余内存量分配给 pga_aggregate_target。 值范围: 整数加字母 K, M 或 G, 以将此限值指定为千字节, 兆字节或千兆字节。最小值为 10M, 最大值为 4000G 默认值: "未指定", 表示完全禁用对工作区的自动优化。 Sort_area_size: 说明: SORT_AREA_SIZE 以字节为单位, 指定排序所使用的最大内存量。排序完成后, 各行将返回, 并且内存将释放。增大该值可以提高大型排序的效率。如果超过了该内存量, 将使用临时磁盘段。 值范围: 相当于 6 个数据库块的值 (最小值) 到操作系统确定的值 (最大值)。 默认值: 根据操作系统而定 sort_area_retained_size 说明: 以字节为单位, 指定在一个排序运行完毕后保留的用户全局区 (UGA) 内存量的最大值。最后一行从排序空间被提取后, 该内存将被释放回 UGA, 而不是释放给操作系统。 值范围: 从相当于两个数据库块的值到 SORT_AREA_SIZE 的值。 默认值: SORT_AREA_SIZE 的值 bitmap_merge_area_size: 说明: 指定合并从对索引的某一范围进行扫描而检索得到的位图要使用的内存量。 值范围: 根据系统而定。 默认值: 1MB workarea_size_policy: 说明: 指定调整工作区大小的策略。此参数控制优化工作区时所处的模式。 值范围: AUTO, MANUAL。 默认值: 如果设置了 PGA_AGGREGATE_TARGET, 则为 AUTO; 否则为 MANUAL。 Hash_area_size: 说明: 与并行执行操作和 DML 或 DDL 语句相关。它以字节为单位, 指定要用于散列联接的最大内存量。有关详细信息, 请参阅手册 Oracle8i Concepts。 值范围: 0 到根据操作系统而定的值。 默认值: 派生:2 * SORT_AREA_SIZE 参数值 db_create_online_log_dest_4: 说明: 设置所创建的联机日志和控制文件的默认位置。如果在创建联机日志或控制文件时未指定文件名, 则使用默认文件名。 值范围: 文件系统目录名。该目录必须已存在。该目录必须具有可让 Oracle 在其创建文件的许可。 db_create_online_log_dest_3: 说明: 设置所创建的联机日志和控制文件的默认位置。如果在创建联机日志或控制文件时未指定文件名, 则使用默认文件名。 值范围: 文件系统目录名。该目录必须已存在。该目录必须具有可让 Oracle 在其创建文件的许可。 Db_files: 说明: 可为该数据库打开的数据文件的最大数量。 值范围: MAXDATAFILES - 根据操作系统而定。 默认值: 根据操作系统而定 (在 Solaris 系统上为 200) db_create_online_log_dest_2: 说明: 设置所创建的联机日志和控制文件的默认位置。如果在创建联机日志或控制文件时未指定文件名, 则使用默认文件名。 值范围: 文件系统目录名。该目录必须已存在。该目录必须具有可让 Oracle 在其创建文件的许可。 db_create_online_log_dest_1: 说明: 设置所创建的联机日志和控制文件的默认位置。如果在创建联机日志或控制文件时未指定文件名, 则使用默认文件名。 值范围: 文件系统目录名。该目录必须已存在。该目录必须具有可让 Oracle 在其创建文件的许可。 Db_create_file_dest: 说明: 设置所创建的数据文件, 控制文件和联机日志的默认位置。 值范围: 文件系统目录名。该目录必须已存在。该目录必须具有可让 Oracle 在其创建文件的许可。 Control_files: 说明: 指定一个或多个控制文件名。Oracle 建议对于不同设备或 OS 文件镜象使用多个文件。 值范围: 1 - 8 文件名 (带路径名)。 默认值: 根据操作系统而定 db_create_online_log_dest_5: 说明: 设置所创建的联机日志和控制文件的默认位置。如果在创建联机日志或控制文件时未指定文件名, 则使用默认文件名。 值范围: 文件系统目录名。该目录必须已存在。该目录必须具有可让 Oracle 在其创建文件的许可。 Large_pool_size: 说明 : 指定大型池的分配堆的大小, 它可被共享服务器用作会话内存, 用作并行执行的消息缓冲区以及用作 RMAN 备份和恢复的磁盘 I/O 缓冲区。 值范围: 600K (最小值); >= 20000M (最大值是根据操作系统而定的)。 默认值 : 0, 除非配置了并行执行或 DBWR_IO_SLAVES shared_pool_size: 说明: 以字节为单位, 指定共享池的大小。共享池包含如: 共享游标, 存储的过程, 控制结构和并行执行消息缓冲区等对象。较大的值能改善多用户系统的性能。 值范围:300 KB - 根据操作系统而定。 默认值: 如果是 64 位操作系统, 值为 64MB; 其他情况下, 值为 16MB。 Java_pool_size: 说明: 以字节为单位, 指定 Java 存储池的大小, 它用于存储 Java 的方法和类定义在共享内存的表示法, 以及在调用结束时移植到 Java 会话空间的 Java 对象。有关详细信息, 请参阅 Oracle8i Java Developer's Guide。 值范围: 根据操作系统而定。 默认值: 根据操作系统而定 shared_pool_reserved_size: 说明: 指定要为较大连续共享池内存请求而保留的空间, 以避免由碎片引起的性能下降。该池的大小应符合这样的条件:能存储为防止对象从共享池刷新而普遍要求的所有大型过程和程序包。 值范围: SHARED_POOL_RESERVED_MIN_ALLOC 到 SHARED_POOL_SIZE 的一半 (字节)。 默认值: SHARED_POOL_SIZE 值的 5% cursor_sharing: 说明: 控制可以终止共享相同的共享游标的 SQL 语句类型。 值范围: 强制: 强制表达方式不同但语句意思相同的语句共享一个游标。 EXACT: 只令完全相同的 SQL 语句共享一个游标。 默认值: EXACT open_cursors: 说明: 指定一个会话一次可以打开的游标 (环境区域) 的最大数量, 并且限制 PL/SQL 使用的 PL/SQL 游标高速缓存的大小, 以避免用户再次执行语句时重新进行语法分析。请将该值设置得足够高, 这样才能防止应用程序耗尽打开的游标。 值范围: 1 - 操作系统限制值。 默认值: 64 serial_reuse: 说明: 指定何种类型的 SQL 游标应利用串行可重用内存功能。如果 CURSOR_SPACE_FOR_TIME = TRUE, 那么 SERIAL_REUSE 值将被忽略, 当作被设置为 DISABLE 或 NULL 的情况处理。 值范围: DISABLE | SELECT | DML | PLSQL | ALL | NULL 默认值: NULL session_cached_cursors: 说明: 指定要高速缓存的会话游标的数量。对同一 SQL 语句进行多次语法分析后, 它的会话游标将被移到该会话的游标高速缓存。这样可以缩短语法分析的时间, 因为游标被高速缓存, 无需被重新打开。 值范围: 0 到根据操作系统而定的值。 默认值: 0 cursor_space_for_time: 说明: 在一个游标引用共享 SQL 区时, 确定将 SQL 区保留在共享池还是从按过期作废处理。 值范围: TRUE | FALSE 默认值: FALSE (过期作废) rollback_segments: 说明: 指定要在例程启动过程获取的一个或多个回退段, 即使其数量超过了 TRANSACTIONS / TRANSACTIONS_PER_ROLLBACK_SEGMENT 的值。公式为 ROLLBACK_SEGMENTS = (rbseg_name [, rbseg_name] ...) 值范围:除 SYSTEM 外, DBA_ROLLBACK_SEGS 列出的任何回退段。 默认值: NULL (默认情况下使用公用回退段) undo_suppress_errors: 说明: 允许用户在 SMU 模式下尝试执行 RBU 操作 (如 ALTER ROLLBACK SEGMENT ONLINE) 时忽略错误。这样能让用户在将所有应用程序和脚本转换到 SMU 模式之前即可使用 SMU 功能。 值范围: True 或 False 默认值: False。 Max_rollback_segments: 说明: 指定 SGA 高速缓存的回退段的最大大小。该数值指定一个例程可同时保持联机状态 (即状态为 INUSE) 的回退段的最大数量。 值范围: 2 -65535 默认值: 最大值 (30, TRANSACTIONS/TRANSACTIONS_PER_ROLLBACK_SEGMENT) undo_retention: 说明: UNDO_RETENTION 参数用来指定要在数据库保留的已提交的撤消信息总量。可在例程启动时设置该参数值。可以计算满足撤消保留要求所需的撤消空间量: UndoSpace = RD * UPS, 其 UndoSpace 以撤消块数来表示, RD 用以秒为单位的 UNDO_RETENTION 来表示, UPS 以每秒撤消块数来表示。 值范围: 所允许的最大值为 (2 ** 32) 秒。 默认值: 30 秒。 Transactions_per_rollback_segment: 说明: 指定每个回退段允许的并行事务处理的数量。启动时获取的回退段的最小数量为 TRANSACTIONS 除以该参数值的结果。如果在参数 ROLLBACK_SEGMENTS 命名了其他回退段, 就可以获取这些回退段。 值范围: 1 - 根据操作系统而定。 默认值: 5 undo_management: 说明: 指定系统应使用哪种撤消空间管理模式。如果设置为 AUTO, 例程将以 SMU 模式启动。否则将以 RBU 模式启动。在 RBU 模式下, 撤消空间会象回退段一样在外部分配。在 SMU 模式下, 撤消空间会象撤消表空间一样在外部分配。 值范围: AUTO 或 MANUAL 默认值: 如果启动第一个例程时忽略了 UNDO_MANAGEMENT 参数, 则将使用默认值 MANUAL, 并且例程将以 RBU 模式启动。如果这不是第一个例程, 则将按其他现有例程启动时使用的撤消模式来启动该例程。 Undo_tablespace: 说明: 撤消表空间仅用于存储撤消信息。UNDO_TABLESPACE 仅允许在系统管理撤消 (SMU) 模式下使用。例程将使用指定的撤消表空间, 。如果该表空间不存在, 或不是撤消表空间, 或正在由另一例程使用, 则例程 STARTUP 将失败。 默认值: 每个数据库都包含 0 个或更多的撤消表空间。在 SMU 模式下, 将为每个 ORACLE 例程分配一个 (且仅限一个) 撤消表空间。 Instance_name 说明: 在多个例程使用相同服务名的情况下, 用来唯一地标识一个数据库例程。INSTANCE_NAME 不应与 SID 混淆, 它实际上是对在一台主机上共享内存的各个例程的唯一标识。 值范围: 任何字母数字字符。 默认值: 数据库 SID service_names: 说明 : 为 Oracle Net 监听程序用来识别一个服务 (如: 复制环境的一个特定数据库) 的例程指定服务名。如果该服务没有域, 将附加 DB_DOMAIN 参数。 语法 : SERVICE_NAMES = name1.domain, name2.domain 默认值 : DB_NAME.DB_DOMAIN (如果已定义) local_listener: 说明 : 一个 Oracle Net 地址列表, 用于标识 Oracle Net 监听程序所在的同一台计算机上的数据库例程。所有例程和调度程序都在该监听程序上注册, 以便启用客户机连接。该参数覆盖在 8.1 版本废弃的 MTS_LISTENER_ADDRESS 和 MTS_MULTIPLE_LISTENERS 参数。 值范围: 一个有效的 Oracle Net 地址列表。 默认值: (ADDRESS_LIST=(Address=(Protocol=TCP)(Host=localhost)(Port=1521)) (Address=(Protocol=IPC)(Key=DBname))) license_sessions_warning: 说明: 指定对并行用户会话数量的警告限制。达到该限制后, 其他用户仍然可以连接, 但一条消息将被写入 ALERT 文件。具有 RESTRICTED SESSION 权限的用户将收到一条警告消息, 表明系统已接近最大容量。 值范围: 0 - LICENSE_MAX_SESSIONS 默认值: 0 license_max_sessions: 说明: 指定允许同时进行的并行用户会话的最大数量。达到该限制后, 只有具有 RESTRICTED SESSION 权限的用户才能连接到服务器。所有其他用户都会收到一条警告消息, 表明已达到系统最大容量的限制。 值范围: 0 - 会话许可的数量。 默认值: 0 license_max_users: 说明: 指定您可在该数据库创建的用户的最大数量。并行会话使用许可和用户使用许可不应被同时启用。LICENSE_MAX_SESSIONS 或 LICENSE_MAX_USERS 或这两者的值应为零。 值范围: 0 - 用户许可的数量。 默认值: 0 db_block_checksum: 说明: DBWn, ARCH 和 SQL*loader 是否为每一个数据块读或写计算或校验块的校验和。 值范围: TRUE | FALSE 默认值: FALSE shadow_core_dump: 说明: 一个针对 UNIX 的参数, 用于指定是否将 SGA 信息转储到一个生成的核心文件。如果设置为 FULL, SGA 将被包括在核心转储。如果设置为 PARTIAL, SGA 将不被转储。 值范围: FULL | PARTIAL 默认值: FULL db_block_checking: 说明: 用于控制是否检查事务处理管理的块有无损坏。 值范围: TRUE | FALSE 默认值: FALSE background_core_dump: 说明: 是否将 SGA 信息转储到一个生成的核心文件 (用于 UNIX)。 值范围: FULL | PARTIAL 默认值: FULL event: 说明: 由 Oracle 技术支持人员使用, 以调试系统。一般情况下, 不应变更该值。 值范围:不可用。 默认值: 无 user_dump_dest: 说明: 为服务器将以一个用户进程身份在其写入调试跟踪文件的目录指定路径名。例如, 该目录可这样设置: NT 操作系统上的 C:/ ORACLE/UTRC; UNIX 操作系统上的 /oracle/utrc; 或 VMS 操作系统上的 DISK$UR3:[ORACLE.UTRC]。 值范围: 一个有效的本地路径名, 目录或磁盘。 默认值: 根据操作系统而定 timed_statistics: 说明: 收集操作系统的计时信息, 这些信息可被用来优化数据库和 SQL 语句。要防止因从操作系统请求时间而引起的开销, 请将该值设置为零。将该值设置为 TRUE 对于查看长时间操作的进度也很有用。 值范围: TRUE | FALSE 默认值: FALSE timed_os_statistics: 说明 : 由系统管理员使用, 以收集操作系统统计信息。为了有效地使用资源, 请只在需要时才设置该值。对于专用服务器, 会在用户连接, 断开连接以及弹出调用 (如果超出了指定的时间限制) 的情况下收集操作系统统计信息。对于共享服务器, 将为推入或弹出的调用收集统计信息。 值范围: 以秒为单位的时间。 默认值 : 0 (操作系统统计信息不被刷新) core_dump_dest: 说明: 指定核心转储位置的目录名 (用于 UNIX)。 值范围: 任何有效的目录名。 默认值: ORACLE_HOME/dbs oracle_trace_collection_name: 说明: 指定 Oracle Trace 收集名, 并在输出文件名使用 (收集定义文件 .cdf 和数据收集文件 .dat)。如果该参数不为空, 且 ORACLE_TRACE_ENABLE = TRUE, 就会启动一个默认的 Oracle Trace 收集, 直到该值再次设置为 NULL。 值范围: 一个有效的收集名, 最长可为 16 个字符 (使用 8 个字符文件名的平台除外)。 默认值: NULL oracle_trace_collection_path: 说明: 指定 Oracle Trace 收集定义文件 (.cdf) 和数据收集文件 (.dat) 所在的目录路径名。 值范围: 完整的目录路径名。 默认值: 根据操作系统而定 (通常是 ORACLE_HOME/otrace/admin/cdf) background_dump_dest: 说明: 指定在 Oracle 操作过程为后台进程 (LGWR, DBW n 等等) 写入跟踪文件的路径名 (目录或磁盘)。它还定义记录着重要事件和消息的数据库预警文件的位置。 值范围: 任何有效的目录名。 默认值: ORACLE_HOME/rdbms/log (根据操作系统而定) oracle_trace_enable: 说明: 要为服务器启用 Oracle Trace 收集, 请将该值设置为 TRUE。如果设置为 TRUE, 该服务器就可以使用 Oracle Trace。要启动一个收集过程, 请为 ORACLE_TRACE_COLLECTION_NAME 指定一个非空值; 或者使用 Oracle Trace Manager 来启动一个收集。 值范围: TRUE | FALSE 默认值: FALSE oracle_trace_collection_size: 说明: 以字节为单位, 指定 Oracle Trace 收集文件的最大大小。一旦该收集文件的大小达到这个最大值, 收集就会被禁用。如果值范围指定为零, 就表示没有大小限制。 值范围: 0 -4294967295 默认值: 5242880 oracle_trace_facility_path: 说明: 指定 Oracle TRACE 工具的定义文件 (.fdf) 所在的目录路径名。 值范围: 完整的目录路径名。 默认值: ORACLE_HOME/otrace/admin/fdf/ (根据操作系统而定) sql_trace: 说明: 禁用或启用 SQL 跟踪设备。如果设置为 TRUE, 将收集优化信息, 这些信息对改善性能很有用。由于使用 SQL 跟踪设备将引发系统开销, 只应在需要优化信息的情况下使用 TRUE。 值范围: TRUE | FALSE 默认值: FALSE oracle_trace_facility_name: 说明: 指定 Oracle Trace 产品定义文件名 (.fdf 文件名)。该文件包含可为使用 Oracle Trace 数据收集 API 的产品收集的所有事件和数据项的定义信息。Oracle 建议使用默认的文件 ORCLED.FDF。 值范围: 一个有效的设备名, 最长可有 16 个字符。 默认值: oracled max_dump_file_size: 说明: 指定每个跟踪文件的最大大小。如果您担心跟踪文件会占用太多空间, 可更改该限制。如果转储文件可以达到操作系统允许的最大大小, 请将该值指定为“无限制”。 值范围: 0 - 无限制 (可以用 'K' 或 'M' 为单位) 默认值: 10000 块 resource_limit: 说明: 确定是否在数据库概要文件实行资源限制。如果设置为 FALSE, 将禁用资源限制。如果值为 TRUE, 即启用资源限制。 值范围: TRUE | FALSE 默认值: FALSE resource_manager_plan: 说明: 如果指定该值, 资源管理器将激活计划和例程的所有子项 (子计划, 指令和使用者组)。如果不指定, 资源管理器将被禁用, 但使用 ALTER SYSTEM 命令还可以启用。 值范围: 任何有效的字符串。 默认值: NULL sessions: 说明: 指定用户会话和系统会话的总量。默认数量大于 PROCESSES, 以允许递归会话。 值范围: 任何整数值。 默认值: 派生 (1.1 * PROCESSES + 5) java_soft_sessionspace_limit: 说明: 以字节为单位, 指定在 Java 会话使用的 Java 内存 的 '软限制'。如果用户的会话持续时间 Java 状态使用过多的内存, Oracle 将生成一个警告并向跟踪文件写入一则消息。 值范围: 0 - 4GB 默认值: 0 cpu_count: 说明: Oracle 可用的 CPU 的数目 (用于计算其他参数值)。请勿更改该值。 值范围: 0 - 无限制。 默认值: 由 Oracle 自动设置 java_max_sessionspace_size: 说明: 以字节为单位, 指定可供在服务器运行的 Java 程序所使用的最大内存量。它用于存储每次数据库调用的 Java 状态。如果用户的会话持续时间 Java 状态超过了该值, 则该会话会由于内存不足而终止。 值范围: 根据操作系统而定。 默认值: 0 processes: 说明: 指定可同时连接到一个 Oracle Server 上的操作系统用户进程的最大数量。该值应允许执行所有后台进程, 如: 作业队列 (SNP) 进程和并行执行 (Pnnn) 进程。 值范围: 6 到根据操作系统而定的一个值。 默认值: 由 PARALLEL_MAX_SERVERS 确定 control_file_record_keep_time: 说明: 控制文件可重新使用部分的记录必须保留的最短时间 (天数)。 值范围: 0 -365 默认值: 7 log_checkpoint_timeout: 说明: 指定距下一个检查点出现的最大时间间隔 (秒数)。将该时间值指定为 0, 将禁用以时间为基础的检查点。较低的值可以缩短例程恢复的时间, 但可能导致磁盘操作过量。 值范围: 0 - 无限制。 默认值: Oracle8i:900 秒。企业版: 1800 秒 recovery_parallelism: 说明: 指定参与例程或介质恢复的进程的数量。如果值为 0 或 1, 就表明恢复将由一个进程以串行方式执行。 值范围: 根据操作系统而定 (不能超过 PARALLEL_MAX_SERVERS)。 默认值: 根据操作系统而定 fast_start_mttr_target: 说明: 指定从单个数据库例程崩溃恢复所需的时间 (估计秒数)。FAST_START_MTTR_TARGET 将在内部被转换为一组参数, 用于修改数据库的操作, 从而将它的恢复时间控制在总 "恢复平均时间 (MTTR)" 的一定范围之内。只有具有 "快速启动故障恢复" 功能的版本才支持此参数。 值范围: [0, 3600]。它将计算数据缓冲区高速缓存条目数之上, 且大于最大日志的块数的限值。 默认值: 0 log_checkpoints_to_alert: 说明: 指定将检查点信息记录到预警文件。该参数对于确定检查点是否按所需频率出现很有用。 值范围: TRUE | FALSE 默认值: FALSE fast_start_io_target: 说明: 指定在系统崩溃或例程恢复期间需要的 I/O 数量。该值比 DB_BLOCK_MAX_DIRTY_TARGET 对恢复过程的控制更加精确。 值范围: 0 (禁用 I/O 恢复限制) 或 1000, 到高速缓存的所有缓冲区数。 默认值: 高速缓存的所有缓冲区数 log_checkpoint_interval: 说明: 指定在出现检查点之前, 必须写入重做日志文件的 OS 块 (而不是数据库块) 的数量。无论该值如何, 在切换日志时都会出现检查点。较低的值可以缩短例程恢复所需的时间, 但可能导致磁盘操作过量。 值范围: 无限制 (指定 0 即可禁用该参数)。 默认值: 根据操作系统而定 log_buffer: 说明: 以字节为单位, 指定在 LGWR 将重做日志条目写入重做日志文件之前, 用于缓存这些条目的内存量。重做条目保留对数据
Ø 常用查询 MySQL结束符是“;”结束。 1、 显示所有数据库 show databases; 2、 删除数据库 drop database dbName; 3、 创建数据库 create database [if not exists] dbName; 括号部分可选的,判断该数据不存在就创建 4、 切换、使用指定数据库 use dbName; 5、 显示当前使用数据库所有的表对象 show tables; 6、 显示表结构describe(desc) desc tableName; 7、 创建一张表 create table user ( --int 整型 uId int, --小数 uPrice decimal, --普通长度文本,default设置默认值 uName varchar(255) default ‘zhangsan’, --超长文本 uRemark text, --图片 uPhoto blob, --日期 uBirthday datetime ); 8、 子查询建表方法 部分列名匹配模式: create table userInfo ( name varchar(20), sex char ) as select name, sex from user; 上面的列名和子查询的列名以及类型要对应 全部列名模式: create table userInfo as select * from user; 直接将整个表的类型和数据备份到新表userInfo 9、 添加表字段 添加单列 alter table user add tel varchar(11) default ‘02012345678’; 添加多列 alter table user add ( photo blob, birthday date ); 上面就同时增加了多列字段 10、 修改表字段 修改tel列 alter table user modify tel varchar(15) default ‘02087654321’; 修改tel列的位置,在第一列显示 alter table user modify tel varchar(15) default '02087654321' first; 修改tel列的位置,在指定列之后显示 alter table user modify tel varchar(15) default '02087654321' after age; 注意:alter modify不支持一次修改多个列,但是Oracle支持多列修改 但是MySQL可以通过多个modify的方式完成: alter table user modify tel varchar(15) default '02087654321' first, modify name varchar(20) after tel; 11、 删除指定字段 alter table user drop photo; 12、 重命名表数据 表重命名 alter table user rename to users; 字段重命名 alter table users change name u_name varchar(10); alter table users change sex u_sex varchar(10) after u_name; 如果需要改变列名建议使用change,如果需要改变数据类型和显示位置可以使用modify 13、 删除表 drop table users; drop删除表会删除表结构,表对象将不存在数据;数据也不会存在;表内的对象也不存在,如:索引、视图、约束; truncate删除表 truncate都被当成DDL出来,truncate的作用就是删除该表里的全部数据,保留表结构。相当于DDL的delete语句, 但是truncate比delete语句的速度要快得多。但是truncate不能带条件删除指定数据,只会删除所有的数据。如果删除的表有外键, 删除的速度类似于delete。但新版本的MySQLtruncate的速度比delete速度快。 Ø 约束 MySQL约束保存在information_schema数据库的table_constraints,可以通过该表查询约束信息; 约束主要完成对数据的检验,保证数据库数据的完整性;如果有相互依赖数据,保证该数据不被删除。 常用五类约束: not null:非空约束,指定某列不为空 unique: 唯一约束,指定某列和几列组合的数据不能重复 primary key:主键约束,指定某列的数据不能重复、唯一 foreign key:外键,指定该列记录属于主表的一条记录,参照另一条数据 check:检查,指定一个表达式,用于检验指定数据 MySQL不支持check约束,但可以使用check约束,而没有任何效果; 根据约束数据列限制,约束可分为: 单列约束:每个约束只约束一列 多列约束:每个约束约束多列数据 MySQL约束保存在information_schema数据库的table_constraints,可以通过该表查询约束信息; 1、 not null约束 非空约束用于确保当前列的值不为空值,非空约束只能出现在表对象的列上。 Null类型特征: 所有的类型的值都可以是null,包括int、float等数据类型 空字符串“”是不等于null,0也不等于null create table temp( id int not null, name varchar(255) not null default ‘abc’, sex char null ) 上面的table加上了非空约束,也可以用alter来修改或增加非空约束 增加非空约束 alter table temp modify sex varchar(2) not null; 取消非空约束 alter table temp modify sex varchar(2) null; 取消非空约束,增加默认值 alter table temp modify sex varchar(2) default ‘abc’ null; 2、 unique 唯一约束是指定table的列或列组合不能重复,保证数据的唯一性。虽然唯一约束不允许出现重复的值,但是可以为多个null 同一个表可以有多个唯一约束,多个列组合的约束。在创建唯一约束的时候,如果不给唯一约束名称,就默认和列名相同。 唯一约束不仅可以在一个表内创建,而且可以同时多表创建组合唯一约束。 MySQL会给唯一约束的列上默认创建一个唯一索引; create table temp ( id int not null, name varchar(25), password varchar(16), --使用表级约束语法, constraint uk_name_pwd unique(name, password) ); 表示用户名和密码组合不能重复 添加唯一约束 alter table temp add unique(name, password); alter table temp modify name varchar(25) unique; 删除约束 alter table temp drop index name; 3、 primary key 主键约束相当于唯一约束+非空约束的组合,主键约束列不允许重复,也不允许出现空值;如果的多列组合的主键约束, 那么这些列都不允许为空值,并且组合的值不允许重复。 每个表最多只允许一个主键,建立主键约束可以在列级别创建,也可以在表级别上创建。MySQL的主键名总是PRIMARY, 当创建主键约束时,系统默认会在所在的列和列组合上建立对应的唯一索引。 列模式: create table temp( /*主键约束*/ id int primary key, name varchar(25) ); create table temp2( id int not null, name varchar(25), pwd varchar(15), constraint pk_temp_id primary key(id) ); 组合模式: create table temp2( id int not null, name varchar(25), pwd varchar(15), constraint pk_temp_id primary key(name, pwd) ); alter删除主键约束 alter table temp drop primary key; alter添加主键 alter table temp add primary key(name, pwd); alter修改列为主键 alter table temp modify id int primary key; 设置主键自增 create table temp( id int auto_increment primary key, name varchar(20), pwd varchar(16) ); auto_increment自增模式,设置自增后在插入数据的时候就不需要给该列插入值了。 4、 foreign key 约束 外键约束是保证一个或两个表之间的参照完整性,外键是构建于一个表的两个字段或是两个表的两个字段之间的参照关系。 也就是说从表的外键值必须在主表能找到或者为空。 当主表的记录被从表参照时,主表的记录将不允许删除,如果要删除数据,需要先删除从表依赖该记录的数据, 然后才可以删除主表的数据。还有一种就是级联删除子表数据。 注意:外键约束的参照列,在主表引用的只能是主键或唯一键约束的列,假定引用的主表列不是唯一的记录, 那么从表引用的数据就不确定记录的位置。同一个表可以有多个外键约束。 创建外键约束: 主表 create table classes( id int auto_increment primary key, name varchar(20) ); 从表 create table student( id int auto_increment, name varchar(22), constraint pk_id primary key(id), classes_id int references classes(id) ); 通常先建主表,然后再建从表,这样从表的参照引用的表才存在。 表级别创建外键约束: create table student( id int auto_increment primary key, name varchar(25), classes_id int, foreign key(classes_id) references classes(id) ); 上面的创建外键的方法没有指定约束名称,系统会默认给外键约束分配外键约束名称,命名为student_ibfk_n, 其student是表名,n是当前约束从1开始的整数。 指定约束名称: create table student( id int auto_increment primary key, name varchar(25), classes_id int, /*指定约束名称*/ constraint fk_classes_id foreign key(classes_id) references classes(id) ); 多列外键组合,必须用表级别约束语法: create table classes( id int, name varchar(20), number int, primary key(name, number) ); create table student( id int auto_increment primary key, name varchar(20), classes_name varchar(20), classes_number int, /*表级别联合外键*/ foreign key(classes_name, classes_number) references classes(name, number) ); 删除外键约束: alter table student drop foreign key student_ibfk_1; alter table student drop foreign key fk_student_id; 增加外键约束 alter table student add foreign key(classes_name, classes_number) referencesclasses(name, number); 自引用、自关联(递归表、树状表) create table tree( id int auto_increment primary key, name varchar(50), parent_id int, foreign key(parent_id) references tree(id) ); 级联删除:删除主表的数据时,关联的从表数据也删除,则需要在建立外键约束的后面增加on deletecascade 或on delete set null,前者是级联删除,后者是将从表的关联列的值设置为null。 create table student( id int auto_increment primary key, name varchar(20), classes_name varchar(20), classes_number int, /*表级别联合外键*/ foreign key(classes_name, classes_number) references classes(name, number) on deletecascade ); 5、 check约束 MySQL可以使用check约束,但check约束对数据验证没有任何作用。 create table temp( id int auto_increment, name varchar(20), age int, primary key(id), /*check约束*/ check(age > 20) ); 上面check约束要求age必须大于0,但没有任何作用。但是创建table的时候没有任何错误或警告。 Ø 索引 索引是存放在模式(schema)的一个数据库对象,索引的作用就是提高对表的检索查询速度, 索引是通过快速访问的方法来进行快速定位数据,从而减少了对磁盘的读写操作。 索引是数据库的一个对象,它不能独立存在,必须对某个表对象进行依赖。 提示:索引保存在information_schema数据库里的STATISTICS表。 创建索引方式: 自动:当表上定义主键约束、唯一、外键约束时,该表会被系统自动添加上索引。 手动:手动在相关表或列上增加索引,提高查询速度。 删除索引方式: 自动:当表对象被删除时,该表上的索引自动被删除 手动:手动删除指定表对象的相关列上的索引 索引类似于书籍的目录,可以快速定位到相关的数据,一个表可以有多个索引。 创建索引: create index idx_temp_name on temp(name); 组合索引: create index idx_temp_name$pwd on temp(name, pwd); 删除索引: drop index idx_temp_name on temp; Ø 视图 视图就是一个表或多个表的查询结果,它是一张虚拟的表,因为它并不能存储数据。 视图的作用、优点: 限制对数据的访问 让复杂查询变得简单 提供数据的独立性 可以完成对相同数据的不同显示 创建、修改视图 create or replace view view_temp as select name, age from temp; 通常我们并不对视图的数据做修改操作,因为视图是一张虚拟的表,它并不存储实际数据。如果想让视图不被修改,可以用with check option来完成限制。 create or replace view view_temp as select * from temp with check option; 修改视图: alter view view_temp as select id, name from temp; 删除视图: drop view view_temp; 显示创建语法: show create view v_temp; Ø DML语句 DML主要针对数据库表对象的数据而言的,一般DML完成: 插入新数据 修改已添加的数据 删除不需要的数据 1、 insert into 插入语句 insert into temp values(null, ‘jack’, 25); 主键自增可以不插入,所以用null代替 指定列 insert into temp(name, age) values(‘jack’, 22); 在表面后面带括号,括号写列名,values写指定列名的值即可。当省略列名就表示插入全部数据, 注意插入值的顺序和列的顺序需要保持一致。 Set方式插入,也可以指定列 insert into temp set id = 7, name = 'jason'; MySQL外键的table的外键引用列可以插入数据可以为null,不参照主表的数据。 使用子查询插入数据 insert into temp(name) select name from classes; 多行插入 insert into temp values(null, ‘jack’, 22), (null, ‘jackson’ 23); 2、 update 修改语句 update主要完成对数据的修改操作,可以修改一条或多条数据。修改多条或指定条件的数据,需要用where条件来完成。 修改所有数据 update temp set name = ‘jack2’; 所有的数据的name会被修改,如果修改多列用“,”分开 update temp set name = ‘jack’, age = 22; 修改指定条件的记录需要用where update temp set name = ‘jack’ where age > 22; 3、 delete 删除语句 删除table的数据,可以删除所有,带条件可以删除指定的记录。 删除所有数据 delete from temp; 删除指定条件数据 delete from temp where age > 20; Ø select 查询、function 函数 select查询语句用得最广泛、功能也最丰富。可以完成单条记录、多条记录、单表、多表、子查询等。 1、 查询某张表所有数据 select * from temp; *代表所有列,temp代表表名,不带条件就查询所有数据 2、 查询指定列和条件的数据 select name, age from temp where age = 22; 查询name和age这两列,age 等于22的数据。 3、 对查询的数据进行运算操作 select age + 2, age / 2, age – 2, age * 2 from temp where age – 2 > 22; 4、 concat函数,字符串连接 select concat(name, ‘-eco’) from temp; concat和null进行连接,会导致连接后的数据成为null 5、 as 对列重命名 select name as ‘名称’ from temp; as也可以省略不写,效果一样 如果重命名的列名出现特殊字符,如“‘”单引号,那就需要用双引号引在外面 select name as “名’称” from temp; 6、 也可以给table去别名 select t.name Name from temp as t; 7、 查询常量 类似于SQL Server select 5 + 2; select concat('a', 'bbb'); 8、 distinct 去掉重复数据 select distinct id from temp; 多列将是组合的重复数据 select distinct id, age from temp; 9、 where 条件查询 大于>、大于等于>=、小于<、小于等于<=、等于=、不等于<> 都可以出现在where语句 select * from t where a > 2 or a >= 3 or a < 5 or a <= 6 or a = 7 or a <> 0; 10、 and 并且 select * from temp where age > 20 and name = ‘jack’; 查询名称等于jack并且年龄大于20的 11、 or 或者 满足一个即可 select * from tmep where name = ‘jack’ or name = ‘jackson’; 12、 between v and v2 大于等于v且小于等于v2 select * form temp where age between 20 and 25; 13、 in 查询 可以多个条件 类似于or select * from temp where id in (1, 2, 3); 查询id在括号出现的数据 14、 like 模糊查询 查询name以j开头的 select * from temp where name like ‘j%’; 查询name包含k的 select * from temp where name like ‘%k%’; escape转义 select * from temp where name like ‘/_%’ escape ‘/’; 指定/为转义字符,上面的就可以查询name包含“_”的数据 15、 is null、is not null 查询为null的数据 select * from temp where name is null; 查询不为null的数据 select * from temp where name is not null; 16、 not select * from temp where not (age > 20); 取小于等于20的数据 select * from temp where id not in(1, 2); 17、 order by 排序,有desc、asc升序、降序 select * from temp order by id; 默认desc排序 select * from temp order by id asc; 多列组合 select * from temp order by id, age; Ø function 函数 函数的作用比较大,一般多用在select查询语句和where条件语句之后。按照函数返回的结果, 可以分为:多行函数和单行函数;所谓的单行函数就是将每条数据进行独立的计算,然后每条数据得到一条结果。 如:字符串函数;而多行函数,就是多条记录同时计算,得到最终只有一条结果记录。如:sum、avg等 多行函数也称为聚集函数、分组函数,主要用于完成一些统计功能。MySQL的单行函数有如下特征: 单行函数的参数可以是变量、常量或数据列。单行函数可以接受多个参数,但返回一个值。 单行函数就是它会对每一行单独起作用,每一行(可能包含多个参数)返回一个结果。 单行函数可以改变参数的数据类型。单行函数支持嵌套使用:内层函数的返回值是外层函数的参数。 单行函数可以分为: 类型转换函数; 位函数; 流程控制语句; 加密解密函数; 信息函数 单行函数 1、 char_length字符长度 select char_length(tel) from user; 2、 sin函数 select sin(age) from user; select sin(1.57); 3、 添加日期函数 select date_add('2010-06-21', interval 2 month); interval是一个关键字,2 month是2个月的意思,2是数值,month是单位 select addDate('2011-05-28', 2); 在前面的日期上加上后面的天数 4、 获取当前系统时间、日期 select curdate(); select curtime(); 5、 加密函数 select md5('zhangsan'); 6、 Null 处理函数 select ifnull(birthday, 'is null birthday') from user; 如果birthday为null,就返回后面的字符串 select nullif(age, 245) from user; 如果age等于245就返回null,不等就返回age select isnull(birthday) from user; 判断birthday是否为null select if(isnull(birthday), 'birthday is null', 'birthday not is null') from user; 如果birthday为null或是0就返回birthday is null,否则就返回birthday not is null;类似于三目运算符 7、 case 流程函数 case函数是一个流程控制函数,可以接受多个参数,但最终只会返回一个结果。 select name, age, (case sex when 1 then '男' when 0 then '女' else '火星人' end ) sex from user; 组函数 组函数就是多行函数,组函数是完成一行或多行结果集的运算,最后返回一个结果,而不是每条记录返回一个结果。 1、 avg平均值运算 select avg(age) from user; select avg(distinct age) from user; 2、 count 记录条数统计 select count(*), count(age), count(distinct age) from user; 3、 max 最大值 select max(age), max(distinct age) from user; 4、 min 最小值 select min(age), min(distinct age) from user; 5、 sum 求和、聚和 select sum(age), sum(distinct age) from user; select sum(ifnull(age, 0)) from user; 6、 group by 分组 select count(*), sex from user group by sex; select count(*) from user group by age; select * from user group by sex, age; 7、 having进行条件过滤 不能在where子句过滤组,where子句仅用于过滤行。过滤group by需要having 不能在where子句用组函数,having才能用组函数 select count(*) from user group by sex having sex <> 2; Ø 多表查询和子查询 数据库的查询功能最为丰富,很多时候需要用到查询完成一些事物,而且不是单纯的对一个表进行操作。而是对多个表进行联合查询, MySQL多表连接查询有两种规范,较早的SQL92规范支持,如下几种表连接查询: 等值连接 非等值连接 外连接 广义笛卡尔积 SQL99规则提供了可读性更好的多表连接语法,并提供了更多类型的连接查询,SQL99支持如下几种多表连接查询: 交叉连接 自然连接 使用using子句的连接 使用on子句连接 全部连接或者左右外连接 SQL92的连接查询 SQL92的连接查询语法比较简单,多将多个table放置在from关键字之后,多个table用“,”隔开; 连接的条件放在where条件之后,与查询条件直接用and逻辑运算符进行连接。如果条件使用的是相等, 则称为等值连接,相反则称为非等值,如果没有任何条件则称为广义笛卡尔积。 广义笛卡尔积:select s.*, c.* from student s, classes c; 等值:select s.*, c.* from student s, classes c where s.cid = c.id; 非等值:select s.*, c.* from student s, classes c where s.cid <> c.id; select s.*, c.name classes from classes c, student s where c.id = s.classes_id ands.name is not null; SQL99连接查询 1、交叉连接cross join,类似于SQL92的笛卡尔积查询,无需条件。如: select s.*, c.name from student s cross join classes c; 2、自然连接 natural join查询,无需条件,默认条件是将2个table的相同字段作为连接条件,如果没有相同字段,查询的结果就是空。 select s.*, c.name from student s natural join classes c; 3、using子句连接查询:using的子句可以是一列或多列,显示的指定两个表同名列作为连接条件。 如果用natural join的连接查询,会把所有的相同字段作为连接查询。而using可以指定相同列及个数。 select s.*, c.name from student s join classes c using(id); 4、 join … on连接查询,查询条件在on完成,每个on语句只能指定一个条件。 select s.*, c.name from student s join classes c on s.classes_id = c.id; 5、 左右外连接:3种外连接,left [outer] join、right [outer] join,连接条件都是通过用on子句来指定,条件可以等值、非等值。 select s.*, c.name from student s left join classes c on s.classes_id = c.id; select s.*, c.name from student s right join classes c on s.classes_id = c.id; 子查询 子查询就是指在查询语句嵌套另一个查询,子查询可以支持多层嵌套。子查询可以出现在2个位置: from关键字之后,被当做一个表来进行查询,这种用法被称为行内视图,因为该子查询的实质就是一个临时视图 出现在where条件之后作为过滤条件的值 子查询注意点: 子查询用括号括起来,特别情况下需要起一个临时名称 子查询当做临时表时(在from之后的子查询),可以为该子查询起别名,尤其是要作为前缀来限定数据列名时 子查询用作过滤条件时,将子查询放在比较运算符的右边,提供可读性 子查询作为过滤条件时,单行子查询使用单行运算符,多行子查询用多行运算符 将from后面的子查询当做一个table来用: select * from (select id, name from classes) s where s.id in (1, 2); 当做条件来用: select * from student s where s.classes_id in (select id from classes); select * from student s where s.classes_id = any (select id from classes); select * from student s where s.classes_id > any (select id from classes); Ø 操作符和函数 1、 boolean只判断 select 1 is true, 0 is false, null is unknown; select 1 is not unknown, 0 is not unknown, null is not unknown; 2、 coalesce函数,返回第一个非null的值 select coalesce(null, 1); select coalesce(1, 1); select coalesce(null, 1); select coalesce(null, null); 3、 当有2个或多个参数时,返回最大的那个参数值 select greatest(2, 3); select greatest(2, 3, 1, 9, 55, 23); select greatest('D', 'A', 'B'); 4、 Least函数,返回最小值,如果有null就返回null值 select least(2, 0); select least(2, 0, null); select least(2, 10, 22.2, 35.1, 1.1); 5、 控制流函数 select case 1 when 1 then 'is 1' when 2 then 'is 2' else 'none' end; select case when 1 > 2 then 'yes' else 'no' end; 6、 ascii字符串函数 select ascii('A'); select ascii('1'); 7、 二进制函数 select bin(22); 8、 返回二进制字符串长度 select bit_length(11); 9、 char将值转换成字符,小数取整四舍五入 select char(65); select char(65.4); select char(65.5); select char(65.6); select char(65, 66, 67.4, 68.5, 69.6, '55.5', '97.3'); 10、 using改变字符集 select charset(char(0*65)), charset(char(0*65 using utf8)); 11、 得到字符长度char_length,character_length select char_length('abc'); select character_length('eft'); 12、 compress压缩字符串、uncompress解压缩 select compress('abcedf'); select uncompress(compress('abcedf')); 13、 concat_ws分隔字符串 select concat_ws('#', 'first', 'second', 'last'); select concat_ws('#', 'first', 'second', null, 'last'); Ø 事务处理 动作 开始事务:start transaction 提交事务:commit 回滚事务:rollback 设置自动提交:set autocommit 1 | 0 atuoCommit系统默认是1立即提交模式;如果要手动控制事务,需要设置set autoCommit 0; 这样我们就可以用commit、rollback来控制事务了。 在一段语句块禁用autocommit 而不是set autocommit start transaction; select @result := avg(age) from temp; update temp set age = @result where id = 2; select * from temp where id = 2;//值被改变 rollback;//回滚 select * from temp where id = 2;//变回来了 在此期间只有遇到commit、rollback,start Transaction的禁用autocommit才会结束。然后就恢复到原来的autocommit模式; 不能回滚的语句 有些语句不能被回滚。通常,这些语句包括数据定义语言(DDL)语句,比如创建或取消数据库的语句, 和创建、取消或更改表或存储的子程序的语句。 您在设计事务时,不应包含这类语句。如果您在事务的前部发布了一个不能被回滚的语句, 则后部的其它语句会发生错误,在这些情况下,通过发布ROLLBACK语句不能 回滚事务的全部效果。 一些操作也会隐式的提交事务 如alter、create、drop、rename table、lock table、set autocommit、starttransaction、truncate table 等等, 在事务出现这些语句也会提交事务的 事务不能嵌套事务 事务的保存点 Savepoint pointName/Rollback to savepoint pointName 一个事务可以设置多个保存点,rollback可以回滚到指定的保存点,恢复保存点后面的操作。 如果有后面的保存点和前面的同名,则删除前面的保存点。 Release savepoint会删除一个保存点,如果在一段事务执行commit或rollback,则事务结束,所以保存点删除。 Set Transaction设计数据库隔离级别 SET [GLOBAL | SESSION] TRANSACTION ISOLATION LEVEL { READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE } 本语句用于设置事务隔离等级,用于下一个事务,或者用于当前会话。 在默认情况下,SET TRANSACTION会为下一个事务(还未开始)设置隔离等级。 如果您使用GLOBAL关键词,则语句会设置全局性的默认事务等级, 用于从该点以后创建的所有新连接。原有的连接不受影响。使用SESSION关键测可以设置默认事务等级, 用于对当前连接执行的所有将来事务。 默认的等级是REPEATABLE READ全局隔离等级。 Ø 注释 select 1+1; # 单行注释 select 1+1; -- 单行注释 select 1 /* 多行注释 */ + 1; Ø 基本数据类型操作 字符串 select 'hello', '"hello"', '""hello""', 'hel''lo', '/'hello'; select "hello", "'hello'", "''hello''", "hel""lo", "/"hello"; /n换行 select 'This/nIs/nFour/nLines'; /转义 select 'hello / world!'; select 'hello /world!'; select 'hello // world!'; select 'hello /' world!'; Ø 设置数据库mode模式 SET sql_mode='ANSI_QUOTES'; create table t(a int); create table "tt"(a int); create table "t""t"(a int); craate talbe tab("a""b" int); Ø 用户变量 set @num1 = 0, @num2 = 2, @result = 0; select @result := (@num1 := 5) + @num2 := 3, @num1, @num2, @result; Ø 存储过程 创建存储过程: delimiter // create procedure get(out result int) begin select max(age) into result from temp; end// 调用存储过程: call get(@temp); 查询结果: select @temp; 删除存储过程: drop procedure get; 查看存储过程创建语句: show create procedure get; select…into 可以完成单行记录的赋值: create procedure getRecord(sid int) begin declare v_name varchar(20) default 'jason'; declare v_age int; declare v_sex bit; select name, age, sex into v_name, v_age, v_sex from temp where id = sid; select v_name, v_age, v_sex; end; call getRecord(1); Ø 函数 函数类似于存储过程,只是调用方式不同 例如:select max(age) from temp; 创建函数: create function addAge(age int) returns int return age + 5; 使用函数: select addAge(age) from temp; 删除函数: drop function if exists addAge; drop function addAge; 显示创建语法: show create function addAge; Ø 游标 声明游标:declare cur_Name cursor for select name from temp; 打开游标:open cur_Name; Fetch游标:fetch cur_Name into @temp; 关闭游标:close cur_Name; 示例: CREATE PROCEDURE cur_show() BEGIN DECLARE done INT DEFAULT 0; DECLARE v_id, v_age INT; DECLARE v_name varchar(20); DECLARE cur_temp CURSOR FOR SELECT id, name, age FROM temp; DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1; OPEN cur_temp; REPEAT FETCH cur_temp INTO v_id, v_name, v_age; IF NOT done THEN IF isnull(v_name) THEN update temp set name = concat('test-json', v_id) where id = v_id; ELSEIF isnull(v_age) THEN update temp set age = 22 where id = v_id; END IF; END IF; UNTIL done END REPEAT; CLOSE cur_temp; END Ø 触发器 触发器分为insert、update、delete三种触发器事件类型 还有after、before触发时间 创建触发器: create trigger trg_temp_ins before insert on temp for each row begin insert into temp_log values(NEW.id, NEW.name); end// 删除触发器: drop trigger trg_temp_ins

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧