数据表的创建

创建数据表的基本语法:

CREATE TABLE 表名称(
字段1 字段类型,
字段2 字段类型,
字段3 字段类型,
字段4 字段类型,
...
字段 字段类型
);

创建一张保存老师信息的表:

--删除数据表
DROP TABLE teacher PURGE;

--创建数据表
CREATE TABLE teacher(
tno NUMBER(4),
tname VARCHAR2(10),
tage NUMBER(3),
tdate DATE
);

--插入数据
INSERT INTO teacher VALUES(1001,'X老师',100,SYSDATE);
INSERT INTO teacher VALUES(1002,'Y老师',100,SYSDATE);
INSERT INTO teacher VALUES(1003,'Z老师',100,SYSDATE);
--删除数据表
DROP TABLE teacher PURGE;

--创建数据表
CREATE TABLE teacher(
tno NUMBER(4),
tname VARCHAR2(10),
tage NUMBER(3),
tdate DATE
);

--插入数据
INSERT INTO teacher VALUES(1001,'X老师',100,SYSDATE);
INSERT INTO teacher VALUES(1002,'Y老师',100,SYSDATE);
INSERT INTO teacher VALUES(1003,'Z老师',100,SYSDATE);
INSERT INTO teacher(tname,tage,tdate) VALUES('Z老师',100,SYSDATE);

最后一条数据的编号为null,我们说过数据表必须有一个字段表示主键作为数据的唯一标识,这种字段中的数据不应该为null,此时在创建数据表的时候可以指定该字段不能为null

--删除数据表
DROP TABLE teacher PURGE;

--创建数据表
CREATE TABLE teacher(
tno NUMBER(4) NOT NULL,   表示该字段不能为空
tname VARCHAR2(10),
tage NUMBER(3),
tdate DATE
);

--插入数据
INSERT INTO teacher VALUES(1001,'X老师',100,SYSDATE);
INSERT INTO teacher VALUES(1002,'Y老师',100,SYSDATE);
INSERT INTO teacher VALUES(1003,'Z老师',100,SYSDATE);
INSERT INTO teacher(tname,tage,tdate) VALUES('W老师',100,SYSDATE);

使用以上的方式就控制了插入数据表中的数据的tno是一定不能为null,对tno字段的数据进行了约束,不能为null,这种操作叫作非空约束

--删除数据表
DROP TABLE teacher PURGE;

--创建数据表
CREATE TABLE teacher(
tno NUMBER(4),
tname VARCHAR2(10),
tage NUMBER(3),
tdate DATE
);

--插入数据
INSERT INTO teacher VALUES(1001,'X老师',100,SYSDATE);
INSERT INTO teacher VALUES(1002,'Y老师',100,SYSDATE);
INSERT INTO teacher VALUES(1003,'Z老师',100,SYSDATE);
INSERT INTO teacher VALUES(1004,'W老师',100,SYSDATE);
INSERT INTO teacher VALUES(1004,'C老师',100,SYSDATE);

发现了有两条数据的编号是1004,重复了,主键字段是数据的唯一标识,是不能重复的,可以使用另外一种约束实现避免编号重复的现象

--删除数据表
DROP TABLE teacher PURGE;

--创建数据表
CREATE TABLE teacher(
tno NUMBER(4) NOT NULL UNIQUE,
tname VARCHAR2(10),
tage NUMBER(3),
tdate DATE
);

--插入数据
INSERT INTO teacher VALUES(1001,'X老师',100,SYSDATE);
INSERT INTO teacher VALUES(1002,'Y老师',100,SYSDATE);
INSERT INTO teacher VALUES(1003,'Z老师',100,SYSDATE);
INSERT INTO teacher VALUES(1004,'W老师',100,SYSDATE);
INSERT INTO teacher VALUES(1004,'C老师',100,SYSDATE);

此时保证了插入表中的数据的编号是不可能出现重复的,这种叫作唯一约束,其实还有一种约束可以代替以上两种约束,叫作主键约束。就是一种约束可以有以上两种约束的效果

--删除数据表
DROP TABLE teacher PURGE;

--创建数据表
CREATE TABLE teacher(
tno NUMBER(4) PRIMARY KEY, 主键约束
tname VARCHAR2(10),
tage NUMBER(3),
tdate DATE
);

--插入数据
INSERT INTO teacher VALUES(1001,'X老师',100,SYSDATE);
INSERT INTO teacher VALUES(1002,'Y老师',100,SYSDATE);
INSERT INTO teacher VALUES(1003,'Z老师',100,SYSDATE);
INSERT INTO teacher VALUES(1004,'W老师',100,SYSDATE);
INSERT INTO teacher VALUES(1004,'C老师',100,SYSDATE);

主键约束是非空约束和唯一约束的叠加

总结

非空约束,使用 NOT NULL 实现,保证了指定字段插入的值不能为null

唯一约束,使用 UNIQUE 实现,保证指定字段的数据不能重复

主键约束,使用 PRIMARY KEY 实现,保证了指定字段不能为null也不会重复,是非空何唯一约束的叠加

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值