Oracle笔记
增加主键 ALTER TABLE Persons ADD CONSTRAINT pk_PersonID PRIMARY KEY (Id_P,LastName) 组合主键
撤消主键 ALTER TABLE Persons DROP CONSTRAINT pk_PersonID
增加行 INSERT INTO Persons VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing');
删除行 DELETE FROM 表名称 WHERE 列名称 = 值;
修改行 UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson' ;
增加列 ALTER TABLE table_name ADD column_name datatype;
删除列 ALTER TABLE table_name DROP COLUMN column_name;
修改列 ALTER TABLE table_name ALTER COLUMN column_name datatype (oracle中:alter table serm_Appv_opinion modify appv_result varchar2(40););
排序 select * from scms_appl where pri_cust_id=10001947 order by appl_id desc; 根据指定的列对结果集进行排序。
UNION 合并两个或多个 SELECT 语句的结果集。UNION内部的 SELECT 语句必须拥有相同数量、顺序、数据类型的列。
左连接 SELECT column FROM table1 LEFT JOIN table2 ON table1.column=table2.column; (左表那里返回所有的行,即使在右表中没有匹配的行。)
不重复 SELECT DISTINCT 列名称 FROM 表名称; 列名重复的当做一条显示
最大值 select MAX(Evaldt) from serm_cr_main
查询为空 SELECT * FROM TAB WHERE COL1 IS NULL; is not null;
start with...connect by prior
不等于 m.status not in ('9')
模糊查询 like '%%' 貌似只能是单引号
to_char 日期转字符:to_char(m.evaldt,'yyyy')
to_date 把字符串转换为数据库中的日期类型(后面指定的类型)转为日期 to_date(t.cometime, 'yyyy-mm-dd hh24:mi:ss')
subStr() to_date(substr(#evaldt#,1,10),'yyyy-MM-dd')
计算器 select 2600000.00-2300000.00 from dual
M/O(Mandatory or Optional): “Mandatory”表示此查询字段必填;“Optional”表示此查询字段可选。
NUMBER(p,s) 长度16,小数位数为5
lower('KkK') Upper('KkK'); 忽略大小写
视图
select语句查询出来的东西,不放到表里去的,抽象的概念,一般都以V_开头
事务
数据库中每一个操作都是在一个事务中,delete一条数据,但并不代表删除了,还得提交事务才行,或者回滚到删除前的状态,否则会卡住数据库。
做sermAppvOpinion的时候,在数据库中删掉一条数据,但是在页面查询时还是能出来,原来是自己没提交。
组合主键
两个字段共同约束这个表,就是只要一提到主键,总是这两个字段同时出现
例如:cust_id,appl_id共同约束;主键不能重复;当cust_id和appl_id都为1时,1,1共同约束,下一个可以是1,2但不能再是1,1了
建表时:constraint serm_Appv_opinion primary key(appv_opinion_id,appl_id)
建表后:先删掉之前的约束, 再 alter table serm_Appv_opinion add constraint PK_serm_Appv_opinion primary key(appv_opinion_id,appl_id);
PL/SQL
查看:只读;用编辑
存储过程命名不能过长,会报错
编译,测试