ORCL基础总结

来源:互联网 发布:离线阅读小说软件 编辑:程序博客网 时间:2024/06/05 16:03

从零开始学ORCL

 

逻辑符号 与
ORACL          SQL
||  concat           ‘+
<>                      !=
order by asc(默认 低到高) desc高到底
select * from gal  order by sal asc, id desc
function
字符 select UPPer('galgal') from dual;
         where name=upper("gal")
Lower
         initcap() 首字母大写 eg  Hello World
         substr(name,1,2)
         substr(name,-3,3)去后3位
         length(name)
         replace(“hello”,“l","x")
数值函数
四舍五入

       round(456.4555,2)  456.46   
        round(456.4555,-2)  500
截断小数点

        trunc(456.789)  456
        trunc(456.789,2)  456.78
        trunc(456.789,-2)  400
        mod(10,3)  1
日期函数    
         date-data=date
         date+data=date
         date-date=data(天数)

select sysdate from dual 当前日期 24-9月 -13

       months_between( hiredate,firedate)  给定日期的月数
          add_months(sysdate,4)  指定日期急加4 个月
       next_day(sysdate,“”)
       select next_day(sysdate,'星期一') from dual; 
       sysdare 的下个星期一的日期 30-9月 -13

        last_day() 给定日期月的最后一天

转换函数
        to_char(sysdate,'yyyy-mm-dd')
        to_number()
        to_data()
select to_char(sysdate,'yyyy'),to_char(sysdate,'mm'),to_char(sysdate,'dd'),    sysdate from dual;
2013     09   24   24-9月 -13
select to_char(sysdate,'yyyy-mm-dd')from dual;
--去除前导0
select to_char(sysdate,'fmyyyy-mm-dd')from dual;

select to_char(sal,'$99,999') from fal    1,500
$  美元
L: 当地货币

select to_number('123')+to_number('123') from dual   246

select to_date('2009-02-22','yyyy-mm-dd') from dual  
22-2月 -09
通用函数
select nvl(sal,0) from dual;
decode()类似于if else  case  when  then
select decode(1,1,'内容是1',2,'neiron shi 2',3,'neirong shi 3') from dual;
内容是1
select decode(job,'clerk','yewuyuan','analyst','fenxiyuan') from gal;
分组
1
1.如果使用了group by  可将分组条件一起查询出来
2.如果不使用分组,则只能使用分组函数
3.使用group by时,不能出现分组函数 和分组条件之外的字段

select deptno,AVG(sal) from EMP group by deptno having sum(sal)>1

 

 

事务处理 保证数据操作的完整性
ORACLE 中每连接一个窗口 就会建立一个与数据库链接的session
即 每个链接到db的用户都表示创建了一个session
一个session 对db所作的修改,不会立刻反映到数据库的真实数据之上,是允许回滚的,
当一个session提交所有的操作之后,数据库才真正的做出修改

提交事务  commit 数据提交无法回滚
回滚事务  rollback
死锁
一个session 更新了数据库,其他session不能进行操作此表
要等待对方提交之后才能更新

clob 大对象,表示大文本数据,一般可以存放4G文本
BLOB 大对象,表示二进制数据,最大可以存放4G,eg 电影 歌曲 图片

alter table modify(name,varchar(30),default ’gal')
rename table gal to newgal

alter table T_ROAD_CROSSINGINFO modify crossingid varchar(20);
commit;
alter table t_road_crossinginfo
add column cid varchar(20)
alter table t_road_crossinginfo
drop column cid




截断表
删除表数据,同时不需要回滚  可以立刻释放资源
truncate table gal
约束
主键约束 primary key
create teble gal(....,constraint gtable_pid_pk primary key(pid))
唯一约束 create table gal(naem varchar(90) unique not null)
constraint gtable_name_uk uique(name)
检查约束 age number(3) not null  check(age between 0and 100)
sex varchar(2) not null default ’nan' check (sex in('nan','nv'))
constraint gtable_age_ck check(age between 0and 100)
constraint gtable_sex_ck check (sex in('nan','nv'))

非空约束 not null

外键约束 constraint gtable_bookid_fk foreign key(bookid) references person(pid)


alter table gal add constraint table_field_pk primary key(pid)
alter table gal add constraint table_name_uk unique(pid)
alter table gal add constraint table_age_ck check(age between 0 ang 100)


alter table gal add constraint table_field_pk primary key(pid)
alter table galchild add  constraint galchild_cid_fk foregin key(cid) references gal(pid) on delete casede

alter table gal drop constraint gal_name_ck  

 CREATE INDEX idx_dBegin_FileList ON FileList(dBegin);


    
 select * from v$session where username is not null;

 

赋值

 1    通过  select name into var from tname;
  2    通过  var:=sal*0.008 




0 0
原创粉丝点击