--------------------------表结构修改-------------------------------------
--增字段
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 '学生姓名';