--创建数据库表结构 create table product( product_name varchar2(25), product_price number(4,2), quantity_on_hand number(5,0), last_stock_date date ); --插入数据 insert into product values('Small Widget',99,1,to_date('2006-6-15','yyyy-MM-DD')); insert into product values('Medium Wodget',75,1000,to_date('2005-3-25','yyyy-MM-DD')); insert into product values('Chrome-Phoobar',50,100,to_date('2005-6-6','yyyy-MM-DD')); insert into product values('Round Chrome Snaphoo',25,10000,to_date('2007-6-28','yyyy-MM-DD')); insert into product values('KFC',23,1120,to_date('2006-8-13','yyyy-MM-DD')); insert into product values('MaiDanLo',99.98,120,to_date('2007-5-4','yyyy-MM-DD')); insert into product values('HaGenDSi',45.68,1,to_date('2006-7-8','yyyy-MM-DD')); --创建数据库表结构 create table purchase( product_name varchar2(25), salesperson varchar2(3), purchase_date date, quantity number(4,2) ); --插入数据 insert into purchase values('Small Widget','CA',to_date('2006-6-12','YYYY-MM-DD'),1); insert into purchase values('Medium Wodget','BB',to_date('2006-7-16','YYYY-MM-DD'),75); insert into purchase values('Chrome Phoobar','GA',to_date('2007-6-3','YYYY-MM-DD'),2); insert into purchase values('Small Widget','GA',to_date('2006-9-24','YYYY-MM-DD'),8); insert into purchase values('Medium Wodget','LB',to_date('2006-12-12','YYYY-MM-DD'),20); insert into purchase values('Round Chrome Snaphoo','CA',to_date('2007-4-16','YYYY-MM-DD'),5); /********************************* 常用的单行函数 **********************************/ --系统变量:SYSDATE,SYSTIMESTAMP,CURRENT_DATE,CURRENT_TIMESTAMP,USER -- sysdate:返回当前日期和时间 select sysdate from emp; --可以用该变量做数据的插入操作。 insert into purchase values('Small Widget','CA',sysdate,12); --可以通过增加或减少天数对当前的日期进行简单的操作 insert into purchase values('Small Widget','CA',sysdate-30,12); --SYSTIMESTAMP :返回数据库当前日期和时间 --CURRENT_DATE:返回本地计算机当前日期和时间 --CURRENT_TIMESTAMP:返回本地计算机当前日期和时间 --user: 返回Oracle用户的ID select user from dual; /*************************************** 数字函数 ***********************************/ --round(input_value,decimal_places_of_pricision)函数:将数字四舍五入到指定的精确程度 select product_name, round(product_price) from product; select round(1234.5678,4) from dual; --trunc(input_value,decimal_places_of_pricision)函数:数字截取函数,与round函数不同的是将不会进行四舍五入的操作 select trunc(1234.5678,2) from dual; /****************************************** 文本函数 *************************************/ --upper():文本的答谢转换函数 select upper(product_name) from product; --lower():文本的小写转换函数 select lower(product_name) from product; --initcap():使串中的所有单词的首字母变为大写的函数 select initcap(product_name) from product; --length():确定串的长度 select product_name,length(product_name) NAME_LENGTH from product where length(product_name)>15 order by product_name; --substr(source_text,start_position,number_of_character):获取字符串的子串 select substr('iloveyou',1,5) from dual; --instr():查找指定的文本,并返回该文本在串中的起始位置,通常可与substr结合使用。 select substr(product_name,1,instr(product_name,'-',1)-1) First, substr(product_name,instr(product_name,'-',1)+1,30) Sec from product where product_name='Chrome-Phoobar'; --Ltrim(column_name),rtirm(column_name)函数:分别是从串的开始和结尾部分删除空格 select ltrim(' china') from dual; /*********************************************** 日期处理 ***************************************/ --SYSDATE系统变量和Trunc()截取函数的使用:用sysdate操作数据时,带有系统的时间部分,用trunc()截取函数可以截取掉系统的时间部分,而只显示日期部分 insert into purchase values('Small Widget','CA',trunc(sysdate),22); delete from purchase where trunc(purchase_date)=to_date('2007-10-8','YYYY-MM-DD'); --add_months(start_date,number)函数:从开始日期start_date中添加或者删除相应的月份。 select add_months(trunc(sysdate),3) from dual; --months_betweeen(date_1,date_2)函数:返回两个日期之间的月份数 select months_between(trunc(sysdate),last_stock_date) from product; --可以使用round()函数包围在外面 select round(months_between(trunc(sysdate),last_stock_date)) from product; -- 插看自己出生了多少个月 select round(months_between(sysdate,to_date('1986-11-30','YYYY-MM-DD')))from dual; /******************************************** 数据类型的转换 ****************************************/ --to_char(input_value,'format_code')函数:用于将日期,时间或者数字转换为文本 格式化日期和时间值: select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual; 格式化数字值:使数字的显示方式标准化。 select product_name, to_char(product_price,'$99,999.00') "price", quantity_on_hand from product; --to_char()函数:日期转换函数