oracle 数据库表基础操作,创建表,修改列,约束
2018-01-12 18:08
477 查看
1.创建表并添加相应的约束。要求:
(1)创建名为student(学生信息)的表,表中各列要求如下:
create table student
(
sno char(10) primary key,
sname varchar2(8),
sex char(2) default '男' , constraint ch_sex check(sex in('男','女')), --添加约束,约束名ch_sex。默认值为男,只能输入男或者女
birthday date,
sdept char(20)
);
select * from student;
alter table student modify sname varchar(9); --修改一列
alter table student add test varchar(2); --添加一列
alter table student drop column test; -- 删除一列
--这里要注意几个地方,首先,增加和修改列是不需要加关键字COLUMN,否则会报错ora-00905。其次,对删除单列的话,一定要加COLUMN,然后记住,删除是不需要加列类型的。
alter table student modify (sno char(12),sname varchar(9)); --修改多列
alter table student add (test1 varchar(2),test2 varchar(2)); --添加多列
alter table student drop (test1,test2); -- 删除多列
--很奇怪的现象,再单列中要加关键字COLUMN,然而再删除多列的时候,不能加COLUMN关键字。
desc student;
drop table student;
insert into student values('01','我是谁','女',to_date('2018/01/11','yyyy/mm/dd'),'021-');
delete student where sno='01';
alter table student rename column sname to new_sname; --修改列名: old to new;
(2)创建名为course(课程信息)的表,表中各列要求如下:
create table course
(
cno char(10) primary key, --主键无命名,可以查询: SELECT * FROM USER_CONS_COLUMNS where table_name='STUDENT';
cname char(30) unique,
ccredit number(3)
);
alter table course drop primary key;
alter table course add primary key(cno);
create table course
(
cno char(10), constraint p_cour primary key(cno), --主键有命名,系统会自动将列置为非空
cname char(30) unique,
ccredit number(3)
);
alter table course add constraint p_cour primary key(cno);
alter table course drop primary key;
select * from course;
desc course;
drop table course;
(3)创建名为score(学生成绩)的表,表中各列要求如下:
create table score
(
sno char(10),
cno char(10) ,
primary key(sno,cno), --联合主键
grade number(3) constraint ww check(grade>=0 and grade <=100) --检查约束(check)
);
alter table score add constraint fk_scor1 foreign key(sno) references student(sno);
alter table score add constraint fk_scor2 foreign key(cno) references course(cno);
alter table score drop constraint fk_scor1,fk_scor2 ;
select * from score;
desc score;
drop table score;
(1)创建名为student(学生信息)的表,表中各列要求如下:
字段名称 | 字段类型 | 大小 | 说明 |
sno | CHAR | 10 | 主键 |
sname | VARCHAR | 8 | |
sex | CHAR | 2 | 默认值为男,只能输入男或者女 |
birthday | DATE | ||
sdept | CHAR | 20 |
(
sno char(10) primary key,
sname varchar2(8),
sex char(2) default '男' , constraint ch_sex check(sex in('男','女')), --添加约束,约束名ch_sex。默认值为男,只能输入男或者女
birthday date,
sdept char(20)
);
select * from student;
alter table student modify sname varchar(9); --修改一列
alter table student add test varchar(2); --添加一列
alter table student drop column test; -- 删除一列
--这里要注意几个地方,首先,增加和修改列是不需要加关键字COLUMN,否则会报错ora-00905。其次,对删除单列的话,一定要加COLUMN,然后记住,删除是不需要加列类型的。
alter table student modify (sno char(12),sname varchar(9)); --修改多列
alter table student add (test1 varchar(2),test2 varchar(2)); --添加多列
alter table student drop (test1,test2); -- 删除多列
--很奇怪的现象,再单列中要加关键字COLUMN,然而再删除多列的时候,不能加COLUMN关键字。
desc student;
drop table student;
insert into student values('01','我是谁','女',to_date('2018/01/11','yyyy/mm/dd'),'021-');
delete student where sno='01';
alter table student rename column sname to new_sname; --修改列名: old to new;
(2)创建名为course(课程信息)的表,表中各列要求如下:
字段名称 | 字段类型 | 大小 | 说明 |
cno | CHAR | 10 | 主键 |
cname | CHAR | 30 | 唯一性 |
ccredit | NUMBER | 3 |
(
cno char(10) primary key, --主键无命名,可以查询: SELECT * FROM USER_CONS_COLUMNS where table_name='STUDENT';
cname char(30) unique,
ccredit number(3)
);
alter table course drop primary key;
alter table course add primary key(cno);
create table course
(
cno char(10), constraint p_cour primary key(cno), --主键有命名,系统会自动将列置为非空
cname char(30) unique,
ccredit number(3)
);
alter table course add constraint p_cour primary key(cno);
alter table course drop primary key;
select * from course;
desc course;
drop table course;
(3)创建名为score(学生成绩)的表,表中各列要求如下:
字段名称 | 字段类型 | 大小 | 取值范围 | 说明 |
sno | CHAR | 10 | 数据来自学生信息表 | 主键 |
cno | CHAR | 10 | 数据来自学生课程表 | 主键 |
grade | NUMBER | 3 | 0~100 |
(
sno char(10),
cno char(10) ,
primary key(sno,cno), --联合主键
grade number(3) constraint ww check(grade>=0 and grade <=100) --检查约束(check)
);
alter table score add constraint fk_scor1 foreign key(sno) references student(sno);
alter table score add constraint fk_scor2 foreign key(cno) references course(cno);
alter table score drop constraint fk_scor1,fk_scor2 ;
select * from score;
desc score;
drop table score;
相关文章推荐
- oracle中关于表的所有操作(创建删除表,修改表结构,创建约束,操作表数据,增删改查等)
- oracle中关于表的所有操作(创建删除表,修改表结构,创建约束,操作表数据,增删改查等)
- oracle中关于表的所有操作(创建删除表,修改表结构,创建约束,操作表数据,增删改查等)
- 对oracle当中子查询建表,merge操作,创建,修改,删除约束,创建使用触发器的复习练习
- oracle 数据库表字段添加、修改、删除等DDL操作
- Oracle基础学习二:表的创建 数据的操作 在VS程序中的查询显示
- <<< Oracle表创建、修改、删除基础操作
- mysql-数据表操作及约束创建修改
- Oracle基础学习二:表的创建 数据的操作 在VS程序中的查询显示
- oracle约束+disable与enable约束+为表添加约束+修改表约束的状态+primary key+not null+unique+foreign key+外键删除数据,可以使用的级联操作
- oracle 视图 创建 操作 简单 复杂 基表 不存在 增 删 改 插入 修改 删除 查看 结构
- 订单号数据类型修改--删除和创建复制订阅项目(只需要操作指定字段作为主键的那些)
- Oracle中的表操作-创建、修改,增减列
- 【SQL Server学习笔记】表基础:数据类型、创建表、键、约束、表变量、
- oracle在已有重复数据的列上创建唯一约束
- Oracle如何实现创建数据库、备份数据库及数据导出导入的一条龙操作
- Oracle如何实现创建数据库、备份数据库及数据导出导入的一条龙操作
- oracle创建数据表,修改,删除数据表
- Linux环境中Oracle数据导入与导出备份创建用户操作
- Oracle基础学习三之数据操作及伪列