oracle (一) DDL

-------------DDL语句 ------------------

--创建表
CREATE TABLE test2(
 ID NUMBER(12,0),
 NAME CHAR(20)
);

SELECT * FROM test2;
--添加字段
ALTER TABLE test2 ADD age NUMBER(3,0);
--修改字段类型
ALTER TABLE test2 MODIFY age VARCHAR2(10);
--删除字段并删除与之关联的约束
ALTER TABLE test2 DROP COLUMN age  CASCADE CONSTRAINT;
--修改和添加
ALTER TABLE test2 MODIFY age VARCHAR2(10) ADD gender CHAR(1)NOT NULL ;
--删除表 
DROP TABLE test2;


--约束

--使用alter语句添加主键约束
ALTER TABLE test3 ADD CONSTRAINT test3_id_pk PRIMARY KEY (ID);
--删除约束
ALTER TABLE test2 DROP CONSTRAINT test2_id_pk;



CREATE TABLE test3 (
 ID NUMBER(10),
  age VARCHAR2(20)
);



--添加外键约束 并设置为级联删除 
ALTER TABLE test2 ADD CONSTRAINT test2_3_fk FOREIGN KEY (ID) REFERENCES test3(ID) ON  DELETE CASCADE;

--删除时要先删除test3中的记录才会级联删除test2中的记录,否则和普通的删除一样。
--添加记录时要保证关联的表中有对应的记录否则添加失败 
ALTER TABLE test2 DROP CONSTRAINT test2_3_fk;
INSERT INTO test2 VALUES (3,'热','3');

INSERT INTO test3 VALUES (3,'卧槽');

--check约束
ALTER TABLE test2 ADD CONSTRAINT check_id CHECK (ID<12);
--设置多个约束时,先检查 check ,在检查主外键 
INSERT INTO test2 VALUES (1,34,3);

--not null 约束
ALTER TABLE test3 MODIFY age NOT NULL;
--去掉not null 约束 
ALTER TABLE test3 MODIFY age  NULL;

------------------DML/DQL语句-----------

SELECT * FROM test3;
SELECT * FROM test2;

CREATE TABLE test4 (
 ID NUMBER(20,0) PRIMARY KEY NOT NULL,
 NAME VARCHAR2(100),
 birth DATE ,
 phone CHAR(14)
);

--将其他表的数据插入到当前表中 
INSERT INTO test4 (ID,NAME) SELECT ID,NAME FROM test2;

--保证前后的数据类型一致,否则插入失败,下面的语句无法正确插入
--INSERT INTO test4 (ID,birth) SELECT ID,age FROM test3;

--以其他数据表为基础创建表并且获取其中的数据

CREATE TABLE test5 AS SELECT * FROM test3;

--获取目标表的部分字段和数据创建一张新表
CREATE TABLE test6 AS SELECT ID ,NAME FROM test2;

SELECT * FROM test5;

---- -truncate 清空表的数据 
----------- 效率比delete 高 
DELETE FROM test5;
TRUNCATE TABLE test5;


转载于:https://my.oschina.net/u/2284956/blog/354138

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值