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)

五、类型转换

我是代码搬运工!!!
原文地址:https://www.cnblogs.com/FanKL/p/13596985.html