【oracle作业2】数据定义和数据操纵

作业2

  1. 创建一个图书表BOOK,其字段定义如下。指定该表放在test表空间中。

   字段名称

数据类型

长度

 

ID

整数

 

主键

NAME

变长字符串

50字节

不能为空

ISBN

定长字符串

30字符

唯一

OP_DATE

日期

 

 

PRICE

数值

长度7

小数点后1位

默认为0

 

写出该SQL脚本。

create table BOOK(

ID int PRIMARY KEY,

NAME varchar2(50 byte) NOT NULL,

ISBN char(30 char) UNIQUE,

OP_DATE date,

PRICE number(7,1) default 0

)TABLESPACE test;

  1. 生成一个借阅表Borrow,使用默认表空间。

 

   字段名称

数据类型

长度

 

ID

整数

 

主键

BookID

整数

 

外键,引用BOOK表PROJID。级联删除

START_DATE

日期

 

START_DATE默认为系统当前时间

END_DATE

日期

 

END_DATE不能比START_DATE早

 

写出该SQL脚本。

create table Borrow (

ID int PRIMARY KEY,

BookID int REFERENCES BOOK on delete cascade

START_DATE  date default sysdate,

END_DATE date ,

check( END_DATE > START_DATE )

);

  1. 插入数据,写出以下SQL脚本

在第一题BOOK表中插入1条数据,数据内容自拟。要求用to_date函数处理date型数据。

insert into BOOK

values(250,'软件工程','978-7-302-44608-8',//数据内容自拟,修改绿色的数据

 to_date('2007-03-08 12:00:00','YYYY-MM-DD HH24:MI:SS'),59.90);//数据内容自拟,修改绿色的数据

  1. 更新数据,写出以下SQL脚本,

更新Borrow表中START_DATE 小于当前系统时间sysdate的纪录,将其START_DAT改为系统当前时间,END_DATE为空。

update Borrow

set START_DATE=sysdate,END_DATE=NULL

where START_DATE<sysdate

  1. 删除表数据。删除BOOk表中name为 'Java' 的纪录。写出SQL。

delete from BOOk where name =  'Java';

  1. 删除Borrow表(删除表定义)。写出SQL。

drop table Borrow;

  1. delete from table1与truncate table table1区别是?

delete  删除数据时,oracle会产生回滚记录,可以用rollback语句来撤销。 Truncate 不产生回滚记录。

删除全表记录truncate比delete要快,但是无法使用rollback语句撤销。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值