Oracle 常用语句

Oracle笔记



–/****************************************
– * *
– * 常用命令 *
– * *
– ****************************************/

value = value.Replace("’", “’’”);
value = value.Replace("&", “’||chr(38)||’”);

查询代码

– 查询代码 ----------------------------------------------------------------------------------------------------

select  *  FROM  COM_MERCHANT_MASTERTWO where  MERCHANT_ID  = '011907010170058'

 select   *    FROM    goods    where  name   like '%三星%' and  stat    =   '热点'
--查询  所有列  从    goods表     中  name列  包含   三星    且  stat列  为 “热点”   的数据

 select  id , name   FROM   goods  where g_status = '热点'  or (g_price >2000 And g_price<4500)
--查询  id列, name列  从   goods表   中  g_status为“热点” 或    g_price在2000~4500之间         的数据

 select g_id 商品编号 FROM egoods29 GROUP BY g_id HAVING sum(g_price* g_number)<6000 ORDER BY sum(g_price* g_number) DESC
--      id列   别名                                              订单总值小于6000    排列 根据    订单总值           降序(不加DESC为默认升序)

 select * FROM egoods29 where g_number in (15,20)
--                            G_NUMBER 为  15或20

 select extract(year from sysdate) - extract(year from g_Date) as 年数 FROM egoods29
--      (         现在年份        减           G_Date的年份    )别名

 select AVG(G_NUMBER) AS 平均数量 FROM egoods29 where T_ID = '01'            --(MAX最大值、MIN最小值、AVN平均值...)
--           所有T_ID = ‘01’的 平均 G_NUMBER值

 select * FROM egoods29 where rownum <= 3
--                             前3条信息

插入代码

– 插入代码 ----------------------------------------------------------------------------------------------------


Insert into GOODS29 values ('01','长虹?',null);

Insert into GOODS29 values ('03','中兴 V889D 9帝','15-2月 -12');

Insert into GOODS29 (G_ID,G_NAME) values ('02','诺基亚X2-00');
--           表名   (有内容的列) values (插入的内容)


修改代码

– 修改代码 ----------------------------------------------------------------------------------------------------


UPDATE TSETTLE_TRANS_TMP T SET T.ALIPAY_ORDER_CHILD = (SELECT MERCHANT_ORDER_NO FROM ONLINE_ORDER R WHERE R.TRADE_NO = T.ALIPAY_ORDER AND rownum <= 1) WHERE T.ALIPAY_ORDER= '4200000616202005318855196633' AND T.ALIPAY_ORDER_CHILD IS NULL AND GUODUIFLAG1 = '1'


UPDATE GOODS29 SET G_ID = '03' WHERE G_ID = '04';
--       表名     要修改的内容        修改这些

UPDATE egoods29 SET g_price = g_price + 10  WHERE T_ID = 01
--        将T_ID = ‘01’的G_PRICE值 + 10

UPDATE TSETTLE_TRANS_TMP T SET T.ALIPAY_ORDER_CHILD = (SELECT MERCHANT_ORDER_NO FROM ONLINE_ORDER R WHERE R.TRADE_NO = T.ALIPAY_ORDER AND rownum <= 1) WHERE T.ALIPAY_ORDER IS NULL
-- 联合修改

删除代码

– 删除代码 ----------------------------------------------------------------------------------------------------


DELETE FROM egoods29 WHERE G_ID = '010001'
--            表名          删除这些(条件)

创建主键

– 创建主键 ----------------------------------------------------------------------------------------------------


CONSTRAINT "GOODS29_PKg" PRIMARY KEY ("G_ID");
--           主键名称               捆绑的列

创建外键

– 创建外键 ----------------------------------------------------------------------------------------------------

默认值

– 默认值 ----------------------------------------------------------------------------------------------------

约束

– 约束 ----------------------------------------------------------------------------------------------------

新增列

– 新增列 ----------------------------------------------------------------------------------------------------


alter table 表名 add 新增字段名(类型+长度);
alter table asset_orders add remark varchar2(255);

其它命令

– 其它命令 ----------------------------------------------------------------------------------------------------


DROP DATABASE 数据库名 --删除数据库

建表代码

– 建表代码 ----------------------------------------------------------------------------------------------------


CREATE TABLE StreetTestTable(	
   num NUMBER(12),
   txt VARCHAR2(256), 
   createTime DATE
)

   CREATE TABLE GOODS29       --表名 GOODS29
   (	G_ID CHAR(6) PRIMARY KEY NOT NULL,               --主键(PRIMARY KEY) 不空
	G_NAME VARCHAR2(50) NOT NULL,
	T_ID CHAR(2) NOT NULL REFERENCES TYBE29(T_ID),   --外键 约束TYBE29表的T_ID列
	G_PRICE FLOAT(126) NOT NULL CHECK(G_PRICE>=0.5), --约束
	G_IMAGE VARCHAR2(100),                           --列名 类型(长度)
	G_STATUS VARCHAR2(10) default '热点',            --默认值
	G_DESCRIPTION VARCHAR2(1000)
   );
 
   COMMENT ON COLUMN GOODS29.G_ID IS '商品编号';  --别名

>  可以通过  ->  导出,去除里面的([ BYTE],[ ENABLE]...)

删表代码

– 删表代码 ----------------------------------------------------------------------------------------------------


DROP TABLE 表名;




其它命令

–/****************************************
– * *
– * 其它命令 *
– * *
– ****************************************/

序列

–序列---------------------------------------------------------------------------------------------------------


--创建序列
CREATE SEQUENCE  "SEQ_LOGID29"  MINVALUE 1 MAXVALUE 99999 INCREMENT BY 1 START WITH 1001 CACHE 20 NOORDER NOCYCLE ;
--                 序列名称           最小值       最大值             增量          起点 高速缓存  NO周期  NO顺序
--使用序列
Insert into log29 values (SEQ_LOGID29.nextval,'李四');
--插入代码 获取序列值,序列值会自动递增,不会重复

同义词

–同义词---------------------------------------------------------------------------------------------------------


--赋予创建同义词权限
GRANT CREATE SYNONYM TO SCOTT
--创建同义词           ( 同义词G 同等于 表GOODS )
CREATE OR REPLACE SYNONYM "SCOTT"."G" FOR "SCOTT"."GOODS";
--使用同义词
select * from g

PL/SQL命令块

–PL/SQL命令块---------------------------------------------------------------------------------------------


SET SERVEROUTPUT ON
DECLARE /*定义部分*/
  v_name VARCHAR(20);
BEGIN /*执行部分*/
  BEGIN
    v_name := ' XXX';
  END ;
  DBMS_OUTPUT.PUT_LINE( v_name );
--EXCEPTION/*异常处理部分*/
--  DBMS_OUTPUT.PUT_LINE('出错');
END;

视图

–视图---------------------------------------------------------------------------------------------


--赋予SCOTT创建视图权限
GRANT CREATE VIEW TO SCOTT;

--创建视图1
CREATE OR REPLACE FORCE VIEW "VQ0129" AS select * FROM egoods29 where g_name like '%三星%';
--创建  如果有重名-覆盖 视图    名         代码...

索引

–索引---------------------------------------------------------------------------------------------


--2. 在GOODS学号表中创建基于g_name的唯一、降序索引 ix_n学号
CREATE UNIQUE INDEX ix_n29 ON egoods29(g_name DESC)
--创建   唯一   索引    名   从   表名      列    排序        -p151

--3.在GOODS学号表中创建基于g_price的位图索引 ix_p学号
CREATE BITMAP INDEX ix_p29 ON egoods29(g_price) 
--创建   位图   索引    名   从   表名      列  

查询触发器

–查询触发器--------------------------------------------------------------------------------------------


SELECT * FROM DBA_OBJECTS WHERE OBJECT_TYPE='TRIGGER'and OBJECT_NAME = '触发器名称';


复杂UPDATE


UPDATE ONLINE_REFUND_REQUEST request
SET (IS_REFUND_SUCCESS, LAST_REFUND_RESPCODE, OLD_TRANSACTION_ID, LAST_REFUND_TIME, REFUND_ORDER_NO, REFUND_REAL_FEE, REFUND_REAL_TYPE) = (
    SELECT 'Y' as IS_REFUND_SUCCESS, ttt.RESPCODE, ttt.ALIPAY_ORDER, ttt.SETTLETIME, 
        concat(SUBSTR(request.OLD_ORDER_NO, 0, 20),ttt.REFNO), request.REFUND_REAL_FEE, 
        CASE WHEN  request.PAY_TYPE LIKE '%ALIPAY%' THEN 'MOP' ELSE 'CNY' END
    FROM tsettle_trans_tmp ttt 
    WHERE ttt.ALIPAY_ORDER_CHILD = request.OUT_REFUND_NO AND rownum <= 1
)
WHERE REQUEST_TIME > to_date('2020-12-07 00:00:00','yyyy-mm-dd hh24:mi:ss') 
    AND REQUEST_TIME < to_date('2020-12-31 23:59:59','yyyy-mm-dd hh24:mi:ss') 
    AND LAST_REFUND_RESPCODE <> '00'
    AND (SELECT COUNT(1) FROM tsettle_trans_tmp ttt2 WHERE ttt2.ALIPAY_ORDER_CHILD = request.OUT_REFUND_NO AND ttt2.RESPCODE='00') > 0




Oracle转SQL

–/****************************************
– * *
– * Oracle转SQL *
– * *
– ****************************************/


--单击GOODS里面的SQL ( 清除 "SCOTT".、 BYTR、 ENABLE、" )

  CREATE TABLE GOODSC29 
   (	G_ID CHAR(6) PRIMARY KEY NOT NULL, 
	G_NAME NVARCHAR(50) NOT NULL, --(VARCHAR2 换 NVARCHAR )
	T_ID CHAR(2) NOT NULL, 
	G_PRICE FLOAT(53) NOT NULL, --(126 换 53)
	G_DISCOUNT FLOAT(53) NOT NULL, 
	G_NUMBER SMALLINT NOT NULL,    --(NUMBER(*,0) 换 SMALLINT)
	G_PRODUCEDATE datetime NOT NULL,  --(DATE 换 datetime)
	G_IMAGE NVARCHAR(100), 
	G_STATUS NVARCHAR(10) NOT NULL, 
	G_DESCRIPTION NVARCHAR(1000)
   );

--右键GOODS导出数据/INSERT (不要自动换行)、(清除(列)、to_timestamp(、,'DD-MON-RR HH.MI.SSXFF AM'))、(日期 30-9月-16 改 2016-09-30 )

Insert into GOODSC29  values ('010001','诺基亚6500 Slide','01',1500,0.9,20,2016-09-30,'pImage/010001.gif','热点','彩屏,1600万色,TFT,240×320像素,2.2英寸');

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值