友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!
SQL 21日自学通(V3.0)(PDF格式)-第19部分
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部! 如果本书没有阅读完,想下次继续接着阅读,可使用上方 "收藏到我的浏览器" 功能 和 "加入书签" 功能!
EMAIL wyhsillypig@163。 81
…………………………………………………………Page 82……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
字符串连接起来 CONCAT 也是完成这个功能的 使用方法如下
输入
SQL》SELECT CONCAT FIRSTNAME LASTNAME 〃FIRST AND LAST NAMES〃
FROM CHARACTERS
输出
FIRST AND LAST NAMES
KELLY PURVIS
CHUCK TAYLOR
LAURA CHRISTINE
FESTER ADAMS
ARMANDO COSTALES
MAJOR KONG
分析
当用多个词来做为别名时需对它们使用引号 请检查你的解释器 看看它是否支持别
名
需要注意的是尽管在看起来输出似乎是两列 但实际上它仍是一列 这是因为你所连
接的 Firstname 字段的宽度为 15 函数取得了该列中的所有数据 包括其中用以补足宽度
的空格
INITCAP
该函数将参数的第一个字母变为大写 此外其它的字母则转换成小写
输入
SQL》SELECT FIRSTNAME BEFORE INITCAP FIRSTNAME AFTER
FROM CHARACTERS
输出
BEFORE AFTER
KELLY Kelly
CHUCK Chuck
LAURA Laura
FESTER Fester
ARMANDO Armando
MAJOR Major
EMAIL wyhsillypig@163。 82
…………………………………………………………Page 83……………………………………………………………
SQL 21 日自学通(V1。0) 翻译人 笨猪
LOWER 和 UPPER
如你所料 LOWER 将参数转换为全部小写字母而 UPPER 则把参数全部转换成大写字
母
下例是用 LOWER 函数和一个叫 UPDATE 的函数来把数据库的内容转变为小写字母
输入
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
快捷操作: 按键盘上方向键 ← 或 → 可快速上下翻页 按键盘上的 Enter 键可回到本书目录页 按键盘上方向键 ↑ 可回到本页顶部!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!