oracle数据库学习–练习1
个人学习所用,并未仔细整理
- 记录学校实验作业对于sql语句,作为例子练习与参考
创建表空间及数据文件
--创建表空间及数据文件,表空间的名字为 TableSpace_lzq,数据文件的名字为 DBFile_lzq_01.DBF,
CREATE TABLESPACE "TABLESPACELZQ"
DATAFILE 'C:\APP\ADMINISTRATOR\ORADATA\ORCL\DBFile_lzq_01.DBF'
SIZE 50M AUTOEXTEND ON NEXT 20M MAXSIZE 300M ;
--文件大小50M, 自动扩展,每次增加20M, 最大值为300M。
--修改表空间,为表空间增加数据文件DBFile_lzq_02.DBF,文件大小50M,不允许自动扩展。
ALTER TABLESPACE
"TABLESPACELZQ" ADD DATAFILE 'C:\APP\ADMINISTRATOR\ORADATA\ORCL\DBFile_lzq_02.DBF' SIZE 50M
AUTOEXTEND OFF;
--使用数据字典dba_tablespaces 和 dba_data_files 查看所创建的表空间和数据文件信息。
--查看表空间的名字及大小:
select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size
from dba_tablespaces t, dba_data_files d where t.tablespace_name = d.tablespace_name
group by t.tablespace_name;
创建表
--学生表:Student_lzq,属性为:(Sno 学号, Sname 姓名, Ssex 性别, Sdept 所在院系),
--其中学号Sno主码,其中sno为number,sname为varchar2(10),ssex为char(2),sdept为varchar2(10)。
-- Create table
create table Student_LZQ
(
sno number,
sname varchar2(10),
ssex char(2),
sdept varchar2(10)
)
tablespace TABLESPACELZQ
storage
(
initial 64K
minextents 1
maxextents unlimited
);
-- Add comments to the columns
comment on column Student_LZQ.sno
is '学号';
comment on column Student_LZQ.sname
is '姓名';
comment on column Student_LZQ.ssex
is '性别';
comment on column Student_LZQ.sdept
is '所在院系';
-- Create/Recreate primary, unique and foreign key constraints
alter table Student_LZQ
add constraint Sno primary key (SNO);
/*
--简略形式
create table Student_LZQ0
(
sno number ,
sname varchar2(10),
ssex char(2),
sdept varchar2(10),
primary key(sno)
)
tablespace TABLESPACELZQ
storage
(
initial 64K
minextents 1
maxextents unlimited
)
*/
--课程表:Course_XXX,属性为:(Cno 课程号, Cname 课程名, Cpno 先行课, Ccredit 课程学分),其中课程号Cno主码;先行课为外码参照Course表中Cno字段。其中cno为number,cname为varchar2(10), cpno为number, ccredit为number(2)。
-- Create table
create table Course_LZQ
(
cno number,
cname varchar2(10),
cpno number,
ccredit number(2)
)
tablespace TABLESPACELZQ
storage
(
initial 64K
minextents 1
maxextents unlimited
);
-- Create/Recreate primary, unique and foreign key constraints
alter table Course_LZQ
add constraint Cno primary key (CNO);
alter table COURSE_LZQ
add constraint Cpno foreign key (CPNO)
references course_lzq (CNO) on delete cascade ;
--on delete cascade ——级联删除即删除包含主键值的行的操作
--学生选课表:SC_XXX (Sno 学号, Cno 课程号, Grade 成绩)其中(Sno、Cno)为主码;
--Sno为外码参照Student表中sno字段;
--Cno为外码参照Course表中cno字段。
-- Create table
create table SC_LZQ
(
sno NUMBER,
cno NUMBER not null,
grade NUMBER
)
tablespace TABLESPACELZQ
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64K
next 1M
minextents 1
maxextents unlimited
);
-- Add comments to the columns
comment on column SC_LZQ.sno
is '学号';
comment on column SC_LZQ.cno
is '课程号';
comment on column SC_LZQ.grade
is '成绩';
-- Create/Recreate primary, unique and foreign key constraints
alter table SC_LZQ
add constraint scSno foreign key (SNO)
references student_lzq (SNO) on delete cascade ;
alter table SC_LZQ
add constraint scCno foreign key (CNO)
references course_lzq (CNO) on delete cascade ;
--在Student表中加入属性出生日期Sbirthday,(date型)。
-- Add/modify columns
alter table STUDENT_LZQ add sbirthday date;
-- Add comments to the columns
comment on column STUDENT_LZQ.sbirthday
is '出生日期';
--修改课程表Course的属性Cname的数据类型为nvarchar2(20)
-- Add/modify columns
alter table COURSE_LZQ modify cname VARCHAR2(20);