西大 发表于 2018-9-10 11:25:45

【oracle】SQL基本写法


[*]  建表语句:
  CREATE TABLE DIC_ORG_ADDR(

  >  ORGAN_ID varchar(32) NULL,
  ORGAN_NAME varchar(32) NULL,
  ORGAN_ADDR VARCHAR(100) NULL,
  TYPE CHAR(1) NULL
  )
[*]  插入语句:
  insert into DIC_ORG_ADDR(ID,ORGAN_ID,ORGAN_NAME,ORGAN_ADDR,TYPE )
  values("1","01","公安局","黑空街200号","1")
  或是
  insert into DIC_ORG_ADDR(ID,ORGAN_ID,ORGAN_NAME,ORGAN_ADDR,TYPE )
  select * from OTHERS
[*]  删除语句:

  delete from DIC_ORG_ADDR where>
[*]  删除表语句:
  drop table DIC_ORG_ADDR
[*]  修改表结构:
  新增字段:
  ALTER TABLE DIC_ORG_ADDR
  ADD ( "valid" VARCHAR2(25) NULL )
  删除字段:
  ALTER TABLE DIC_ORG_ADDR
  DROP ( "TYPE" ) CASCADE CONSTRAINT
  GO
[*]  修改数据:

  updateDIC_ORG_ADDR set type='0' where>
[*]  查询语句:
  select * from DIC_ORG_ADDR
[*]  创建自增长序列:
  创建序列:

  create sequence>  创建触发器:(触发器名为trg_seq_pid ,在向DIC_ORG_ADDR表做 插入之前,
  使用id_seq.nextval自增长序列,使id字段自增长。这样插入的时候,主键不用输入数据库就会自动添加自增长的主键值了 )
  create or replace trigger trg_seq_pid BEFORE
  insert ONDIC_ORG_ADDR FOR EACH ROW
  begin

  select >  endtrg_seq_pid ;
  9.   字符串连接符:||
  select name||'%' fromusers;
  10.截取符:trunc
  select trunc(num,2) from users; 截取保留小数点后两位,不进行四舍五入
  11. case when
  update users set name = (case when name='张三' then '李四' else '无名' end) where name is not null;
  12.左连接:左边的表数据内容一定存在,右边连接的如果不存在则为null
  select * from INFO a left join RESULT d on a.id = d.resource_guid
  全连接:相当与where条件
  select * from INFO a join RESULT d on a.id = d.resource_guid
  13.转换为字符串: to_char()
  select * from users where to_char('create_time','yyyy-MM-dd')
页: [1]
查看完整版本: 【oracle】SQL基本写法