Java学习笔记-Java基础14(SQL之字符串函数)
1.CHAR和VARCHAR2:都表示字符串数据类型,用来在表中存放字符串信息
1)CHAR存放定长字符,即存不满补空格;VARCHAR2存放变长字符,存多少占用多少
2)二者的默认单位是字节,可以指定为字符
-CHAR(10),等价于CHAR(10 BYTE)
-CHAR(10 CHAR),20个字节
-每个英文占用1个字节,中文是2-4个字节(GBK,2个字节;UTF-8,3个字节)
3)CHAR最大取值为2000字节,VARCHAR2最大取值为4000字节
4)CHAR可以不指定长度,默认为1;VARCHAR2必须指定长度
2.LONG:VARCHAR2加长版,存放变长字符串,最多达2GB字符串数据,但是LONG有限制
1)每个表只能有一个LONG型列
2)不能作为主键
3)不能建立索引
4)不能出现在查询语句中
3.CLOB:存放定长或变长字符串,最多达4GB的字符串数据,ORACLE建议开发中使用CLOB替代LONG类型
4.CONCAT和“||”:用于连接字符串
5.DUAL:虚表,没有该表,只为满足语法要求,常用语测试表达式的结果
6.部分字符串函数:
1)LENGTH(char):用于返回字符串长度
2)UPPER(char)/LOWER(char)/INITCAP(char):用于将字符串转换为大写/小写/首字母大写形式
3)TRIM(c2 FROM c1):从c1的前后截去c2;
LTRIM(c1,c2):从c1的左边截去c2;
RTRIM(c1,c2):从c1的右边截去c2;
如果没有c2,就去除空格
4)LPAD/RPAD(c1,n,c2):补位函数,用于在字符串c1的左或右端用c2补足到n位
5)SUBSTR(char,m[,n]):用于获取字符串的字串,返回char中从m位开始取n个字符。
-如果m=0,则从首字母开始,如果m为负数,则从尾部开始
-如果没有设置n,或n的长度超过了char的长度,则取到末尾为止
-字符串的首位计数是从1开始
6)INSTR(c1,c2[,n,[m]]):返回子串c2在c1的位置
-从n的位置开始搜索,没有指定n,从第1个字符开始
-m用于指定字串的第m次出现次数,如果不指定默认1
-如果找不到c2,则返回0