数据库杂记
一、约束 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)取每条数据的值
新循环中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)]