create tablespace studentDB
datafile 'E:\datafiles_1.dbf' size 10m;

create user Huang_Ying_Bo
identified by hyb123456
default tablespace studentDB

grant connect to Huang_Ying_Bo
grant resource to Huang_Ying_Bo

drop table TechEd_T_Students

/*创建学生信息表*/
create table TechEd_T_Students
(
Id integer,
Name varchar2(20),
Adress varchar2(40)
);

alter table TechEd_T_Students
add constraint PK_TechEd_T_Students_Id primary key(Id);

/*创建课程序列Sequence_TechEd_T_Students_Id*/
drop sequence Sequence_TechEd_T_Students_Id;
CREATE SEQUENCE Sequence_TechEd_T_Students_Id;
/*建立触发器*/
drop TRIGGER Trigger_Insert__Students_Inc;
CREATE OR REPLACE TRIGGER Trigger_Insert__Students_Inc
BEFORE INSERT ON TechEd_T_Students
FOR EACH ROW
WHEN (NEW.ID IS NULL)
BEGIN
SELECT Sequence_TechEd_T_Students_Id.NEXTVAL INTO :NEW.Id FROM DUAL;
END;

insert into TechEd_T_Students(Name,Adress) values('黄涛','重庆北碚');
insert into TechEd_T_Students(Name,Adress) values('刘册','重庆沙坪坝');
insert into TechEd_T_Students(Name,Adress) values('邓雨','重庆渝北');
insert into TechEd_T_Students(Name,Adress) values('萧何','河南沛县');

select * from TechEd_T_Students

drop table TechEd_T_Scources

/*创建课程信息表*/
create table TechEd_T_Scources
(
Id integer,
Name varchar2(20)
);
alter table TechEd_T_Scources
add constraint PK_TechEd_T_Scources_Id primary key(Id);

/*创建课程序列Sequence_TechEd_T_Scources_Id*/
drop sequence Sequence_TechEd_T_Scources_Id;
CREATE SEQUENCE Sequence_TechEd_T_Scources_Id;
/*建立触发器*/
drop TRIGGER Trigger_Insert__Scources_Inc;
CREATE OR REPLACE TRIGGER Trigger_Insert__Scources_Inc
BEFORE INSERT ON TechEd_T_Scources
FOR EACH ROW
WHEN (NEW.ID IS NULL)
BEGIN
SELECT Sequence_TechEd_T_Scources_Id.NEXTVAL INTO :NEW.Id FROM DUAL;
END;

insert into TechEd_T_Scources(Name) values('数据结构');
insert into TechEd_T_Scources(Name) values('ORACLE数据库优化');

select * from TechEd_T_Scources

drop table TechEd_T_Scores
/*创建学生分数信息表*/
create table TechEd_T_Scores
(
Id integer,
Student_Id integer,
Scource_Id integer,
Grade integer
);

alter table TechEd_T_Scores
add constraint PK_TechEd_T_Scores primary key(Id);
alter table TechEd_T_Scores
add constraint FK_Scores_Students_Id foreign key(Student_Id) references TechEd_T_Students(Id);
alter table TechEd_T_Scores
add constraint FK_Scores_Scources_Id foreign key(Scource_Id) references TechEd_T_Students(Id);
alter table TechEd_T_Scores
add constraint CK_TechEd_T_Scores_Grade check(Grade between 0 and 100);

/*创建分数序列Sequence_TechEd_T_Scores_Id*/
drop sequence Sequence_TechEd_T_Scores_Id;
CREATE SEQUENCE Sequence_TechEd_T_Scores_Id;
/*建立触发器*/
drop TRIGGER Trigger_Insert_Scores_Inc;
CREATE OR REPLACE TRIGGER Trigger_Insert_Scores_Inc
BEFORE INSERT ON TechEd_T_Scores
FOR EACH ROW
WHEN (NEW.ID IS NULL)
BEGIN
SELECT Sequence_TechEd_T_Scores_Id.NEXTVAL INTO :NEW.Id FROM DUAL;
END;

insert into TechEd_T_Scores(Student_Id,Scource_Id,Grade) values(1,1,88);
insert into TechEd_T_Scores(Student_Id,Scource_Id,Grade) values(1,2,88);
insert into TechEd_T_Scores(Student_Id,Scource_Id,Grade) values(2,1,89);
insert into TechEd_T_Scores(Student_Id,Scource_Id,Grade) values(2,2,89);
insert into TechEd_T_Scores(Student_Id,Scource_Id,Grade) values(3,1,90);
insert into TechEd_T_Scores(Student_Id,Scource_Id,Grade) values(3,2,90);

select * from TechEd_T_Scores;
select * from TechEd_T_Scources;
select * from TechEd_T_Students;

ORACLE表建立自增列的更多相关文章

  1. MySQL面试题之为什么要为innodb表设置自增列做主键?

    为什么要为innodb表设置自增列做主键? 1.使用自增列做主键,写入顺序是自增的,和B+数叶子节点分裂顺序一致 2.表不指定自增列做主键,同时也没有可以被选为主键的唯一索引,InnoDB就会选择内置 ...

  2. oracle 实现插入自增列(类似SqlServer Identity)

    oracle不像sql server 有关键字identity直接可插入数据时自增 ,Oracle是不能用Identity,可以使用Sequence Create Table Tempinfo( id ...

  3. 重置SQLSERVER表的自增列,让自增列重新计数【转】

    很多时候我们需要重置某个表的自增列,让自增列重新从1开始记数.最蠢的方法当然是把该表删掉再重新建表了.其实,还有其它的方法可以重置自增列的值: 方法一:使用TRUNCATE TABLE语句: TRUN ...

  4. Oracle表级约束和列级约束

    Oracle表级约束和列级约束 1. 表级定义约束 指的是在定义完一个表所有列之后,再去定义所有相关的约束. 注意:not null 约束只能在列级上定义. 2. 列级定义约束 指的是在定义一个表的每 ...

  5. [转]oracle 实现插入自增列

    本文转自:http://blog.csdn.net/love_zt_love/article/details/7911104 刚使用oracle,它和sql server 好多地方还是有所不同的,简单 ...

  6. Oracle 12c的自增列Identity Columns

    在Oracle的12c版本中,Oracle实现了类似MySQL中的auto_increment的自增列,下面我们看一起Oracle是怎么实现的. Oracle Database 12c Enterpr ...

  7. sqlite3创建自增主键,以及清空表使自增列归零

    1.创建自增主键 CREATE TABLE tb_python (ID INTEGER PRIMARY KEY AUTOINCREMENT,TITLE TEXT,URL TEXT); 2.清空表 SQ ...

  8. 重置SQLSERVER表的自增列,让自增列重新计数

    SQL的自增列挺好用,只是开发过程中一旦删除数据,标识列就不连续了 写起来 也很郁闷,所以查阅了一下标识列重置的方法 发现可以分为三种: --- 删除原表数据,并重置自增列truncate table ...

  9. mysql中,通过脚本设置表的自增列,及自增步长

    设置自增列(其实通过navicate可以直接设置的,也方便:要不然可能需要删除列了) ALTER TABLE `domain_dns_tucows` CHANGE `id` `id` INT(11) ...

随机推荐

  1. JS日期时间选择器

    本文介绍一种日期和时间选择器的使用方法.此选择器由jqueryUI实现,支持精确到毫秒的时间选择. 此选择器项目地址为http://trentrichardson.com/examples/timep ...

  2. myEclipse Debug

    ========================================== myEclipse Debug     快捷键 ================================= ...

  3. 经Apache将tomcat转用80port这两个域名

    一般用tomcat通告Java web项目采用www.xxx.com:8080/appname/xxxservlet要访问一个简单的服务,这会'暴漏'应用程序名称(当然,你也可以摆脱),它看起来并不规 ...

  4. CSS3新功能简要

    1.CSS3 框架:    由 CSS3,您可以创建圆角.加入到该矩形阴影,使用图片绘制边框.例如 * border-radius -border-*-radius(top,left,right,bo ...

  5. ASP.NET上传文件的几种方法

      //上传文件实例 if (fileDealer.HasFile)//判断文件是否存在        {            string filepath = "";     ...

  6. WPF - Visual调试工具Snoop

    原文:WPF - Visual调试工具Snoop Snoop经过很长一段时间,最近更新到支持NET 3.5了,它是一个WPF运行时对Visual UI调试的一个工具,最近我用过它调试修改过一个bug, ...

  7. mysql_MYSQL远程登录权限设置

    Mysql默认关闭远程登录权限,如下操作允许用户在任意地点登录: 1. 进入mysql,GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY ...

  8. 私人定制javascript中数组小知识点(Only For Me)

    先上笑话,1.刚看到一个游泳的,想起公司组织去三亚旅游,老板跳海里,各种挣扎,捞上来老板第一句话:我记得我会游泳的啊. 2.媳妇说:老公对不起,我把你新买的自行车撞散架了! 老公:没事宝贝,你若安好, ...

  9. .NET平台机器学习

    .NET平台机器学习资源汇总,有你想要的么? 接触机器学习1年多了,由于只会用C#堆代码,所以只关注.NET平台的资源,一边积累,一边收集,一边学习,所以在本站第101篇博客到来之际,分享给大家.部分 ...

  10. 蜗牛—Hibernate之初识配置

    下载Hibernate的jar包 把下面jar文件考到项目lib下 然后在myeclipse中打开database的view视图创建一个新的数据库连接 接下来,配置连接,须要导入ORACLE的jar包 ...