java:LeakFilling (SQL,JDBC)

1.JDBC中的sql里面不能加 ;号,否则报错

2.Oracle数据必须提交后才可以使用JDBC进行操作,否则没有结果

3. JDBC插入序列:
    首先在sequences建一个序列
    insert into 表名(id,name) values(序列名.nextval,'hello')

 

4.oracle复制另外一张表结构到一张新表中

  create table newtable as select * from oldtable where 1=2

 

  这个sql只是把表结构copy过来  如果要把所有表结构和表数据都copy过来的话用下面的sql

  create table newtable as select * from oldtable

 

5.创建存储过程

 

  带(输出参数)返回值的存储过程:

 

    --删除存储过程

 

    DROP PROCEDURE IF EXISTS proc_employee_getCount

 

    --创建存储过程

 

    CREATE PROCEDURE proc_employee_getCount(out n int)

 

    BEGIN

 

    SELECT COUNT(*) FROM employee ;

 

    END

 

 

 

    --MYSQL调用存储过程

 

    CALL proc_employee_getCount(@n);

 

 

 

    带输入参数的存储过程:

 

    --删除存储过程

 

     DROP PROCEDURE IF EXISTS proc_employee_findById;

 

   

 

    --创建存储过程

 

    CREATE PROCEDURE proc_employee_findById(in n int)

 

    BEGIN

 

    SELECT * FROM employee where id=n;

 

    END

 

    --定义变量

 

    SET @n=1;

 

    --调用存储过程

 

    CALL proc_employee_findById(@n);

 

6.批量插入与删除:

  批量删除:

 

    DELETE FROM MyTable WHERE ID IN (1,2);

 

  批量插入:

    第一种方法:

 

      INSERT INTO MyTable(ID,NAME) VALUES(1,'123');
      INSERT INTO MyTable(ID,NAME) VALUES(2,'456');
      INSERT INTO MyTable(ID,NAME) VALUES(3,'789');

 

    第二种方法,使用UNION ALL来进行插入操作:   
      INSERT INTO MyTable(ID,NAME)
      SELECT 4,'000'
      UNION ALL
      SELECT 5,'001'
      UNION ALL
      SELECT 6,'002' ;
      比第一种要快!

 

    第三种方法 
      INSERT INTO MyTable(ID,NAME) VALUES(7,'003'),(8,'004'),(9,'005');

 

7.select  case when then:

 

  select id,name,

    (case  sex

      when  1 than '男'

      when  2 than '女'

      else  '空'

      end)  as  '性别'  

   form  s_students

 

  update s_students

    set  name=(

      select case

        when sex>0 then 0  //性别大于0  则为0

        when sex=0 then 1

        end as pass

        from  s_students

        where id=1

        )

      where  id =1 

 

 8.提取DATE类型:

  select count(1), extract(year from t.建档时间),extract(month from t.建档时间)
    from 诊疗项目目录 t
    group by extract(year from t.建档时间),extract(month from t.建档时间)
    order by extract(year from t.建档时间)

 

 

9.查询一行字段类型占多少字节:

select sum(
  (
    case data_type
      when 'DATE'
        then 7*DATA_LENGTH
      when 'VARCHAR2'
        then 1*DATA_LENGTH
      when 'NUMBER'
        then floor((DATA_LENGTH+1)/2)+1
      end
  )
)
  from all_tab_cols
  where table_name = tableName

 

 

 

10.Oracle数据导入:

---oracle dmp文件导入

--创建表空间
create tablespace UFGOV datafile 'E:\tablespace\UFGOV_1.DBF' 
size 200m
autoextend on
next 32m maxsize 2048m
extent management local; 

--创建临时表空间存储
create temporary tablespace UFGOV_TEMP tempfile 'E:\tablespace\UFGOV_TEMP_1.DBF' 
size 50M autoextend ON next 10M maxsize 100M; 

--创建用户
create user HNGAT identified by 123456 default tablespace UFGOV Temporary TABLESPACE UFGOV_TEMP;

--给所创建的用户赋予权限
grant connect,resource,dba to HNGAT;

--dos命令导入oracle数据        ignore忽略错误信息   fromuser(FD)将用户FD下的表导入到touser=(HNKJ) HNKJ用户下
imp HNKJ/123456@127.0.0.1:1521/orcl file="C:\Users\lenovo\Desktop\河南科技学院\FD.expdp.dmp" fromuser=(FD) touser=(HNKJ) log=y ignore=y full=y

impdp orcl/hnkj DIRECTORY=dir_dump DUMPFILE=FD.expdp.dmp

 

posted @ 2017-07-16 18:57  咫尺天涯是路人丶  阅读(286)  评论(0编辑  收藏  举报