Oracle数据操作

01 不指定字段的整行插入

INSERT INTO STU
VALUES('120007','王平','女',24,'12外语');
COMMIT;
--对于不指定字段整行插入格式,INSERT语句中VALUES子句中的值的顺序,数据类型及其约束必须要与待插入表的字段一致

02 指定字段的整行插入

INSERT INTO STU
(NO,NAME,GENTLE,AGE,DEPT)
VALUES('120008','张伟','男',26,'12计算机');
COMMIT;
--为确保插入数据值能够于目标表字段一一对应,一般建议使用指定字段插入格式

03 插入空值

INSERT INTO STU
(NO,NAME,GENTLE,AGE)
VALUES('120010','孙悟空','男',0);
COMMIT;
--省略指定字段插入空值时,该字段必须符合可空约束

04 使用过程插入多行

BEGIN
INSERT INTO STU
(NO,NAME,GENTLE,AGE,DEPT)
VALUES('120011','猪八戒','男',99,'高老庄');
INSERT INTO STU
(NO,NAME,GENTLE,AGE,DEPT)
VALUES('120012','罗志祥','男',36,'时间管理多人运动');
COMMIT;
END;

05 使用INSERT SELECT语句插入

INSERT INTO STU
SELECT '120013' AS NO,'陈冠希' AS NAME,'男' AS GENTLE,40 AS AGE,'高级摄影技能' AS DEPT FROM DUAL;
COMMIT;

06 修改数据

UPDATE STU
SET NAME = '陈冠希EDC'
WHERE NAME = '陈冠希';
COMMIT;

07 删除数据

DELETE FROM STU 
WHERE NO = '120011';
COMMIT;
--不指定WHERE将删除所有数据

08 使用TRUNCATE清空表

TRUNCATE TABLE GRADE;
--TRUNCATE是DLL指令,向其他所有的DDL指令一样,将隐式提交事务,不能使用ROLLBACK恢复数据

09 MERGE INTO

MERGE INTO STU A
USING (SELECT 
        '120012' AS NO,
        '罗志祥' AS NAME, 
        '男' AS GENTLE,
        30 AS AGE,
        '时间管理多人运动' AS DEPT
       FROM DUAL)T ON (A.NO=T.NO)
WHEN MATCHED THEN 
UPDATE SET A.NAME=T.NAME, A.GENTLE=T.GENTLE, A.AGE = T.AGE, A.DEPT = T.DEPT
WHEN NOT MATCHED THEN
INSERT(A.NO, A.NAME, A.GENTLE, A.AGE, A.DEPT)
VALUES(T.NO, T.NAME, T.GENTLE, T.AGE, T.DEPT);
COMMIT;
--如果ON中指定列存在并满足MATCHED则将USING指定值更新表中NO指定行数据,否则NOT MATCHED将插入数据;实现有INSERT OR UPDATE需求
ALTER TABLE WEICK.STU
 DROP PRIMARY KEY CASCADE;

DROP TABLE WEICK.STU CASCADE CONSTRAINTS;

CREATE TABLE WEICK.STU
(
  NO      VARCHAR2(10 BYTE),
  NAME    VARCHAR2(10 BYTE),
  GENTLE  VARCHAR2(2 BYTE),
  AGE     NUMBER(2),
  DEPT    VARCHAR2(20 BYTE)
)
TABLESPACE USERS
PCTUSED    0
PCTFREE    10
INITRANS   1
MAXTRANS   255
STORAGE    (
            INITIAL          64K
            NEXT             1M
            MINEXTENTS       1
            MAXEXTENTS       UNLIMITED
            PCTINCREASE      0
            BUFFER_POOL      DEFAULT
           )
LOGGING 
NOCOMPRESS 
NOCACHE
MONITORING;


CREATE INDEX WEICK.INDEX_NAME_RE ON WEICK.STU
(NAME)
LOGGING
TABLESPACE USERS
PCTFREE    10
INITRANS   2
MAXTRANS   255
STORAGE    (
            INITIAL          64K
            NEXT             1M
            MINEXTENTS       1
            MAXEXTENTS       UNLIMITED
            PCTINCREASE      0
            BUFFER_POOL      DEFAULT
           );

CREATE INDEX WEICK.INDEX_NO_DEPT ON WEICK.STU
(NO, DEPT)
LOGGING
TABLESPACE USERS
PCTFREE    10
INITRANS   2
MAXTRANS   255
STORAGE    (
            INITIAL          64K
            NEXT             1M
            MINEXTENTS       1
            MAXEXTENTS       UNLIMITED
            PCTINCREASE      0
            BUFFER_POOL      DEFAULT
           );

ALTER TABLE WEICK.STU ADD (
  PRIMARY KEY
  (NO)
  USING INDEX WEICK.INDEX_NO_DEPT
  ENABLE VALIDATE);

SET DEFINE OFF;
Insert into WEICK.STU
   (NO, NAME, GENTLE, AGE, DEPT)
 Values
   ('120006', '李飒', '男', 12, '12工商管理');
Insert into WEICK.STU
   (NO, NAME, GENTLE, AGE, DEPT)
 Values
   ('120005', '林琳', '女', 22, '12计算机');
Insert into WEICK.STU
   (NO, NAME, GENTLE, AGE, DEPT)
 Values
   ('120004', '杨过', '男', 22, '12计算机');
Insert into WEICK.STU
   (NO, NAME, GENTLE, AGE, DEPT)
 Values
   ('120003', '张清', '女', 21, '12外语');
Insert into WEICK.STU
   (NO, NAME, GENTLE, AGE, DEPT)
 Values
   ('120001', '陈诚', '男', 23, '12计算机');
Insert into WEICK.STU
   (NO, NAME, GENTLE, AGE, DEPT)
 Values
   ('120002', '李宗赫', '男', 25, '12图形');
COMMIT;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值