数据库创建

CREATE DATABASE dometest; USE dometest;

CREATE TABLE dometest.t_user( 
	Id Int Not Null Auto_increment , 
	name Varchar(512) ,  
	age Varchar(512) ,     
	Primary Key (id)  
);

 

 

唯一约束:

CREATE TABLE TBL_BLACKLIST
(
 mobile varchar2(100) not null ,
 mobileDesc  varchar2(128),
 constraint mobile_uk unique(mobile)
);

 

 

CREATE TABLE TBL_ORDER_TIME
(   
 ORDER_NO NUMBER(10),   
 PROM_ID NUMBER(8),   
 PROM_TYPE CHAR(1),
 AMOUNT NUMBER(8,2) default 0
); 

 

中文注释

 

comment on table TBL_ORDER_TIME is '工作表';
comment on column TBL_ORDER_TIME.ORDER_NO is '订单号';
comment on column TBL_ORDER_TIME.PROM_ID is '促销ID';
comment on column TBL_ORDER_TIME.PROM_TYPE is '促销类型';
comment on column TBL_ORDER_TIME.AMOUNT is '金额';

 

修改字段:

ALTER TABLE tb_book   CHANGE id id INT(11) NOT NULL AUTO_INCREMENT COMMENT 'id值';

 

 

 

create database bookshop;
use bookshop;

CREATE TABLE bookshop.tb_book( 
   id INT NOT NULL AUTO_INCREMENT COMMENT 'id主键', 
   bookName VARCHAR(215) COMMENT '书名', 
   bookContent VARCHAR(1025) COMMENT '内容描述', 
   bookPrice DOUBLE(10,2) DEFAULT '0' COMMENT '价格', 
   bookAuthor VARCHAR(215) COMMENT '作者', 
   PRIMARY KEY (id)
 )  

 

修改字段长度:

alter table tbl_invoice_log  modify ( log_content varchar2(200));

  

 

 增加字段:

 

  ALTER table tb_order add payCash varchar2(5);
ALTER TABLE shell_command ADD c_type INT(1) DEFAULT 0 COMMENT '1为手动执行,2为程序功能辅助';

 删除字段:

 

alter table tbl_refund drop column lostState

 

 

 

 删除重复记录

delete from tbl_member_report a
where (a.memberNo,a.opendate) in   
(select memberNo,opendate from tbl_member_report group by memberNo,opendate having count(*) > 1)
and 
rowid not in 
(select min(rowid) from tbl_member_report group by memberNo,opendate having count(*)>1)

 

修改字段名称

 

 

 alter table tbl_feifei rename column no to no_bak;

 

 

Oracle分页:

 

select * from
(select e.*,ROWNUM rn
from (select * from emp order by empno) e)
where rn between 1 and 10;


select * from
(select e.*,ROWNUM rn
from (select * from emp order by empno) e
where ROWNUM<=10)
where rn>=1;

 

 oracle 主键自增长:

 

create table simon_example
(
  id number(4) not null primary key,
  name varchar2(25)
)

-- 建立序列:

-- Create sequence 
create sequence SIMON_SEQUENCE                       
minvalue 1               
maxvalue 999999999999999999999999999  
start with 1 
increment by 1
cache 20; 

-- 建立触发器
create trigger "simon_trigger" before
insert on simon_example for each row when(new.id is null)
begin
 select simon_sequence.nextval into:new.id from dual;
 end;


 

CREATE SEQUENCE emp_sequence
  INCREMENT BY 1 -- 每次加几个
  START WITH 1 -- 从1开始计数
  NOMAXVALUE -- 不设置最大值
  NOCYCLE -- 一直累加,不循环
  NOCACHE -- 不建缓冲区

 

   备份表数据

 

INSERT INTO project_routine_user(routineId,userId)  SELECT id routineId , userId  FROM project_routine_error; 


SELECT * INTO application_bak FROM application  


CREATE TABLE application_bak (SELECT * FROM application);
CREATE TABLE oa_user_role_20130130 AS SELECT * FROM oa_user_role;

 

 

 

 创建索引:

CREATE INDEX index_project_delayrecord_projectSubId ON project_delayrecord (projectsub_id);
CREATE INDEX index_project_delayrecord_projectId ON project_delayrecord (project_id);

 

 IN 和 Exists

 

select * from oa_user u where exists (
select r.user_id from oa_user_role r where r.role_id = 73 and u.id = r.user_id group by r.user_id )

select * from oa_user u where u.id in  (
select r.user_id from oa_user_role r where r.role_id = 73  group by r.user_id )

 

 

 marge---oracle语句

 

MERGE INTO products p
 USING newproducts np ON (p.product_id = np.product_id)
   WHEN MATCHED THEN	--符合更新
     UPDATE SET p.product_name = np.product_name,
            p.category = np.category
        DELETE WHERE (p.category = 'ELECTRNCS')
   WHEN NOT MATCHED THEN		--不符合,插入
     INSERT VALUES (np.product_id, np.product_name, np.category)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(数据库)