oracle数据库

select systimestamp from dual;
--查询伪列
select rownum,emp.* from emp
select rowid,emp.*from emp
--建表
create table java1203(
       sname varchar2(20),
       ssex char(2),
       sbirthday date,
       sage int)
drop table java1203

select * from java1203

--约束建表
create table java1203(
       ssid int primary key,--主键约束
       sname varchar2(20) not null,--非空约束
       ssex char(3) check(ssex in ('','')),--检查约束
       sstatus int default(1),--默认值约束
       sbirthday date,
       idcard varchar2(20) unique--唯一约束       
       )
insert into java1203 values(1,'蔡志浩','',2,to_date('2005-01-01','yyyy-MM-dd'),'111')
create table class1203(
       cid int primary key,
       ssid int,
       foreign key(ssid) references java1203(ssid)--外键约束
       )
--复制表结构(不包含数据)
create table ajava1203 as select * from java1203 where 1=2;
select * from ajava1203
--复制整张表
create table bjava1203 as select * from java1203
create table cjava1203 as select ssid,sname from java1203
select * from cjava1203
--插入其他表中的数据
create table emp03 as select * from emp where 1=2;
insert into emp03 select * from emp where sal>3000;
select * from emp03
--创建用户并获取权限
create user aa identified by 123456;--创建用户
grant connect,resource to aa;--授予权限

--全外连接
select * from emp
select * from dept
select ename,job,mgr ,sal,dname from emp full join dept on emp.deptno=dept.deptno
-- from 子查询
select dname from
(select * from dept where deptno>20)
where deptno>30
-- 分页查询
select rownum,ename,sal,job,comm from emp
where rownum>=1 and rownum<=4;
select ('员工编号为'||empno||'姓名为'||ename) from emp
--字符函数
select initcap(lower(ename)) from emp
select ename,decode(deptno,20,'产品部',30,'开发部')as 部门 from emp;
--计算年份差
select extract(year from sysdate) -
extract(year from to_date('1997-08-08','yyyy-MM-dd'))from dual
--转换函数
select to_char(0.123,'$0.9999') from dual;
SELECT TO_CHAR(sysdate,'YYYY"年"fmMM"月"fmDD"日" HH24:MI:SS') FROM dual;  
select to_number('100')+1 from dual;
--其他函数
select * from emp
select ename,(sal+nvl(comm,0))as 总工资 from emp;
--分析函数
--row_number()
select emp.*,row_number() over(order by sal desc)as num from emp
--rank()
select emp.*,rank() over(order by sal desc)as num from emp;
--dense_rank()
select emp.*,dense_rank() over(order by sal desc)as num from emp;
--创建同义词
CREATE  USER  test  IDENTIFIED  BY  test;
GRANT  CONNECT , CREATE  SYNONYM TO test;
GRANT  SELECT   ON   SCOTT.EMP  TO test;
GRANT  DELETE  ON   SCOTT.EMP TO test;
GRANT  UPDATE  ON  SCOTT.EMP TO test;
--创建同义词
create synonym staff for scott.emp;
select * from staff;
--创建公有同义词
CREATE   PUBLIC   SYNONYM  pub FOR  SCOTT.emp;
select * from pub
--创建序列
create sequence seq_java1203
Start with 1
increment by 1;
select * from java1203;
delete from java1203;
--利用序列实现自增 
insert into java1203 values(seq_java1203.nextval,'黑寡妇','',1,sysdate,seq_java1203.curral)
--创建视图
create view emp_dept as select empno,ename,job,mgr,emp.deptno,dname,loc from emp join dept on emp.deptno=dept.deptno;
grant create view to scott;
select * from emp_dept
--创建索引
create table t_testseq
(
  id number,
  name varchar2(10)
);
create sequence seq_value
start with 1
increment by 1;

BEGIN
    FOR  v_temp  in  1..100000  LOOP
    INSERT  INTO  t_testseq
     values(seq_value.nextval,'abcde');
    END LOOP;
END;
--0.039
select * from t_testseq where id=8900;
create index test_index on t_testseq(id);
select * from t_testseq where id=8900
declare
     i number default 99;
 begin
   i:=i+1;
   dbms_output.put_line(i);
  end;
  call getarea2(5,6)
原文地址:https://www.cnblogs.com/quanjunkang/p/10795788.html