oracle入门之 DDL数据定义语句(一)

还是假设有以下表
雇员表s_emp                                                                    
id    name(员工名字)     mid(上级领导的id)          deptid(部门的id)           start_time(入职时间)          
1      tom                                                   null                      null                            11-2月-09                        
2      jerry                                                      1                        1                             23-11月-12                       
3      hyman                                                  1                        2                             23-1月-12
4      lily                                                          2                       1                             06-8月-10
5      jim                                                          2                       1                             29-11月-13

一、create语句用于创建一个table

1、oracle中的数据类型

(1)数字类型number
(2)变长字符串类型varchar2(n)
   n即为可变的最大的字符串的长度,如varchar2(20),表示字符串串最多20个字符。
(3)定长字符串类型char(n)
   n表示定长字符串的长度,如char(20)表示字符串含有20个字符,不足20个用空格补齐。
(4)时间类型date
  1)日期默认的表现形式:DD-MM-YY,即日-月-年,年是双位。如要表示2015年4月27日,则oracle会默认显示成27-4月-15;
如,查询tom的入职日期:
select   start_time from s_emp where id=1;
结果显示:11-2月-09;
  2)该表日期的默认显示格式to_char(日期数据,‘日期格式’);
    日期格式有以下:
    yyyy:4位年
    mm:2位月
    dd:2位日
    hh24:24小时制
    hh12:12小时制
    mi:分
    ss:秒
    day:星期几
    mon:英文月缩写
    month:英文月全写
    pm:上下午(上午am,下午pm)
如,插叙tom的入职日期:
select to_char(start_time,'yyyy-mm-dd,hh24:mi:ss') from s_emp where id=1;
结果 2009-02-09 00:00:00
  3)如何存日期
  a、按照默认的方式存入
  如,insert into s_emp (start_time) values ('27-4月-15');
  b、使用sysdate存入系统的当前时间
  如,inset into s_emp (start_time) values (sysdate);
  c、使用to_date存入制定的时间,to_date把指定的字符串转换成时间
  如,insert into s_emp (start_time) values (to_date('2015-04-27 12:10:32','yyyy-mm-dd dd24-mi-ss'));
  d、日期的调整
  
  当前时间加1天:
  insert into s_emp (start_time) values (sysdate+1);
  
  当前时间加1分
  insert into s_emp (start_time) values (sysdate+1/(24*60));/* 1天被分成24小时,每小时被分成60分,加小时、秒数类似*/
  
  当前时间加n个月
  insert into s_emp (start_time) values (add_months(sysdate,2));/* 在当前时间之上增加两个月 */
  add_months(时间,n);可以实现在该时间的基础之上增加n个月。
  
  计算两个时间点相差多少月
  months_between(时间1,时间2);
  如,计算tom入职了多少个月
  select months_between(sysdate,start_time) from s_emp where id=1;
  
  某个月的最后一天last_day(时间);
  如,查看这个月的最后一天:
  select to_char(last_day(sysdate),'yyyy-mm-dd') from s_emp;
  
  下一个星期几是什么时间next_day(时间,'星期几');
  如,查看下一个星期五是哪天:
  select to_char(next_day(sysdate,'friday'),'yyyy-mm-dd') from s_emp;
  
  对日期的四舍五入和截取
  四舍五入round(时间,'四舍五入单位');若‘四舍五入单位‘缺省,默认按照天进行四舍五入
  如,按照月对当前的时间进行四舍五入,
  select to_char(round(sysdate,'mm')) from s_emp;如当前时间是2015年4月27日,则四舍五入后的日期为:2015年5月1日
  
  截取 trunc(时间,'截取单位');若‘截取单位‘缺省,默认按照天进行截取
  如,按照月对当前的时间进行截取,
  select to_char(trunc(sysdate,'mm')) from s_emp;如当前时间是2015年4月27日,则截取后的日期为:2015年4月1日

2、创建表

  create table 表名字(字段1 字段类型,字段2 字段类型,...);
  如,要创建s_emp表:
  create table s_emp(id number,name varchar2(30),mid number,deptid number,start_time date);
  

二、删除表

  drop table 表名字;
  如,要删除s_emp表
  drop table s_emp;
  

三、修改表

   alter table 表名字...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值