创建数据表

本文详细介绍了如何使用SQL创建数据表,并通过示例演示了非空约束、唯一约束和主键约束的使用,强调了这些约束在保证数据完整性方面的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章目录

一、创建数据表

在之前我们使用的emp、dept、salgrade的数据表都是数据库提供的,我们也可以在自己使用语句创建数据表,基本语法如下:
CREATE TABLE 表名称(
 字段 1  字段类型,
 字段 2  字段类型,
 字段 3  字段类型,
 字段 4  字段类型,
 ...
 字段   字段类型
);
DEMO: 创建一张保存老师信息的表
----- 删除数据表
DROP TABLE teacher PUGER;
----- 创建数据表
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);
在这里插入图片描述
DEMO: 观察代码
--删除数据
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(给该字段做一个约束)
DEMO: 非空约束
--删除数据表
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字段的数据进行了约束,这种约束操作叫做非空约束。
DEMO: 唯一约束
--删除数据表
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 VALUES(1004,‘W老师’,100,SYSDATE);
INSERT INTO teacher VALUES(1004,‘C老师’,100,SYSDATE);
在这里插入图片描述
 我们发现最后两个数据的编号重复,而主键字段是数据的唯一标识,是不能够重复的,所以可以使用唯一约束进行避免这种现象。
DEMO: 唯一约束
--删除数据表
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);
总结:
1、非空约束,使用NOT NULL实现,保证了指定字段插入的值不能为null
2、唯一约束,使用UNIQUE实现,保证指定字段的数据重复。
3、主键约束,使用PRIMARY KEY实现,保证了指定字段不能为null也不会重复,是非空与唯一的叠加。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值