作业2
- 创建一个图书表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;
- 生成一个借阅表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 )
);
- 插入数据,写出以下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);//数据内容自拟,修改绿色的数据
- 更新数据,写出以下SQL脚本,
更新Borrow表中START_DATE 小于当前系统时间sysdate的纪录,将其START_DAT改为系统当前时间,END_DATE为空。
update Borrow
set START_DATE=sysdate,END_DATE=NULL
where START_DATE<sysdate
- 删除表数据。删除BOOk表中name为 'Java' 的纪录。写出SQL。
delete from BOOk where name = 'Java';
- 删除Borrow表(删除表定义)。写出SQL。
drop table Borrow;
- delete from table1与truncate table table1区别是?
delete 删除数据时,oracle会产生回滚记录,可以用rollback语句来撤销。 Truncate 不产生回滚记录。
删除全表记录truncate比delete要快,但是无法使用rollback语句撤销。