SQL 21日自学通(V3.0)(PDF格式)-第21部分
按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
输入
SQL》UPDATE CHARACTERS SET FIRSTNAME='kelly'
WHERE FIRSTNAME='KELLY'
输出
1 row updated。
输入
SQL》SELECT FIRSTNAME FROM CHARACTERS
输出
FIRSTNAME FIRSTNAME
kelly FESTER
CHUCK ARMANDO
LAURA MAJOR
然后 请您再输入
SQL》SELECT FIRSTNAME UPPER FIRSTNAME LOWER FIRSTNAME
FROM CHARACTERS
输出
FIRSTNAME UPPER(FIRSTNAME LOWER FIRSTNAME
kelly KELLY kelly
CHUCK CHUCK chuck
LAURA LAURA laura
FESTER FESTER fester
ARMANDO ARMANDO armando
MAJOR MAJOR major
现在你明白这两个函数的作用了吧
EMAIL wyhsillypig@163。 83
…………………………………………………………Page 84……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
LPAD 与 RPAD
这两个函数最少需要两个参数 最多需要三个参数 每一个参数是需要处理的字符串
第二个参数是需要将字符串扩充的宽度 第三个参数表示加宽部分用什么字符来做填补
第三个参数的默认值为空格 但也可以是单个的字符或字符串 下面的句子中向字段中加
入了五个字符 该字段的定义宽度为 5
输入
SQL》SELECT LASTNAME LPAD LASTNAME 20 * FROM CHARACTERS
输出
LASTNAME LPAD LASTNAME 20 * )
PURVIS *****PURVIS
TAYLOR *****TAYLOR
CHRISTINE *****CHRISTINE
ADAMS *****ADAMS
COSTALES *****COSTALES
KONG *****KONG
分析
为什么只添加了 5 个占位字符呢 不要忘记 LASTNAME 列是 15 个字符宽 在可见字
符的右方填充着空格以保证字符的定义宽度 请检查一下你所用的解释器 现在再试一下
右扩充
输入
SQL》 SELECT LASTNAME RPAD LASTNAME 20 * FROM CHARACTERS
输出
LASTNAME RPAD(LASTNAME;20;'*'
PURVIS PURVIS *****
TAYLOR TAYLOR *****
CHRISTINE CHRISTINE *****
ADAMS ADAMS *****
COSTALES COSTALES *****
KONG KONG *****
分析
通过这个操作我们可以清楚地看到空格也是该字段内容的一部分这一事实了 下边的两个
EMAIL wyhsillypig@163。 84
…………………………………………………………Page 85……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
函数正是用于这一情况的
LTRIM 与 RTRIM
LTRIM 和 RTRIM 至少需要一个参数 最多允许两个参数 第一个参数与 LPAD 和 RPAD
类似 是一个字符串 第二个参数也是一个字符或字符串 默认则是空格 如果第二个参
数不是空格的话 那么该函数将会像剪除空格那样剪除所指定的字符 如下例
输入
SQL》 SELECT LASTNAME RTRIM LASTNAME FROM CHARACTERS
输出
LASTNAME RTRIM(LASTNAME)
PURVIS PURVIS
TAYLOR TAYLOR
CHRISTINE CHRISTINE
ADAMS ADAMS
COSTALES COSTALES
KONG KONG
你可以用下边的语句来确认字符中的空格已经被剪除了
输入
SQL》 SELECT LASTNAME RPAD RTRIM LASTNAME 20 * FROM
CHARACTERS
输出
LASTNAME RPAD(RTRIM(LASTNAME)
PURVIS PURVIS**************
TAYLOR TAYLOR**************
CHRISTINE CHRISTINE***********
ADAMS ADAMS***************
COSTALES COSTALES************
KONG KONG****************
输出证明的确已经进行了剪除工作 现在请再试一个 LTRIM
输入
SQL》SELECT LASTNAME LTRIM LASTNAME C FROM CHARACTERS
输出
EMAIL wyhsillypig@163。 85
…………………………………………………………Page 86……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
LASTNAME LTRIM(LASTNAME;
PURVIS PURVIS
TAYLOR TAYLOR
CHRISTINE HRISTINE
ADAMS ADAMS
COSTALES OSTALES
KONG KONG
注意 第三行和第五行的 已经没有了
REPLACE
它的工作就如果它的名字所说的那样 该函数需要三个参数 第一个参数是需要搜索
的字符串 第二个参数是搜索的内容 第三个参数则是需要替换成的字符串 如果第三个
参数省略或者是 NULL 那么将只执行搜索操作而不会替换任何内容
输入
SQL》 SELECT LASTNAME REPLACE LASTNAME ST REPLACEMENT FROM
CHARACTERS
输出
LASTNAME REPLACEMENT
PURVIS PURVIS
TAYLOR TAYLOR
CHRISTINE CHRIINE
ADAMS ADAMS
COSTALES COALES
KONG KONG
如果存在第三个参数 如么在每一个目标字符串中搜索到的内容将会被由第三个参数所指
定的字符串替换 例如
输入
SQL》 SELECT LASTNAME REPLACE LASTNAME ST ** REPLACEMENT
FROM CHARACTERS
输出
LASTNAME REPLACEMENT
PURVIS PURVIS
EMAIL wyhsillypig@163。 86
…………………………………………………………Page 87……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
TAYLOR TAYLOR
CHRISTINE CHRI**INE
ADAMS ADAMS
COSTALES CO**ALES
KONG KONG
如果没有第二个参数 那么只有将源字符串返回而不会执行任何操作
输入
SQL》 SELECT LASTNAME REPLACE LASTNAME NULL REPLACEMENT
FROM CHARACTERS
输出
LASTNAME REPLACEMENT
PURVIS PURVIS
TAYLOR TAYLOR
CHRISTINE CHRISTINE
ADAMS ADAMS
COSTALES COSTALES
KONG KONG
SUBSTR
这个函数有三个参数 允许你将目标字符串的一部份输出 第一个参数为目标字符串
第二个字符串是将要输出的子串的起点 第三个参数是将要输出的子串的长度
输入
SQL》SELECT FIRSTNAME SUBSTR FIRSTNAME 2 3 FROM CHARACTERS
输出
FIRSTNAME SUB
kelly ell
CHUCK HUC
LAURA AUR
FESTER EST
ARMANDO RMA
MAJOR AJO
如果第二个参数为负数 那么将会从源串的尾部开始向前定位至负数的绝对值的位置 例
如
EMAIL wyhsillypig@163。 87
…………………………………………………………Page 88……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
输入
SQL》 SELECT FIRSTNAME SUBSTR FIRSTNAME …13 2 FROM CHARACTERS
输出
FIRSTNAME SU
kelly ll
CHUCK UC
LAURA UR
FESTER ST
ARMANDO MA
MAJOR JO
分析
切记 FIRSTNAME 字段的宽度为 15 这也就是为什么参数为…13 时会从第三个开始的原因
因为从 15 算起向前算第 13 个字符正好是第 3 个字符 如果没有第三个参数 将会输出字
符串余下的部分
输入
SQL》 SELECT FIRSTNAME SUBSTR FIRSTNAME 3 FROM CHARACTERS
输出
FIRSTNAME SUBSTR(FIRSTN
kelly lly
CHUCK UCK
LAURA URA
FESTER STER
ARMANDO MANDO
MAJOR JOR
看 是不是将字符串余下的部分返回了
现在再来看一个例子
输入
SQL》 SELECT * FROM SSN_TABLE
输出
SSN__________
300541117
301457111
459789998
EMAIL wyhsillypig@163。 88
…………………………………………………………Page 89……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
如果直接阅读上边的结果是比较困难的 比较好的解决办法是使用下划线 请先想一下下
边语句的输出情况
输入
SQL》 SELECT SUBSTR SSN 1 3 ||'…'||SUBSTR SSN 4 2 ||'…'||SUBSTR SSN
6 4
SSN FROM SSN_TABLE
输出
SSN_________
300…54…1117
301…45…7111
459…78…9998
注 这在当数字特别大 例如 1 343 178 128 需要用逗号分隔时以及区位号码或电
话号码需要下划线分隔时特别有效
这是 SUBSTR 的另一个非常有用的功能 倘若你需要打印一个报表而其中一些列的宽度超
过了 50 个字符时 你可以使用 SUBSTR 来减小列宽以使它更接近数据的真实宽度 请看
一个下面的这两个例子
输入
SQL》 SELECT NAME JOB DEPARTMENT FROM JOB_TBL
输出
NAME______________________________________________________________
JOB_______________________________DEPARTMENT______________________
ALVIN SMITH
VICEPRESIDENT MARKETING
1 ROW SELECTED。
分析
注意 这几列已经换行显示了 这例得阅读变行非常困难 现在试一下下边的 SELECT
语句
输入
SQL》 SELECT SUBSTR(NAME; 1;15) NAME; SUBSTR(JOB;1;15) JOB;
EMAIL wyhsillypig@163。 89
………………………………………………