oracle基础攻略

--创建数据库表结构
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()函数:日期转换函数
 

猜你喜欢

转载自ceoajun.iteye.com/blog/1431837