字符串操作
注意:在数据库中 数据下标都是从1开始
- CHAR:固定长度字符类型,最多2000字节,默认长度1,默认单位是字节
CHAR(N);定长字符串,一定要写够N位字节(查询高效,空间资源浪费) - VARCHAR2:(仅Oracle支持):变长字符类型,最多4000字节 ,默认单位是字节
VARCHAR2(N);变长字符串,N表示最多可占用的字节数(空间资源节省,查询低效) - VARCHAR:各大数据库都支持,与VARCHAR2几乎无区别
- 字符串的字面量注意与JAVA区分,在数据库中,所有字符串字面量使用单引号,字符串的字面量区分大小写
- LONG和CLOB
*LONG是VARCHAR2的加长版,用来存储变长字符串,最多达2GB的字符串数据,但是LONG类型有诸多限制,所以不建议使用
*CLOB用来存储定长或变长字符串,最多达4GB的字符串数据,ORACLE建议开发中使用CLOB替代LONG类型 - SELECT查询语句
*SELECT 星号 FROM 表 全部查询
*SELECT (字段名,以逗号隔开) FROM 表名 可以查询指定字段的数据信息
*SELECT与FROM之间指定的字段可以包括:表中的字段,一个表达式,一个函数 - 字符串函数
1)CONCAT:连接字符串 SELECT CONCAT(char1,char2) FROM 表名
2)||:等价操作(相当于Java中的加号) 可以连接多个字符串
3)LENGTH(char):返回字符串长度
4)大小写转换:UPPER(char), LOWER(char)
dual:伪表,当查询的数据与任何表没有关系时,可以使用伪表
5)INITCAP(char):将字符串中每个单词的首字符大写,其它字符小写,单词之间用空格和非字母字符分隔
6)TRIM,LTRIM,RTRIM:去除指定位置的指定字符串
*TRIM:SELECT (‘e’FROM’eelit’) FROM dual; 只能去除单个字符
*LTRIM: SELECT (‘eelitee’,’e’) FROM dual; 可以去除多个字符
7)LPAD,RPAD:补位函数, LPAD(char1,n,char2),在指定位置补入指定字符串,补足到n位
8)SUBSTR(char,n,m):截取字符串 从指定字符串的指定位置开始连续取若干字符,第三个参数可以不传入,不传入则是取到末尾,若第三个参数的值大于实际可以获取的字符长度时也默认为取到字符串末尾
9)INSTR:查找给定字符串在当前字符串中的位置,若没有符合要求的则返回值为0,可以传进两个参数,第一个代表开始查找的位置,第二个代表第几次出现,这两个参数若不指定,则默认为1
数值操作
- 数值类型:NUMBER
- 数值函数
1)ROUND(n,m):用于四舍五入,n指要处理的数字,m表示保留到小数点后多少位,0则是保留到整数位,负数则是十位以上的单位
2)TRUNC(n,m):用于截取数字
3)MOD(n,m):求余
4)CEIL(n),FLOOR(n):向上取整和向下取整
日期操作
注意:数据库中日期是可以计算的,对一个日期类型的值加上一个指定的数字,等于加上了指定的天数,返回的日期是计算后的日期,减去也同理,两个日期类型的值相减,差是相差的天数,日期越晚的越大
- DATE:表示日期,精度到秒,7个字节分别表示世纪年月日时分秒
- TIMESTAMP:时间戳,表示日期,精度到纳秒,前7个字节与DATE一致,后4个字节记录纳秒以下的精度
- 日期关键字:
*SYSDATE:本质是一个Oracle的内部函数,用来返回当前的系统时间,精确到秒,默认显示格式是DD-MON-RR,只有年月日并不显示时间
*SYSTIMESTAMP:是Oracle的内部日期函数,返回当前系统日期和时间,精确到毫秒 - 日期转换函数:
*TO_DATE(char,fmt):将字符串按照定制格式转换为日期类型
*TO_CHAR(date,fmt):将指定的日期按照指定的日期格式转换为字符串
- 注意:在日期格式字符串中,除英文与符号外的其他字符都应当使用双引号括起来,RR是2位数字表示年的日期格式中的关键字,RR与YY的区别在于,RR会根据当前系统时间自动判定世纪
- 常用函数:
1)LAST_DAY(date):返回日期所在月的最后一天
2)ADD_MONTHS(date,i):返回日期date加上i个月后的日期值
3)MONTHS_BETWEEN(date1, date2):计算两个日期之间相差的月数,用date1-date2换算
4)NEXT_DAY(date,i);返回的是距离给定的date最近的还没过的周几(或者说是给定日期之后一周内的周几),数字表示周几时,使用1-7之间的数字 ,1表示周日,2表示周一,以此类推
5)LEAST,GREATEST:比较函数,两个函数都可以有多个参数值,但参数类型必须一致,返回结果是参数列表中最小或最大的值
6)EXTRACT(date FROM datetime):提取给定日期中指定时间分量的值
空值操作
- 显式NULL插入和隐式NULL插入
- 判断NULL的条件:要使用IS NULL或IS NOT NULL判断,不要使用“=”判断空
- 非空约束:NOT NULL 是约束条件的一种,用于确保数据表中某个字段值不为空
- NULL的计算:NULL与字符串拼接等于无操作,与任何数字计算结果还是NULL
- 空值函数:
*NVL(P1,P2)若P1的值是NULL则函数返回P2,否则返回P1
*NVL2(P1,P2,P3)若P1的值不为NULL时函数返回P2,若为NULL则返回P3,P2与P3类型必须一样,可以与P1不一样