zoukankan      html  css  js  c++  java
  • oracle数据库的一些基本用法(sql的增删改查,对表的操作,索引,类型转换)

    一、SQL语句

    1.增

      (1)添加表的所有列的值

        insert into 表名 values(值1,值2,......);

      (2)添加表的部分列字段的值

        insert into 表名(列1,列2,......)values(值1,值2,......);

      (3)添加查询到表中的所有值

        insert into 表2 select * from 表1;

      (4)添加主键自增列

        insert into 表名 values(trim(to_char(SEQWQMASTERQ.Nextval,'00000000'),值2,......);

        就是将这个序列值的格式转换为字符,格式为'00000',例如'00006',trim()函数就是用于除字符串的行首和行尾的空格。

    2.删

      delete from 表名 where 列名 = '值';

    3.改

      update 表名  set 列名 = '要改的值' where 列名='条件值' 

    4.查

      (1)内连接查询

        select * from 表名1 inner join 表名2 on 表名1.a=表名2.a;

        select * from 表名1,表名2 where 表名1.a=表名2.a;

      (2)左连接查询

        select   a.*,b.*   from   a   left   join   b     on   a.id=b.parent_id;

      (3)右连接查询    

        select a.*,b.* from a right join b on a.id=b.parent_id

    二、对表的操作

    1.创建表

    -- Create table
    create table TS_GIFTPLAN_CONDITION_HIST
    (

    --primary key添加主键
    insertid VARCHAR2(64) primary key,

    --default sysdate默认时间值
    insertdt DATE default sysdate,

    insertusr VARCHAR2(32),

    --not null此字段不允许为null

    plancode VARCHAR2(32) not null,

    conditionid VARCHAR2(32) not null,
    conditiondesc VARCHAR2(256),
    premium VARCHAR2(2),
    amount VARCHAR2(2),
    brand VARCHAR2(2),
    insur VARCHAR2(2),
    maxpromotioncost VARCHAR2(32),
    maxpromotioncnt VARCHAR2(32)
    )
    tablespace APP_PICCTSDB  ----表放在APP_PICCTSDB表空间
    pctfree 10    ----保留10%空间给更新该块数据使用
    initrans 1     -----初始化事物槽的个数
    maxtrans 255   ----最大事务槽的个数
    storage    ----存储参数
    (
    initial 128K   ---区段一次扩展128k
    next 1M    
    minextents 1   ---最小区段数
    maxextents unlimited   --最大区段无限制
    );
    -- Add comments to the columns  为"maxpromotioncnt"字段添加备注
    comment on column TS_GIFTPLAN_CONDITION_HIST.maxpromotioncnt
    is '礼品最大点选数量';
    -- Create/Recreate indexes  为"INSERTID"字段添加普通索引

    --create index 索引名 on 表名(字段名)
    create index IDX_TGPCH_INSERTID on TS_GIFTPLAN_CONDITION_HIST (INSERTID);

    2.删除表

      (1)drop table 表名;

      作用:删除内容和定义,释放空间,表结构也会删除;

      (2)truncate table 表名;

      作用:删除内容、释放空间但不删除定义。与drop不同的是,他只是清空表数据而已,不删除表结构。truncate 释放空间的体现。

         truncate table 表 后 向test表添加数据,id标识列连续了(体现了truncate删除是释放空间)插入的字段的id重新从1开始递增 1、2、3.....

      (3)delete table 表名;    

      作用:删除整个表中的数据 表结构不会删除,但是过程是痛苦的(系统一行一行地删,效率较truncate低) 或delete table tb where 条件

            删除内容不删除定义,不释放空间。用delete删除 数据,然后添加。可以看到添加之后id标识不连续。(说明delete删除不释放空间)

         如果重新插入数据时对应的id在上次基础之上递增 4、5、6....

    3.修改表名

      (1)在原表上修改表名

      alert table 旧表名 rename to 新表名;

      (2)建新表2,将原表1的数据导进去;

      create table 表2 as select * from 表1;//在原表的基础上建立新表

      drop table 表1;//删除原表

    4.查询表是否存在

      (1)当前用户bai下是否有某个表

      select count(*) from user_tables where table_name = '表名';

      (2)某个用户下是否有某个表

      select count(*) from dba_tables where owner = '某个用户名' and table_name = '表名';

    三、列操作

      (增加新列并添加备注)

      ALTER TABLE TS_APPLYHIST ADD IDTYPE VARCHAR2(32);

      comment on column TS_APPLYHIST.IDTYPE
      is 'Id类型';

    修改已存在的列属性

    alter table 表名 alter column 字段bai 字段属性 not null;


    --修改列属性
    alter table ts_customerlabel modify contacthistcode null;

    四、索引

    1.查看表中的索引

      (1)查看oracle单个数据表包含的索引

       select * from user_indexes where table_name=upper('ts_insurinfo');

        upper这个函数是将小写转换成大写。

        第二个参数是索引的名字必须大写。

      (2)根据索引名查看索引包含的字段

         select * from user_ind_columns where index_name = 'INDEXS_NAME';

        索引名大写或者通过upper函数转换成大写。

    2.

    3.创建索引

      --普通索引    create index 索引名 on 表名(字段名)

      create index TS_INSURINFO_STARTDATE on TS_INSURINFO (STARTDATE);

      --唯一索引  create unique index 索引名 on 表名(字段名)

      create unique index idx_t_uniid on t(data_object_id)

    五、类型转换

    我是代码搬运工!!!
  • 相关阅读:
    Oracle数据库链Database links
    记录中文字符的烦恼
    oracle游标应用难点 sys_refcursor 和 cursor(转)
    C# Delegate类
    Oracle_merge into 中 using 后的查询表如果有参数的情况
    C# partial
    Excel快捷键
    时间格式的问题
    Ref_cursor
    .Net 引用命名空间
  • 原文地址:https://www.cnblogs.com/FanKL/p/13596985.html
Copyright © 2011-2022 走看看