Oracle学习笔记:初学者创建表
2016-11-04 21:20
351 查看
利用经典的三张表实现,学生表(stuinfo),课程表(stucourse)和成绩表(stuscore)
查查表
利用存储过程插入表stuscore和stuinfo
因为stuid是通过序列和sysdate生成的,因此手动给学生插入成绩就不方便,本人定义一个存储过程,实现
数据库插入测试数据
插入20条数据
处理空值排序last(first)
跳过表中的偶数行
确定一年的天数
创建表
create table stuinfo( stuid char(12) primary key, stuname varchar(6) , stuage int check(stuage>18 and stuage<60) );
create table stucourse( coid int primary key, coname varchar2(20) not null, colevel int );
create table stuscore( stuid char(12) references stuinfo(stuid), coid int references stucourse(coid), score number(3) check(score>=0 and score <=100) not null, scdate date default(sysdate) );
创建序列
create sequence studid increment by 1 start with 1 maxvalue 9999 minvalue 1 cycle;
单行手动插入测试
insert into stuinfo values (TO_CHAR(sysdate,'YYYYMMDD')||LPAD(studid.nextval,4,'0'),'孙悟空',23); insert into stucourse values(1,'计算机基础',1);
查查表
select * from stuinfo;
利用存储过程插入表stuscore和stuinfo
因为stuid是通过序列和sysdate生成的,因此手动给学生插入成绩就不方便,本人定义一个存储过程,实现
数据库插入测试数据
CREATE OR REPLACE PROCEDURE INSERT_TABLE(NUM INT) AS I INT:=1; id STUINFO.STUID%type; BEGIN WHILE I<NUM LOOP dbms_output.put_line(I); id := TO_CHAR(sysdate,'YYYYMMDD')||LPAD(studid.nextval,4,'0'); INSERT INTO stuinfo VALUES (id,TO_CHAR('u'||studid.nextval),FLOOR((DBMS_RANDOM.VALUE*40)+20)); INSERT INTO stuscore VALUES(id,1,66,default); I:=I+1; END LOOP; END INSERT_TABLE;
插入20条数据
CALL INSERT_TABLE(20);
高级查询
随机返回条数据select * from (select * from stuinfo order by dbms_random.value()) where rownum<=5;
处理空值排序last(first)
select * from stuscore order by score desc nulls last;
跳过表中的偶数行
select * from (select row_number() over (order by stuname) rn,stuname from stuinfo) where mod(rn,2)=1;
确定一年的天数
select add_months(trunc(sysdate,'y'),12)-trunc(sysdate,'y') from dual;
相关文章推荐
- oracle创建用户与权限操作(oracle学习笔记一)
- oracle学习笔记 oracle软件安装和数据库的创建
- java文件对象的创建和使用(本文章只是初学者的笔记)
- 【初学者指南】在ASP.NET MVC 5中创建GridView
- 【编程初学者】创建自己的开源项目7-基于当前分支,提交归并请求到主分支2-代码冲突(myeclipse+git)
- 前端初学者(随手记)——创建对象的两种方法
- C语言初学者:使用CreateWindow创建一个窗口
- Oracle学习笔记:创建physical standby之另类方法
- 【编程初学者】创建自己的开源项目3-将远程代码仓库下载,并创建本地代码仓库(myeclipse + github)
- 【编程初学者】创建自己的开源项目5-在主分支上创建新分支(myeclipse+git)
- Oracle学习笔记(2)创建用户及权限设置
- oracle学习笔记(二)--创建数据库
- Oracle学习笔记——监听器、数据库实例的创建于删除
- Windows Phone 8初学者开发—第22部分:用演示图板创建卷盘的动画
- Oracle学习笔记(9)----------- 表的创建及管理
- 针对初学者:Eclipse中创建并运行Servlet
- Linux初学者学习之目录的创建与delete命令
- C语言初学者:使用CreateWindow创建一个窗口
- Oracle学习笔记:利用rman数据库备份,手工创建clone数据库
- Windows Phone 8初学者开发—第22部分:用演示图板创建卷盘的动画