DB2资料.doc_第1页
DB2资料.doc_第2页
DB2资料.doc_第3页
DB2资料.doc_第4页
DB2资料.doc_第5页
免费预览已结束,剩余20页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-by ytliuDB2 Administration Server (DAS) Instances can be set up per physical machineDB2可以存在多个DB2实例DB2组成DB2引擎DB2引擎是数据库系统的核心,提供了DB2的基本功能。它负责:- 管理和控制对数据的存取;- 负责生成程序包(存储存取计划的数据库对象);- 提供事务的管理;- 保障数据的完整性和数据保护;- 提供应用程序并发控制什么是DB2实例?DB2实例是一种逻辑上下文,DB2命令及函数在其中执行。可以将实例视为管理对数据库文件的服务或守护进程。在一台服务器上可以定义多个实例。各实例独立于其他实例,也就是说所以实例均可以管理、操纵及调优。查看实例命令:db2ilist一些数据库对象之间的关系 数据库环境中可以有多个实例,每个实例有其独有的数据库。其 他DB2存在两种永久表:系统catalog表系统catalog表存放着数据库的相关信息。和用户表。DB2数据存储的页大小只能在表空间级别统一指定(区别于Oracle,可以定义在表级别), 并且建好后不能修改。节点组用来存储表空间不能将表空间从一个节点组移动到另一个节点组、表空间用来存储节点组创建32K缓冲池CREATE BUFFERPOOL BUF32K ALL NODES SIZE 10000 EXCEPT ON NODE(0 SIZE 10000) PAGESIZE 3276832K EXTENDED STORAGE;创建32K表空间(需要先创建32K缓冲池)CREATE TEMPORARY TABLESPACE TEMPSPACE2 IN NODEGROUP IBMTEMPGROUP PAGESIZE 32768 MANAGED BY SYSTEM USING( /ecdsfe_db/db2ecd64/NODE0000/SQL00001/SQLT00011.0 ) EXTENTSIZE 32 BUFFERPOOL BUF32K OVERHEAD 12.67 TRANSFERRATE 0.18;数据库分区:数据库分区注意区别于表分区状态:单分区:默认为单agent多分区:自动为多agent并行如果一个SQL涉及到多个数据库分区,则会启动多agent并行DB2操作执行sqldb2 -tvf sql脚本名数据库配置编辑/etc/services文件,添加服务端口DB2c_db2inst3 50030/tcpDB2c_db2inst1 50010/tcpDB2c_db2inst2 50020/tcp创建实例#/usr/opt/db2_08_01/instance/db2icrt -s ESE -w 64 -p DB2c_db2inst3 -u db2fenc3 db2inst3#/usr/opt/db2_08_01/instance/db2icrt -s client -w 32 -u db2fenc1 db2inst1#/usr/opt/db2_08_01/instance/db2icrt -s ESE -w 32 -p DB2c_db2inst2 -u db2fenc2 db2inst2实例创建完毕后通过重复执行下面的步骤来验证是否创建成功(以db2inst3为例)。#su db2inst3$db2ilist 查看存在几个实例$db2start 看实例是否能正常启动$db2stop 看实例是否能正常停止验证数据库的版本$ db2level修改并行CPU个数(根据性能测试来调整个数)#/usr/opt/db2_08_01/adm/db2licm lProduct Name = DB2 Enterprise Server EditionProduct Identifier = DB2ESEVersion Information = 8.2Expiry Date = PermanentRegistered Connect User Policy = DisabledNumber Of Entitled Connect Users = 5Enforcement Policy = Soft StopNumber of processors = 4Number of licensed processors = 1Database partitioning feature = Not entitledAnnotation = Other information = Product Name = DB2 High Availability Disaster Recovery OptionProduct Identifier = DB2HADRVersion Information = 8.2Expiry Date = PermanentAnnotation = Other information = Product Name = DB2 Advanced Security OptionProduct Identifier = DB2ASOVersion Information = 8.2Expiry Date = PermanentAnnotation = Other information = 以上 Number of licensed processors = 1 说明此DB2只支持一个CPU ,但是系统有2个CPU。使用命令:db2licm -n DB2ESE 2 改变:Number of licensed processors = 2db2licm -n DB2ESE 2 # 2为CPU个数windows下进入db2命令环境:db2cmd查看数据库信息db2ilist 列出当前系统中定义的DB2实例daslist 列出系统中的DASdb2 list database directory 列出当前实例中定义的数据库db2 list tablespaces 列出当前数据库中定义的表空间db2 list tabses for all 列出当前数据库中的表如:db2 list tables for schema SYSIBMADM 列出SYSIBMADM模式下的表 列出活动的数据库db2 get dbm configget db cfg for databasenamedb2 update db cfg for databasename using bufferpage 600Mdb2 alter bufferpool IABMDEFAULTBP size =1db2 list applications show detail以上命令可以在后面加 show detail 参数,显示详细信息。查看数据库版本信息db2level:DB21085I Instance db2ecds uses 64 bits and DB2 code release SQL08026 with level identifier 03070106.Informational tokens are DB2 v20, s060801, U808888, and FixPak 13.Product is installed at /usr/opt/db2_08_01.上面的信息是安装了补丁FP13_U808888连接数据库su -改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,LOGNAME。此外,也会变更PATH变量 db2inst1db2 connect to 数据库名 user 用户名 using 密码list tables显示所有表describe table TBLBRANCHCODE表名查看表结构db2gcf -s 查看实例状态连接同时,修改密码CONNECT TO SAMPLE USER PETE USING MYPASS NEW NEWPWD新密码 CONFIRM NEWPWD新密码确认客户端连接怎么查看db2数据库服务名和端口:db2 list database directorycat /etc/services|grep DB2 db2 get dbm cfg |grep SVdb2命令db2set是用来设置db2实例的profile registries,总之profile registries要比实例的configuration parameters要大一点,比系统环境变量小一点1. db2set -lr /列出所有支持的profile registrie2. db2set registry_variable = value /设值3. db2set registry_variable = /恢复成默认值4. db2set -all /列出当前设置过的数据库实例操作创建/usr/opt/db2_08_01/instance/db2icrt -s ESE -w 64 -p DB2c_db2ecds -u db2efnc db2ecds删除在instance停止的时候,/usr/opt/db2_08_01/instance/db2idrop 如果在instance活动情况下, db2idrop -f 使用db2idrop命令 1.在NT平台上,该命令在c:program Fileibmsqllibbin下 2.在AIX上,该命令在/usr/lpp/db2_07_01/instance下数据库操作查看DB2版本:select * from sysibm.sysvERSIONS查看数据库目录:LIST DATABASE DIRECTORYdb2_ps命令列出DB2 的进程停止实例 DB2STOP 若报错The database manager was not stopped because databases are still active,可执行db2stop force启动实例 DB2START重新启动数据库 RESTART DATABASE DATABASE_NAMEdb2 ?查看db2命令的使用db2 ? 命令名查看db2命令名的使用db2 ? sqlstate 40001查看sqlstate为40001时时何种状态如何知道TABLESPACE的状况? select * from sysibm.SYSTABLESPACES 如何知道SEQUENCE的状况? select * from sysibm.SYSSEQUENCES 如何知道SCHEMA的状况? select * from sysibm.SYSSCHEMATA 如何知道INDEX的状况? select * from sysibm.SYSINDEXES经常使用的SNAPSHOT命令:Snapshot TypeCommandSnapshot for locksdb2 get snapshot for locks on sampleDatabase Manager Snapshotdb2 get snapshot for DBMDatabase Snapshotdb2 get snapshot for database on 数据库名Tablespace Snapshotdb2 get snapshot for tablespaces on SAMPLETablesdb2 get snapshot for tables on SAMPLEBufferpool Snapshotdb2 get snapshot for bufferpools on SAMPLEApplicationsdb2 get snapshot for applications on SAMPLEDynamic SQLdb2 get snapshot for dynamic sql on SAMPLE特殊寄存器(日期、时间)DB2的几个特殊寄存器:CURRENT DATECURRENT TIMECURRENT TIMESTAMPUSER(用户ID)有关日期的操作:CURRENT TIMESTAMP + 2 DAYS(or HOURS, SECONDS, MONTHS, YEARS, etc.)表操作:create table ecdrs.CDRSNODT0001_bak_04 as (select * from ecdrs.CDRSNODT0001) definition only 查看所有表list tables显示表信息DESCRIBE TABLE TABLE_NAME show detail新建表建表1:CREATE TABLE Staff ( ID SMALLINT NOT NULL, NAME VARCHAR(9), DEPT SMALLINT NOT NULL WITH DEFAULT 10, JOB CHAR(5), YEARS SMALLINT, SALARY DECIMAL(7,2), COMM DECIMAL(7,2) WITH DEFAULT 15) NOT LOGGED INITIALLY;对该表的任何操作都不会记入日志建表2:CREATE TABLE EMPLOYEE ( EMPNO插入数据时,该字段自动填入 INT GENERATED ALWAYS AS IDENTITY(START WITH 100, INCREMENT BY 10)若无此部分,则以1开始,每次递增1), NAME CHAR(10);INSERT INTO EMPLOYEE(NAME) VALUES George,Bill;SELECT * FROM EMPLOYEE;EMPNO NAME- - 100 George 110 BillInserting a row with a default value:INSERT INTO STAFF values(360,Chihoko,DEFAULT,SE,8,20000,DEFAULT);INSERT INTO STAFF (ID,NAME,JOB,YEARS,SALARY) values(360,Chihoko,SE,8,20000)如果没有为新建表指定存储表空间,则按如下顺序指定表空间:alter表例:数据操作select * from shenbao.tblPayReceiveBFChk1 fetch FIRST 5 rows only仅取前5行只有使用了group by才能使用having子句大数据表删除先执行:alter table nolog_tab activate not logged initially指定不记录日志 with empty table 当激活这个特性后,我们就可以以不记日志的方式删除表中的数据。这样不但提高了速度,也减少了日志的生成,并且减少了锁资源的使用。再对表进行删除db2 reorg table ecds.ecdsnodt0301db2 runstats on table ecds.ecdsnodt0301各种删除表数据的方法对比.ALTER TABLE xxx ACTIVATE NOT LOGGED INITIALLY WITH EMPTY TABLE;(IBM工程师推荐).IMPORT FROM /dev/null OF DEL REPLACE INTO tablename or load from /dev/null of del replace into tablename.delete from xxx;4.drop table然后create table-1.alter table tabname activate not logged initially with empty table (一种可以绕开删除整个表操作时遇到交易日志已满的办法) 这样有可能会造成这一张不表访问, 用altertable方式就不记日志,也就是说容易把表弄坏。 在执行alter table 语句后,如果同一事务中rollback,或者在之后执行rollforward涉及该表,该表都会标记成为不可用,必须重建。2.以空文件为数据文件导入(IMPORT)并替换(REPLACE)目标表 IMPORT FROM /dev/null OF DEL REPLACE INTO 目标表名 (一种可以绕开删除整个表操作时遇到交易日志已满的办法) import插入是记录日志。是replace部分操作是truncate 这样交易日志只会记录下该条命令,并立即释放所占的空间,而不会像删除命令一样逐条扫描记录,这就类似于DROP掉该表再创建一个完全相同只是没有数据的表一样。对于属于DMS表空间的表来说,删除命令逐条扫描记录,所占的记录空间仍标记为该表所用,而不立即释放空 间,需要用REORG命令才可以释放剩余空间。用 LIST TABLESPACE SHOW DETAIL 可以对比两条命令执行后表空间中的剩余空间的大小。 用LOAD命令加REPLACE参数可以达到类似IMPORT命令加REPLACE的效果,但是由于LOAD本身不记日志,所以对于可恢复的数据库,LOAD完成后 建议马上做一下联机备份的,相比之下,IMPORT命令加REPLACE操作上比较简单一些。 3.当用DELETE TABLE命令删除整个表中数据时,该操作会逐条删除表中记录,并记入活动的交易日志。当表中数据量很大时,如果活动的交易 日志不够大,就会遇到交易日志已满的错误,并回滚日志。即使活动的交易日志足够大,删除数据量很大的表的操作也会占用很多时间。4.直接DROP 重新建立。 -表的定义也就没了,而且相关视图应该重建!查看表的索引describe indexes for table 表名 show detail查看锁信息及干掉进程DB2的锁(1)内部方案锁(Internal Plan Lock)db2+cupdateemployeesetsalary=1234whereempno=000100无论数据库是在处理静态SQL还是动态SQL,DB2的相关组件都需要去访问程序包信息和相应的SQL查询访问计划。那么默认情况下,DB2都会去给相应的Package Cache加内部P锁,以防止其他的什么操作将正在使用的Package删除,毫无疑问的是,这样的一个锁对性能多少会有影响,但影响是很小的。DB2的变量注册参数里面有个配置参数是DB2_APM_PERFORMANCE。如果这个值被设置为ON,则会启用无包锁定方式。此方式允许全局查询高速缓存运行,而不必使用包锁定,这些锁定是内部系统锁定,可以保护高速缓存的包条目不被除去。无包锁定方式在一定程度上可以提高性能,但它不允许执行某些数据库操作。这些被禁止的操作可能包括:使包无效的操作、使包不起作用的操作、PRECOMPILE、BIND和REBIND。所以,在这里只是让大家知道这个变量和了解程序包高速缓存的内部工作机制,但是不建议大家修改这个值。(2)内部V锁(Internal Variation Lock)updateaccountsettransdate=date(currenttimestamp)-?day在update account set transdate=date(current timestamp) -? day这条SQL语句传递给优化器编译(COMPILING)时,我们需要为这条SQL语句提供一个编译环境,这个编译环境包括把特殊的寄存器(CURRENT STAMP)变量转变成真正的值;表ACCOUNT没有模式名,需要使用DEFAULT QUALIFIER用作模式;我们使用了DATE函数,需要知道该函数的函数路径(CURRENT FUNCTION PATH);我们使用了参数标记(?),需要把参数标记转变成真正的值。上述的每一个变量都需要一个内部V锁来保证在该SQL执行期间,这些变量不被别的DDL语句修改或者被程序包缓存空间管理算法删除。查看锁信息getsnapshotforlockson数据库名注意要打开db2updatemonitorswitchesusinglockon干掉进程forceapplicationall/强行终止所有连接 terminate/清除所有db2的后台进程查看耗时语句-DB2监控语句下面的示例说明了一种非常有用的技术,可以用它来查找数据库中最耗时的 SQL 语句:SELECT stmt_text, total_exec_time, num_executions FROM TABLE( SNAPSHOT_DYN_SQL(CDRSFEDB, -1) as dynSnapTab ORDER BY total_exec_time desc FETCH FIRST 1 ROW ONLY第二个示例查找平均执行时间最长的五条 SQL 语句:SELECT stmt_text, CASE WHEN num_executions = 0 THEN 0 ELSE (total_exec_time / num_executions) END avgExecTime,num_executions FROM TABLE( SNAPSHOT_DYN_SQL(CDRSFEDB, -1) as dynSnapTab ORDER BY avgExecTime desc FETCH FIRST 5 ROWS ONLY其他类似命令-Database manager:To capture a snapshot of database manager information:SELECT * FROM TABLE( SNAPSHOT_DBM(-1) as SNAPSHOT_DBM-To capture a snapshot of database manager information specifically regarding the fast communication manager (FCM):SELECT * FROM TABLE( SNAPSHOT_FCM(-1) as SNAPSHOT_FCM-To capture a snapshot of database manager information for a partition specifically regarding the fast communication manager(FCM):SELECT * FROM TABLE( SNAPSHOT_FCMPARTITION(-1) as SNAPSHOT_FCMPARTITION-To capture the database managers monitor switch settings:SELECT * FROM TABLE( SNAPSHOT_SWITCHES(-1) as SNAPSHOT_SWITCHES-Database: To capture a snapshot of database information:SELECT * FROM TABLE( SNAPSHOT_DATABASE( CDRSFEDB, -1 ) as SNAPSHOT_DATABASE-Application:To capture a snapshot of application information:SELECT * FROM TABLE( SNAPSHOT_APPL( CDRSFEDB, -1 ) as SNAPSHOT_APPL-To capture a snapshot of application identification information:Chapter 3. Using the Snapshot Monitor 23SELECT * FROM TABLE( SNAPSHOT_APPL_INFO( CDRSFEDB, -1 ) as SNAPSHOT_APPL_INFO-To capture a snapshot of lock wait information:SELECT * FROM TABLE( SNAPSHOT_LOCKWAIT(CDRSFEDB, -1 ) as SNAPSHOT_LOCKWAIT-To capture a snapshot of statement information:SELECT * FROM TABLE( SNAPSHOT_STATEMENT( CDRSFEDB, -1 ) as SNAPSHOT_STATEMENT-To capture a snapshot of agent information:SELECT * FROM TABLE( SNAPSHOT_AGENT( CDRSFEDB, -1 ) as SNAPSHOT_AGENT-To capture a snapshot of subsection information:SELECT * FROM TABLE( SNAPSHOT_SUBSECT( CDRSFEDB, -1 ) as SNAPSHOT_SUBSECT-Buffer pool: To capture a snapshot of buffer pool information:SELECT * FROM TABLE( SNAPSHOT_BP( CDRSFEDB, -1 ) as SNAPSHOT_BP-Table space:To capture a snapshot of table space information:SELECT * FROM TABLE( SNAPSHOT_TBS( CDRSFEDB, -1 ) as SNAPSHOT_TBS-To capture a snapshot of table space configuration information:SELECT * FROM TABLE( SNAPSHOT_TBS_CFG( CDRSFEDB, -1 ) as SNAPSHOT_TBS_CFG-To capture a snapshot of table space quiescer information:SELECT * FROM TABLE( SNAPSHOT_QUIESCER( CDRSFEDB, -1 ) as SNAPSHOT_QUIESCER-To capture a snapshot of table space container configuration information:SELECT * FROM TABLE( SNAPSHOT_CONTAINER( CDRSFEDB, -1 ) as SNAPSHOT_CONTAINER-To capture a snapshot of the ranges for a table space map:SELECT * FROM TABLE( SNAPSHOT_RANGES( CDRSFEDB, -1 ) as SNAPSHOT_RANGES-Table: To capture a snapshot of table information:SELECT * FROM TABLE( SNAPSHOT_TABLE( CDRSFEDB, -1 ) as SNAPSHOT_TABLE-Lock: To capture a snapshot of lock information:SELECT * FROM TABLE( SNAPSHOT_LOCK( CDRSFEDB, -1 ) as SNAPSHOT_LOCK-Dynamic SQL cache: To capture a snapshot of dynamic SQL statement cache information:Snapshot monitor 24 System Monitor Guide and ReferenceSELECT * FROM TABLE( SNAPSHOT_DYN_SQL( CDRSFEDB, -1 ) as SNAPSHOT_DYN_SQL快照表函数说明SNAPSHOT_DBM 数据库管理器信息。 SNAPSHOT_DATABASE 数据库信息。只有当至少有一个应用程序连接至数据库时,才会返回信息。 SNAPSHOT_APPL 连接至分区上数据库的应用程序上有关锁等待的应用程序信息。这包括累积计数器、状态信息和最近执行的 SQL 语句(如果设置了语句监视器开关)。 SNAPSHOT_APPL_INFO 每个连接至分区上数据库的应用程序的常规应用程序标识信息。 SNAPSHOT_LOCKWAIT 有关锁等待连接至分区上数据库的应用程序的应用程序信息。 SNAPSHOT_STATEMENT 有关连接至分区上数据库的应用程序的语句的应用程序信息。这包括最近执行的 SQL 语句(如果设置了语句监视器开关)。 SNAPSHOT_TABLE 连接至数据库的应用程序所访问的每个表的表活动信息。需要表监视器开关。 SNAPSHOT_LOCK 数据库级别上的锁信息,以及每个连接至数据库的应用程序在应用程序级别上的锁信息。需要锁监视器开关。 SNAPSHOT_TBS 数据库级别上的表空间活动信息、每个连接至数据库的应用程序在应用程序级别上的表空间活动信息以及连接至数据库的应用程序已访问过的每个表空间在表空间级别上的表空间活动信息。需要缓冲池监视器开关。 SNAPSHOT_BP 指定数据库的缓冲池活动计数器。需要缓冲池监视器开关。 SNAPSHOT_DYN_SQL 来自用于数据库的 SQL 语句高速缓存的某个时间点语句信息。常用命令日志设置遇到错误:SQL0964C The transaction log for the database is full查看日志参数:get db cfg for databasename |grep -i log方法一:命令行方式把日志文件的大小和日志文件的数量扩充,如下命令 : db2 update db cfg for DATABASE using LOGFILSIZ 8000 db2 update db cfg for DATABASE using LOGPRIMARY 30 db2 update db cfg for DATABASE using LOGSECOND 20方法二:控制中心方式。直接在该数据库上右键(DB2客户端上),弹出如下窗口,找到 Configure Dababase Logging Wizard,打开即可设置。方法三:设置为循环日志db2 update db cfg for DATABASE using LOGRETAIN=on重启可能会报错:SQL1116N A connection to or activation of database db_name cannot be made because of backup pending,出现错误消息的原因是,日志模式已经从循环更改为归档,并且需要执行完全数据库备份。数据库处于循环日志模式时执行的备份并不充分,因此当切换模式后需要执行新备份。应执行下列命令进行备份:DB2 BACKUP DATABASE db_name TO d:db_namebackup数据导入与导出导入:db2 import from a.del数据文件 of del insert into tblcustomercode表名导出:进入db2export to outfilename.del of del select * from tbl_temp导出的内容正是该查询的结果可以在load大量数据时,暂时关闭表的日志选项。使用:ALTER TABLE . ACTIVATE NOT LOGGED INITIALLYload数据批量提交,速度较之import更快(单笔提交)load数据load from data.dat of DEL modified by delprioritychar insert into TBL_RECEIPTSABROADAFINFO nonrecoverable 通知不写日志终止loadload from data.dat of DEL modified by delprioritychar TERMINATE into TBL_RECEIPTSABROADAFINFO nonrecoverable查看load数据状态的:db2 load query table TBL_RECEIPTSABROADAFINFO若处于下列状态:db2 load query table test.usersTablestate: Check Pending使用下列命令:数据库SQL语句执行情况统计信息db2 get snapshot for dynamic sql on safedb dynasq2l.log输出选择结果到文件db2 select CustCode from tblCustomerBankInfo where Branchcode=360000000401360000000401字符串函数一、字符转换函数1、ASCII()返回字符表达式最左端字符的ASCII 码值。在ASCII()函数中,纯数字的字符串可不用括起来,但含其它字符的字符串必须用括起来使用,否则会出错。2、CHAR()将ASCII 码转换为字符。如果没有输入0 255 之间的ASCII 码值,CHAR() 返回NULL 。3、LOWER()和UPPER()LOWER()将字符串全部转为小写;UPPER()将字符串全部转为大写。4、STR()把数值型数据转换为字符型数据。STR (,length, )length 指定返回的字符串的长度,decimal 指定返回的小数位数。如果没有指定长度,缺省的length 值为10, decimal 缺省值为0。当length 或者decimal 为负值时,返回NULL;当length 小于小数点左边(包括符号位)的位数时,返回length 个*;先服从length ,再取decimal ;当返回的字符串位数小于length ,左边补足空格。二、去空格函数1、LTRIM() 把字符串头部的空格去掉。2、RTRIM() 把字符串尾部的空格去掉。三、取子串函数1、left()LEFT (, )返回character_expression 左起 integer_expression 个字符。2、RIGHT()RIGHT (, )返回character_expression 右起 integer_expression 个字符。3、SUBSTRING()SUBSTRING (, , length)返回从字符串左边第starting_ position 个字符起length个字符的部分。四、字符串比较函数1、CHARINDEX()返回字符串中某个指定的子串出现的开始位置。CHARINDEX (, )其中substring _expression 是所要查找的字符表达式,expression 可为字符串也可为列名表达式。如果没有发现子串,则返回0 值。此函数不能用于TEXT 和IMAGE 数据类型。2、PATINDEX()返回字符串中某个指定的子串出现的开始位置。PATINDEX (, )其中子串表达式前后必须有百分号“%”否则返回值为0。与CHARINDEX 函数不同的是,PATINDEX函数的子串中可以使用通配符,且此函数可用于CHAR、 VARCHAR 和TEXT 数据类型。五、字符串操作函数连接字符串:update ecdrs.CDRSNODT0001_bak_04 set biznb1=Concat(99999999999999,idnb), biznb2=Concat(99999999999999,idnb), biznb3=Concat(99999999999999,idnb)1、QUOTENAME()返回被特定字符括起来的字符串。QUOTENAME (, quote_ character) 其中quote_ character 标明括字符串所用的字符,缺省值为“”。2、REPLICATE()返回一个重复character_expression 指定次数的字符串。REPLICATE (character_expression integer_expression) 如果integer_expression 值为负值,则返回NULL 。3、REVERSE()将指定的字符串的字符排列顺序颠倒。REVERSE () 其中character_expression 可以是字符串、常数或一个列的值。4、REPLACE()返回被替换了指定子串的字符串。REPLACE (, , ) 用string_

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论