建立学生表和课程信息及基本操作

create table student  //创建一个学生表
(
sno char(9) primary key,    //定义学号为主码,,
          ///////每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束
sname char(20) unique,    //用unique来约束学生姓名,名字不可以重复
ssex char(3),
sage smallint,     //smallint的取值范围是-2^15 (-32,768) 到 2^15-1 (32,767)
sdept char(20)
);
select * from student;  //显示学生表当前的状态
insert into student(sname,ssex,sno,sage,sdept) values('邓景栩','女','12306','21','CP');
insert into student(sname,ssex,sno,sage,sdept) values('李彬','男','12307','21','JX');
insert into student(sname,ssex,sno,sage,sdept) values('陈浩','女','12304','21','LY');
insert into student(sname,ssex,sno,sage,sdept) values('叶问','男','12305','21','WS');
insert into student(sname,ssex,sno,sage,sdept) values('郑和','男','12302','21','EL');
insert into student(sname,ssex,sno,sage,sdept) values('小泳','女','12308','21','YC');
rollback;  //回滚的意思就是数据库里做修改后 ( update  ,insert  , delete)未commit 之前  
         // 使用rollback   可以恢复数据到修改之前。
commit;    //提交
CREATE table Course   //创建一个课程表
(
Cno char(4) primary key,
---先修课程的编号,定义课程号为主码
Cname char(40),
Cpno char(4),
Ccredit smallint,
foreign key (Cpno) references Course(cno)   //FOREIGN KEY 约束用于预防破坏表之间连接的动作。
               //FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。
                //references 可以创建引用表的外键
);
select * from course;  //显示刚创建好的课程表的状态
insert into course values('6','数据处理',null,2);
insert into course values('2','数学',null,2);
insert into course values('7','PASCAL语言','6',4);
insert into course values('5','数据结构','7',4);
insert into course values('1','数据库','5',4);
insert into course values('3','信息系统','1',4);
insert into course values('4','操作系统','6',3);
commit;
create table sc   / /创建一个学生课程表
(
sno char(9),
cno char(4),
grade smallint,
primary key (sno,cno),
foreign key(sno) references student(sno),
foreign key(cno) references course(cno)
);
commit;
select * from sc;
insert into sc values('12306','1',99);
insert into sc values('12307','3',90);
insert into sc values('12304','5',89);
insert into sc values('12305','6',94);
insert into sc values('12302','2',88);
insert into sc values('12308','7',92);
commit;


--向student表增加“入学时间”列,,其数据类型为日期型;(就是修改表)
alter table student add sregtime date;
--alter table student 表示修改学生表     操作:在学生表中添加入学时间,数据类型为date,日期型
select * from student;
--将年龄的数据类型由smallint 改为int;
alter table student modify (sage int);
--删除学生表中的入学时间列 
alter table student drop column sregtime;
--增加课程名称必须取唯一值的约束条件
alter table course add constraints uniquecname unique(cname);
--为student表按学生所在系降序建立索引,索引名为idx_sdept;
create index idx_sdept on student(sdept desc);--该DESC命令用于对按降序返回的数据进行排序。asc 是ascend 升序意思
--为SC表按学号升序和课程号降序建立唯一索引,索引名为idx_snocno;
create unique index idx_snocno on sc(sno asc,cno desc);--升序是默认的,asc可以删掉
--将sc表中的idx_snocno索引更改名为scno;
alter index idx_snocno rename to scno;
--删除sc表中的scno索引
drop index scno;
--删除学生表
--drop table student cascade constraints;
--select * from student;
--删除模式jachin;
--drop user jachin;
  1. select * from all_tab_comments; //查询所有用户下的所有表,可加入筛选条件,如where。
  2. select * from all_tab_comments where owner='用户名‘ ; //查询某个用户下的所有表,注意此处用户名要大写
  3. select * from user_tab_comments; //查询本用户下的表
  4. select * from dba_users; //查询所有用户的信息详细信息
  5. 创建:create
  6. 修改:alter
  7. 删除:drop
  8. 查看:select * from xxx
  9. desc:升序(库中默认,可以不写); asc:降序

猜你喜欢

转载自blog.csdn.net/Jachins/article/details/88667616