数据库杂记

 

  一、约束 contraint
  
创建表时加主键约束
 [contraint contraint_name] 约束类型 (约束字段[,约束字段])
CREATE TABLE CUST_INTRO_CUST (
 PK1 VARCHAR2(36) NOT NULL,
 GXBH VARCHAR2(16) NOT NULL,
 JSKHM VARCHAR2(16) NOT NULL,
 JSKHMC VARCHAR2(60),
 CONSTRAINT P_CUST_INTRO_CUST_KEY PRIMARY KEY (PK1) );
foreign key(GXBH ) references B(GXBH )
 COMMENT ON TABLE CUST_INTRO_CUST IS '客户介绍客户登记簿';//表加注释
 COMMENT ON COLUMN CUST_INTRO_CUST.PK1 IS '主键';//字段加注释
 
 创建表后加约束
 alter 表名 add constraint 约束名称 约束类型 (约束字段[,约束字段])
 alter table  T1  add  constraint T1_P   PRIMARY KEY (NAME);// 主键 非空且唯一约束
 alter table T2  add  constraint T2_C   CHECK (AGE>20);// 对该字段数据约束
 alter table T3  add  constraint T3_U   UNIQUE (NAME);// 字段数据不重复约束
 alter table T4  add  constraint T4_D   DEFAULT 100000 FOR SALARY;// 约束字段默认值为100000
alter table 表2 add
consraint FK_a_b foreign key(uId) references 表1(uId)
 
创建表时对主键字段、唯一性约束的字段会自动创建索引;
CREATE INDEX INDEX_NAME ON TABLE_NAME (COLUMN[,COLUMN1]);
 
查找无名约束名
SELECT CONSTRAINT_NAME FROM USER_CONSTRAINS WHERE TABLE_NAME='T_N';
 
删除约束
ALTER TABLE T_N DROP CONTRAINT CONTRAINT_NAME.
 
二、mysql 与 oracle
mysql alter table 时是没有括号的,否则报错 判断不为空为 != null,在oracle中只能为in not null 
 
 
三、数据库返回数据格式
query查询返回list:List>
[{ABVPK= , CNNAME=公共管理、社会保障和社会组织, ID=S},
{ABVPK= , CNNAME=其他行业, ID=Z},
{ABVPK= , CNNAME=居民服务、修理和其他服务业, ID=O},
{ABVPK= , CNNAME=农、林、牧、渔业, ID=A}]
新循环中mapUnit.get(key)取每条数据的值
 数据库DML(insert,update,delete) 返回受影响的记录条数
 
 四、删表与删除表中数据
DROP TABLE T_N   删表
TRANCATE TABLE T_N  删除表中数据,不回滚,效率高
DELETE TABLE T_N  删除表中数据,一条一条删,效率低

 

五、连表查询

  JOIN = INNER JOIN

  LEFT JOIN = LEFT OUTER JOIN

  RIGHT JOIN = RIGHT OUTER JOIN

  FULL JOIN = FULL OUTER JOIN

 

六、将表A中n条数据插入表B中

insert into A (A.a,A.b,A.c) (select B.a,B.b,B.c from B where ...)

七、sql中查询语句where 1=1的作用

  方便继续添加查询条件

八、oracle merge命令  ------ 用B表的数据更新A表的内容

merge into A a
using B b
on a.x = b.y
when matched then
update set a.xx = b.xy
[when not matched then
insert values(b.a,b.b,b.c)]

 

posted @ 2016-12-08 10:20  一叶依然  Views(146)  Comments(0)    收藏  举报