oracle基本语句学习

1:oracle中不再使用像sqlserver和mysql中的int 而是用number表示数值类型

例:number(10)长度为10为的整型数字           number(8,2)8位整数2位小数的浮点数

2:如何将表中的整型字段的值转换成相应的文本字段(例如 0表示'出勤' 1表示'旷课' 2表示 '病假' 3表示'事假'  ) 以下语句是将查询出来的整型值转换成相应的意义文本

select (case when a.studywork=1 then '旷课' when a.studywork=0 then '出勤' when a.studywork=2 then '病假' else '事假' end) from attendance a

注意:只有一个else,并不是if‘’‘’‘’‘else’‘’‘if’‘’‘’‘’‘else的格式

3:日期格式的插入

insert into attendance  values(5,200651289,2,3,5,0,'a', to_date('2009-05-10 04:12:12',   'yyyy-mm-dd   hh24:mi:ss '));

在 mysql和sql server中不用to_date()就可以了。

to_date(a,b)是将字符串a转换成b的格式

4: 不同数据库选择前N条记录的方法各不相同,以下是6种:(摘自http://www.itpub.net/thread-127394-1-1.html
        1. ORACLE
        SELECT * FROM TABLE1 WHERE ROWNUM<=N
        2. INFORMIX
         SELECT FIRST N * FROM TABLE1
        3. DB2
         SELECT * ROW_NUMBER() OVER(ORDER BY COL1 DESC) AS ROWNUM WHERE ROWNUM<=N
         DB2
           SELECT COLUMN FROM TABLE FETCH FIRST N ROWS ONLY
        4. SQL SERVER
        SELECT TOP N * FROM TABLE1
         5. SYBASE
             SELECT TOP N * FROM TABLE1
          6. mysql:
          select * from table_name limit N

5:部分试验语句   

select studentname as 姓名,(case when studywork=1 then '旷课' when studywork=0 then '出勤' when studywork=2 then '病假' else '事假' end) as 出勤情况from attendance,student where attendance.studentid = student.   Studentid

 

select studentname as 姓名,teachername as 教师名,lessonname as 课程名,(case when studywork=1 then '旷课' when studywork=0 then '出勤' when studywork=2 then '病假' else '事假' end) as 出勤情况,attdatetime as 出勤日期

from attendance a,student b,teacherlesson c,teacher d,lesson e

where e.lessonid=c.lessonid and a.studentid=b.studentid and a.teacherid=c.teacherid and c.teacherid=d.teacherid

group by a.attdatetime,b.studentname,d.teachername,e.lessonname,a.studywork,a.attid where 中的必须全部包含在里面)

order by attid desc (此字段也必须在group by 中) 

6: 最后一定不要忘了commit(提交),在oracle中只有提交了数据才真正的被写入数据库,即使你用select能够查到你所更新的数据,但是当你再次登录的时候就会大失所望:啊,我的更新呢,我的插入呢,我白费了那么多时间了,恩。

 

 

未完待续

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值