Oracle简单操作

(1)创建名为student(学生信息)的表,sno主键sexCHECK约束(男,女)。

-- 创建表student
CREATE TABLE student (
	sno CHAR(10),
 	sname VARCHAR2(8),
 	sex CHAR(4) DEFAULT '男',
 	birthday DATE,
 	sdept CHAR(20),
 	CONSTRAINT pk_sno PRIMARY KEY(sno),
 	CONSTRAINT ck_sex CHECK(sex in('男','女'))
);

(2)创建名为course(课程信息)的表,cno主键cname唯一约束

-- 创建表course
CREATE TABLE course (
 	cno CHAR(10) PRIMARY KEY,
 	cname CHAR(30) UNIQUE,
 	ccredit NUMBER(3)
);

(3)创建名为score(学生成绩)的表,sno参照完整性约束级联删除主键cno参数完整性约束级联删除主键gradeCHECK约束

-- 创建表score
CREATE TABLE score (
	sno CHAR(10),
	cno CHAR(10),
	grade NUMBER(3),
	CONSTRAINT pk_sno_cno PRIMARY KEY(sno, cno),
	CONSTRAINT ck_sno FOREIGN KEY(sno) REFERENCES student(sno) ON DELETE CASCADE,
	CONSTRAINT ck_cno FOREIGN KEY(cno) REFERENCES course(cno) ON DELETE CASCADE,
	CONSTRAINT ck_grade CHECK(grade BETWEEN 0 AND 100)
);

2.增加、修改和删除字段,要求:
(1)给student表增加一个memo(备注)字段,类型为VARCHAR2(200)

ALTER TABLE student ADD(memo VARCHAR2(200));

(2)将memo字段的类型修改为VARCHAR2(300)

ALTER TABLE student MODIFY(memo VARCHAR2(300));

(3)删除memo字段

ALTER TABLE student DROP COLUMN memo;

3.向表中添加数据,更新数据,删除数据,并验证约束。要求:
(1)使用INSERT INTO命令向三个表中分别插入若干航数据,验证主键约束、唯一约束以及默认值约束。
(1.1)向student表中插入数据,验证默认值约束。

INSERT INTO student(sno,sname,birthday,sdept) VALUES('1', '张三', SYSDATE, '描述');

select

(1.2)向student表中插入数据,验证CHECK约束,只能输入或者,否则报错。

INSERT INTO student VALUES('1', '张三', '无', SYSDATE, '描述');

违反约束条件
插入date类型的几种方式:

INSERT INTO student VALUES('1', '张三', '无', SYSDATE, '描述');
INSERT INTO student VALUES('2', '赵四', '男', to_date('2019-01-02','YYYY-MM-DD'), '描述')
INSERT INTO student VALUES('3', '王五', '女', to_date('2019-01-02 20:47:00','YYYY-MM-DD hh24:mi:ss'), '描述')
INSERT INTO student VALUES('4', '马自', '女', to_date('20190214','YYYYMMDD'), '描述')

(1.3)向course表中插入数据,验证cname的唯一性约束。

INSERT INTO course VALUES('1', '语文', '98');

如果插入了两条cname相同的记录,则报错。
错误
(1.4)向score表中插入数据。

INSERT INTO score VALUES('1','1','98');
INSERT INTO score VALUES('1','2','88');
INSERT INTO score VALUES('1','3','99');
INSERT INTO score VALUES('1','4','76');
INSERT INTO score VALUES('1','5','88');
INSERT INTO score VALUES('1','6','66');
INSERT INTO score VALUES('2','1','88');
INSERT INTO score VALUES('2','2','88');
INSERT INTO score VALUES('2','3','88');
INSERT INTO score VALUES('2','4','88');
INSERT INTO score VALUES('2','5','88');
INSERT INTO score VALUES('2','6','88');
INSERT INTO score VALUES('3','1','88');
INSERT INTO score VALUES('3','2','88');
INSERT INTO score VALUES('3','3','88');
INSERT INTO score VALUES('3','4','88');
INSERT INTO score VALUES('3','5','88');
INSERT INTO score VALUES('3','6','88');

(2)使用UPDATE命令更新数据,验证外键约束。
更新sno等于1的学生的学号为4,因为学生表的sno列是score表sno列的外键,score表sno列外键属性为级联删除。所以不能级联更新。

UPDATE student SET sno = '4' WHERE sno = '1';

报错。
错误
(3)使用DELETE命令删除数据。
删除sno等于2的学生。他的成绩将会被删除。

DELETE FROM student WHERE sno = '1';

删除前:

删除前
删除后:
删除后
4.删除表。
(1)利用DROP TABLE命令删除表。

DROP TABLE student;

删除失败。
删除失败
应该先删除score表,再删除student表。

  • 14
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 13
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值