Oracle数据库常用SQL

--------------------------表结构修改-------------------------------------

--增字段
ALTER TABLE 表名 ADD (字段1 VARCHAR2(50) DEFAULT '', 字段2 VARCHAR2(50) DEFAULT '');
COMMENT ON    COLUMN     表名.字段  IS '字段备注' ;
--删除字段
ALTER TABLE MES_SM_CODE DROP (AA,BB)
--修改字段类型
ALTER TABLE 表名 MODIFY (字段名 新类型);
--重命名字段
ALTER TABLE 表名  RENAME COLUMN 旧字段名 TO 新字段名

--------------------------表数据 增删改查--------------------------------------
--查询
SELECT * FROM 表名 ROWNUM<10 ;
--------------插入数据,要提交
INSERT INTO 表名 (字段1, 字段1) VALUES('12','12313');
COMMIT;
--------------修改数据,要提交
UPDATE 表名 SET 字段1='L30' WHERE ID='12';
COMMIT;
--------------删除数据,要提交
--先保存
CREATE TABLE 表名BK AS SELECT * FROM  表名 WHERE 字段='L20';
--删除
DELETE 表名 WHERE 字段='L30';
--后期恢复
INSERT INTO 表名 SELECT * FROM 表名BK;


---------------------------------------------------------------------------------
时间范围检索:
SELECT * FROM STUDENT_INFO WHERE NAME='lily' AND (AGE>0)
 AND ADD_TIME  BETWEEN  TO_DATE('2023-6-1 00:00:00','yyyy-MM-dd hh24:mi:ss' ) AND  TO_DATE('2023-10-31 23:59:59','yyyy-MM-dd hh24:mi:ss' )
ORDER BY ADD_TIME  ; 

时间排序取某一行:
SELECT *  
FROM (  
  SELECT t.*,  
         ROW_NUMBER() OVER (ORDER BY CREATE_DATE DESC) AS rn  
  FROM TAB_FR_RESULT t  
  WHERE   AREA_NAME ='1#'  AND EQUIP_CODE = 'E130501Z001' 
) WHERE rn < 10;
-----------------------------------------------------------------------------------------------------
两表关联修改数据
1,UPDATE TABLE1 SET TABLE1.VAL = 'OK' WHERE ID IN (SELECT ID FROM TABLE2 
2,UPDATE TABLE1 SET TABLE1.VAL = 'OK' WHERE EXISTS (SELECT 1 FROM TABLE2  WHERE ID=TABLE1.ID);

--------------SQL 添加索引--------------------------------------------------------------------
CREATE INDEX DATA_BASE.IDX_STUDENT_NO ON DATA_BASE.STUDENT(STUDENT_NO)
TABLESPACE DATA_BASE_DEFAULT_DATA
STORAGE (INITIAL 64 K
         MAXEXTENTS UNLIMITED)
LOGGING;

-------------------------------------- 建表 ---------------------------------
CREATE TABLE DATA_BASE.STUDENT(
  ID                         VARCHAR2(50 BYTE) NOT NULL,
  NAME                  VARCHAR2(50 BYTE),
  AGE                     NUMBER(8, 0)      DEFAULT 0 NOT NULL,
  CREATE_DATE                DATE              DEFAULT SYSDATE NOT NULL,

  CONSTRAINT PK_DATA_BASE_STUDENT_ID PRIMARY KEY (ID) USING INDEX TABLESPACE DATA_BASE_DEFAULT_DATA (INITIAL 64 K
                                                                 MAXEXTENTS UNLIMITED)
)
TABLESPACE DATA_BASE_DEFAULT_DATA
PARTITION BY RANGE (CREATE_DATE)
INTERVAL (NUMTOYMINTERVAL(1, 'MONTH'))
(
PARTITION P_MONTH_1 VALUES LESS THAN (TO_DATE(' 2023-07-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
);

CREATE INDEX DATA_BASE.IDX_STUDENT_NO ON DATA_BASE.STUDENT(STUDENT_NO)
TABLESPACE DATA_BASE_DEFAULT_DATA
STORAGE (INITIAL 64 K
         MAXEXTENTS UNLIMITED)
LOGGING;

COMMENT ON TABLE DATA_BASE.STUDENTIS '学生信息表';
COMMENT ON COLUMN DATA_BASE.STUDENTIS .NAMEIS '学生姓名';

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值