- 浏览: 176190 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
SanFrans:
很不错的资料,谢谢分享
Oracle EBS 常用表 查询语句 -
Vity:
楼主坚持下去
Android学习指南基础--第一讲:Android开发环境的搭建【附件有图】 -
拥抱变化之美:
楼主的治学精神值得称赞。
C# 4.0 并行计算部分(附件有图) -
overloving:
fangjindan 写道
这个是绝对可行的哈,我测试通 ...
Linux下Oracle存储过程调用Java程序(含外部包) -
fangjindan:
Linux下Oracle存储过程调用Java程序(含外部包)
--创建用户
create user han identified by han default tablespace
users Temporary TABLESPACE Temp;
grant connect,resource,dba to han; //授予用户han开发人员的权利
--------------------对表的操作--------------------------
创建表格语法:
create table 表名(
字段名1 字段类型(长度) 是否为空,
字段名2 字段类型 是否为空
);
-增加主键
alter table 表名 add constraint 主键名 primary key (字段名1);
-增加外键:
alter table 表名
add constraint 外键名 foreign key (字段名1)
references 关联表 (字段名2);
在建立表格时就指定主键和外键
create table T_STU (
STU_ID char(5) not null,
STU_NAME varchar2(8) not null,
constraint PK_T_STU primary key (STU_ID)
);
主键和外键一起建立:
create table T_SCORE (
EXAM_SCORE number(5,2),
EXAM_DATE date,
AUTOID number(10) not null,
STU_ID char(5),
SUB_ID char(3),
constraint PK_T_SCORE primary key (AUTOID),
constraint FK_T_SCORE_REFE foreign key (STU_ID)
references T_STU (STU_ID)
)
--创建表
create table classes(
id number(9) not null primary key,
classname varchar2(40) not null
)
--查询表
select * from classes;
--删除表
drop table students;
--修改表的名称
rename alist_table_copy to alist_table;
--显示表结构
describe test --不对没查到
-----------------------对字段的操作-----------------------------------
--增加列
alter table test add address varchar2(40);
--删除列
alter table test drop column address;
--修改列的名称
alter table test modify address addresses varchar(40;
--修改列的属性
alter table test modi
create table test1(
id number(9) primary key not null,
name varchar2(34)
)
rename test2 to test;
--创建自增的序列
create sequence class_seq increment by 1 start with 1 MAXVALUE 999999 NOCYCLE NOCACHE;
select class_seq.currval from dual
--插入数据
insert into classes values(class_seq.nextval,'软件一班')
commit;
--更新数据
update stu_account set username='aaa' where count_id=2;
commit;
--创建唯一索引
create unique index username on stu_account(username); --唯一索引 不能插入相同的数据
--行锁 在新打开的对话中不能对此行进行操作
select * from stu_account t where t.count_id=2 for update; --行锁
--alter table stuinfo modify sty_id to stu_id;
alter table students drop constraint class_fk;
alter table students add constraint class_fk foreign key (class_id) references classes(id);--外键约束
alter table stuinfo add constraint stu_fk foreign key (stu_id) references students(id) ON DELETE CASCADE;--外键约束,级联删除
alter table stuinfo drop constant stu_fk;
insert into students values(stu_seq.nextval,'张三',1,sysdate);
insert into stuinfo values(stu_seq.currval,'威海');
select * from stuinfo;
create table zhuce(
zc_id number(9) not null primary key,
stu_id number(9) not null,
zhucetime date default sysdate
)
create table feiyong (
fy_id number(9) not null primary key,
stu_id number(9) not null,
mx_id number(9) not null,
yijiao number(7,2) not null default 0,
qianfei number(7,2) not null
)
create talbe fymingxi(
mx_id number(9) not null primary key,
feiyong number(7,2) not null, //共7位数字,小数后有两位
class_id number(9) not null
}
create table card(
card_id number(9) primary key,
stu_id number(9) not null,
money number(7,2) not null default 0,
status number(1) not null default 0 --0表可用,1表挂失
)
--链表查询
select c.classname||'_'||s.stu_name as 班级_姓名,si.address from classes c,students s , stuinfo si where c.id=s.class_id and s.id=si.stu_id;
insert into students values(stu_seq.nextval,'李四',1,sysdate);
insert into stuinfo values(stu_seq.currval,'南京');
--函数
select rownum,id,stu_name from students t order by id asc;
--中间表实现多对多关联
--(1 1, 1 n,n 1,n n )
--1 n的描述 1的表不作处理 n的表有1表的字段
--1 1的描述 主外键关联
--n n的描述 中间表实现多对多关联
create table course(
course_id number(9) not null,
couser_name varchar2(40) not null
)
alter table course to couse;
create table stu_couse(
stu_couse_id number(9) primary key,
stu_id number(9) not null,
couse_id number(9) not null
)
create unique index stu_couse_unq on stu_couse(stu_id,couse_id); --唯一学生
create sequence stu_couse_seq increment by 1 start with 1 MAXVALUE 999999 NOCYCLE NOCACHE;
create sequence couses_seq increment by 1 start with 1 MAXVALUE 999999 NOCYCLE NOCACHE;
insert into course values(couses_seq.nextval,'计算机原理');
insert into course values(couses_seq.nextval,'编译原理');
insert into course values(couses_seq.nextval,'数据库原理');
insert into course values(couses_seq.nextval,'数据结构');
insert into course values(couses_seq.nextval,'计算机基础');
insert into course values(couses_seq.nextval,'C语言初步');
commit;
insert into stu_couse values(stu_couse_seq.nextval,1,1);
insert into stu_couse values(stu_couse_seq.nextval,1,3);
insert into stu_couse values(stu_couse_seq.nextval,1,5);
insert into stu_couse values(stu_couse_seq.nextval,1,5);
insert into stu_couse values(stu_couse_seq.nextval,2,1);
commit;
select * from stu_couse;
select * from course;
--select s.stu_name,sc.couse_id, c.couser_name from students s,course c,stu_couse sc where stu_id=1
--select couse_id from stu_couse where stu_id=1
select cl.classname,s.stu_name,c.couser_name from stu_couse sc, students s,course c,classes cl where s.id=sc.stu_id and sc.couse_id=c.course_id and s.class_id=cl.id and s.id=1;
--班级——姓名
select c.classname,s.stu_name from students s,classes c where s.class_id=c.id and s.id=2;
select * from students s where s.id=2
--班级——姓名——课程
select cl.classname,s.stu_name,c.couse_name from stu_couse sc,students s,classes cl,couse c where sc.stu_id=s.id and sc.couse_id=c.couse_id and s.id=26;
--sql 语句的写法,现写出关联到的表,然后写出要查找的字段,第三 写出关联条件 ,记住在写关联到的表时先写数据多的表,这样有助于提高sql的效率
select c.couser_name,s.stu_name from stu_couse sc,students s,course c where c.course_id=1 and c.course_id=sc.couse_id and sc.stu_id=s.id;
select s.stu_name from students s,stu_couse sc where s.id=sc.stu_id group by s.id,s.stu_name;
select c.classname,count(sc.couse_id) from stu_couse sc,students s,classes c where s.class_id=c.id and s.id=sc.stu_id group by c.classname;
select s.stu_name, count(sc.couse_id) from stu_couse sc,students s,classes cl where s.id=sc.stu_id group by s.id,s.stu_name having count(sc.stu_couse_id)>3;
班级 学生 选课数量
select cl.classname,count(sc.stu_couse_id) from stu_couse sc,students s,classes cl where s.id=sc.stu_id and s.class_id=cl.id group by cl.classname;
--班级 学生 选课数量
select cl.classname,s.stu_name,count(sc.stu_couse_id) from stu_couse sc,students s,classes cl where s.id=sc.stu_id and s.class_id=cl.id group by s.stu_name;
select cl.classname,s.stu_name,count(sc.stu_couse_id) from stu_couse sc ,students s,classes cl where sc.stu_id=s.id and s.class_id=cl.id group by s.id;
select cl.classname,s.stu_name,count(sc.stu_couse_id) from stu_couse sc,students s,classes cl where sc.stu_id=s.id and s.class_id=cl.id group by s.stu_name;
--班级 学生 所选课程id 所选课程名称
--创建试图 目的把表联合起来 然后看成一个表,在与其他的联合进行查询
create view xsxk as select cl.classname, s.stu_name,c.couse_id, c.couse_name from stu_couse sc,students s,classes cl,couse c where sc.stu_id=s.id and sc.couse_id=c.couse_id and s.class_id=cl.id;
select * from xsxk
create view classstu as select s.id,c.classname,s.stu_name from students s,classes c where c.id=s.class_id;
drop view classstu; --删除视图
select * from classstu;
create view stu_couse_view as select s.id ,c.couse_name from stu_couse sc,students s,couse c where s.id=sc.stu_id and sc.couse_id=c.couse_id;
select * from stu_couse_view;
create view csc as select cs.classname,cs.stu_name,scv.couse_name from classstu cs,stu_couse_view scv where cs.id=scv.id;
select * from csc;
select * from classes cross join students; --全连接,相当于select * from classes,students;
select * from classes cl left join students s on cl.id=s.class_id; --左连接 不管左表有没有 都显示出来
select * from classes cl right join students s on cl.id=s.class_id; --右连接
select * from classes cl full join students s on cl.id=s.class_id; --全连接
insert into classes values(class_seq.nextval,'软件四班');
create table sales(
nian varchar2(4),
yeji number(5)
);
insert into sales values('2001',200);
insert into sales values('2002',300);
insert into sales values('2003',400);
insert into sales values('2004',500);
commit;
select * from sales;
drop table sale;
select s1.nian,sum(s2.yeji) from sales s1,sales s2 where s1.nian>=s2.nian group by s1.nian order by s1.nian desc;
select s1.nian,sum(s2.yeji) from sales s1,sales s2 where s1.nian>=s2.nian group by s1.nian;
s
年 年业绩总和
2001 200
2002 500
2003 900
2004 1400
create table test1(
t_id number(4)
);
create table org(
org_id number(9) not null primary key,
org_name varchar2(40) not null,
parent_id number(9)
);
create sequence org_seq increment by 1 start with 1 MAXVALUE 999999 NOCYCLE NOCACHE;
drop sequence org_seq;
insert into org values(1,'华建集团',0);
insert into org values(2,'华建集团一分公司',1);
insert into org values(3,'华建集团二分公司',1);
insert into org values(4,'华建集团财务部',1);
insert into org values(5,'华建集团工程部',1);
insert into org values(6,'华建集团一分公司财务处',2);
insert into org values(7,'华建集团一分公司工程处',2);
select * from org;
--不正确 不能实现循环
select b.org_id , b.org_name ,b.parent_id from org a,org b where a.org_id=7 and a.parent_id=b.org_id;
select * from org connect by prior parent_id=org_id start with org_id=7 order by org_id;
select * from org connect by prior org_id=parent_id start with org_id=1 order by org_id;
create table chengji(
cj_id number(9) not null primary key,
stu_cou_id number(9) not null,
fen number(4,1)
);
insert into chengji values(1,1,62);
insert into chengji values(2,2,90);
insert into chengji values(3,3,85);
insert into chengji values(4,4,45);
insert into chengji values(5,5,68);
insert into chengji values(6,6,87);
commit;
select * from chengji;
select * from stu_couse;
--在oracle 中好像不适用 alter table chengji change stu_cou_id stu_couse_id;alter table shop_jb change price1 price double;
学生姓名 平均分
select s.stu_name,avg(cj.fen) from stu_couse sc,chengji cj,students s where s.id=sc.stu_id and sc.stu_couse_id=cj.stu_couse_id group by s.id,s.stu_name;
select s.stu_name from students s,stu_couse sc,chengji cj where s.id=sc.stu_id and sc.stu_couse_id=cj.stu_couse_id group by s.id,s.stu_name;
select s.stu_name,cj.fen from students s,stu_couse sc,chengji cj where s.id=sc.stu_id and sc.stu_couse_id=cj.stu_couse_id and cj.fen>60;
学生姓名 科目 成绩
select s.stu_name,c.couse_name,cj.fen from stu_couse sc,students s,couse c,chengji cj where sc.stu_id=s.id and sc.couse_id=c.couse_id and sc.stu_couse_id=cj.stu_couse_id and cj.fen>60 order by=;
select * from stu_couse;
--集合运算
--选择了课程3的学生 union 选择了课程5的学生 并集
--选择了课程3 或者 选择了课程5的学生
select s.stu_name from students s,couse c,stu_couse sc where s.id=sc.stu_id and sc.couse_id=c.couse_id and c.couse_id=3
union
select s.stu_name from students s,couse c,stu_couse sc where s.id=sc.stu_id and sc.couse_id=c.couse_id and c.couse_id=5
--选择了课程3,5,2 的学生 intersect 选择课程1,2,4的学生 交集
--求选择了课程 2 并且 选择了课程 3 的学生 交集
select s.stu_name from students s,couse c,stu_couse sc where s.id=sc.stu_id and sc.couse_id=c.couse_id and c.couse_id=2
intersect
select s.stu_name from students s,couse c,stu_couse sc where s.id=sc.stu_id and sc.couse_id=c.couse_id and c.couse_id=3;
--选择了课程3,5,8的学生 minus 选择了课程1,7,8的学生 --差集
-- 求所有课程的成绩都大于 60 的学生 差集
select distinct(s.stu_name) from stu_couse sc,students s,couse c,chengji cj where sc.stu_id=s.id and sc.couse_id=c.couse_id and sc.stu_couse_id=cj.stu_couse_id and cj.fen>60
minus
select distinct(s.stu_name) from stu_couse sc,students s,couse c,chengji cj where sc.stu_id=s.id and sc.couse_id=c.couse_id and sc.stu_couse_id=cj.stu_couse_id and cj.fen<60;
create user han identified by han default tablespace
users Temporary TABLESPACE Temp;
grant connect,resource,dba to han; //授予用户han开发人员的权利
--------------------对表的操作--------------------------
创建表格语法:
create table 表名(
字段名1 字段类型(长度) 是否为空,
字段名2 字段类型 是否为空
);
-增加主键
alter table 表名 add constraint 主键名 primary key (字段名1);
-增加外键:
alter table 表名
add constraint 外键名 foreign key (字段名1)
references 关联表 (字段名2);
在建立表格时就指定主键和外键
create table T_STU (
STU_ID char(5) not null,
STU_NAME varchar2(8) not null,
constraint PK_T_STU primary key (STU_ID)
);
主键和外键一起建立:
create table T_SCORE (
EXAM_SCORE number(5,2),
EXAM_DATE date,
AUTOID number(10) not null,
STU_ID char(5),
SUB_ID char(3),
constraint PK_T_SCORE primary key (AUTOID),
constraint FK_T_SCORE_REFE foreign key (STU_ID)
references T_STU (STU_ID)
)
--创建表
create table classes(
id number(9) not null primary key,
classname varchar2(40) not null
)
--查询表
select * from classes;
--删除表
drop table students;
--修改表的名称
rename alist_table_copy to alist_table;
--显示表结构
describe test --不对没查到
-----------------------对字段的操作-----------------------------------
--增加列
alter table test add address varchar2(40);
--删除列
alter table test drop column address;
--修改列的名称
alter table test modify address addresses varchar(40;
--修改列的属性
alter table test modi
create table test1(
id number(9) primary key not null,
name varchar2(34)
)
rename test2 to test;
--创建自增的序列
create sequence class_seq increment by 1 start with 1 MAXVALUE 999999 NOCYCLE NOCACHE;
select class_seq.currval from dual
--插入数据
insert into classes values(class_seq.nextval,'软件一班')
commit;
--更新数据
update stu_account set username='aaa' where count_id=2;
commit;
--创建唯一索引
create unique index username on stu_account(username); --唯一索引 不能插入相同的数据
--行锁 在新打开的对话中不能对此行进行操作
select * from stu_account t where t.count_id=2 for update; --行锁
--alter table stuinfo modify sty_id to stu_id;
alter table students drop constraint class_fk;
alter table students add constraint class_fk foreign key (class_id) references classes(id);--外键约束
alter table stuinfo add constraint stu_fk foreign key (stu_id) references students(id) ON DELETE CASCADE;--外键约束,级联删除
alter table stuinfo drop constant stu_fk;
insert into students values(stu_seq.nextval,'张三',1,sysdate);
insert into stuinfo values(stu_seq.currval,'威海');
select * from stuinfo;
create table zhuce(
zc_id number(9) not null primary key,
stu_id number(9) not null,
zhucetime date default sysdate
)
create table feiyong (
fy_id number(9) not null primary key,
stu_id number(9) not null,
mx_id number(9) not null,
yijiao number(7,2) not null default 0,
qianfei number(7,2) not null
)
create talbe fymingxi(
mx_id number(9) not null primary key,
feiyong number(7,2) not null, //共7位数字,小数后有两位
class_id number(9) not null
}
create table card(
card_id number(9) primary key,
stu_id number(9) not null,
money number(7,2) not null default 0,
status number(1) not null default 0 --0表可用,1表挂失
)
--链表查询
select c.classname||'_'||s.stu_name as 班级_姓名,si.address from classes c,students s , stuinfo si where c.id=s.class_id and s.id=si.stu_id;
insert into students values(stu_seq.nextval,'李四',1,sysdate);
insert into stuinfo values(stu_seq.currval,'南京');
--函数
select rownum,id,stu_name from students t order by id asc;
--中间表实现多对多关联
--(1 1, 1 n,n 1,n n )
--1 n的描述 1的表不作处理 n的表有1表的字段
--1 1的描述 主外键关联
--n n的描述 中间表实现多对多关联
create table course(
course_id number(9) not null,
couser_name varchar2(40) not null
)
alter table course to couse;
create table stu_couse(
stu_couse_id number(9) primary key,
stu_id number(9) not null,
couse_id number(9) not null
)
create unique index stu_couse_unq on stu_couse(stu_id,couse_id); --唯一学生
create sequence stu_couse_seq increment by 1 start with 1 MAXVALUE 999999 NOCYCLE NOCACHE;
create sequence couses_seq increment by 1 start with 1 MAXVALUE 999999 NOCYCLE NOCACHE;
insert into course values(couses_seq.nextval,'计算机原理');
insert into course values(couses_seq.nextval,'编译原理');
insert into course values(couses_seq.nextval,'数据库原理');
insert into course values(couses_seq.nextval,'数据结构');
insert into course values(couses_seq.nextval,'计算机基础');
insert into course values(couses_seq.nextval,'C语言初步');
commit;
insert into stu_couse values(stu_couse_seq.nextval,1,1);
insert into stu_couse values(stu_couse_seq.nextval,1,3);
insert into stu_couse values(stu_couse_seq.nextval,1,5);
insert into stu_couse values(stu_couse_seq.nextval,1,5);
insert into stu_couse values(stu_couse_seq.nextval,2,1);
commit;
select * from stu_couse;
select * from course;
--select s.stu_name,sc.couse_id, c.couser_name from students s,course c,stu_couse sc where stu_id=1
--select couse_id from stu_couse where stu_id=1
select cl.classname,s.stu_name,c.couser_name from stu_couse sc, students s,course c,classes cl where s.id=sc.stu_id and sc.couse_id=c.course_id and s.class_id=cl.id and s.id=1;
--班级——姓名
select c.classname,s.stu_name from students s,classes c where s.class_id=c.id and s.id=2;
select * from students s where s.id=2
--班级——姓名——课程
select cl.classname,s.stu_name,c.couse_name from stu_couse sc,students s,classes cl,couse c where sc.stu_id=s.id and sc.couse_id=c.couse_id and s.id=26;
--sql 语句的写法,现写出关联到的表,然后写出要查找的字段,第三 写出关联条件 ,记住在写关联到的表时先写数据多的表,这样有助于提高sql的效率
select c.couser_name,s.stu_name from stu_couse sc,students s,course c where c.course_id=1 and c.course_id=sc.couse_id and sc.stu_id=s.id;
select s.stu_name from students s,stu_couse sc where s.id=sc.stu_id group by s.id,s.stu_name;
select c.classname,count(sc.couse_id) from stu_couse sc,students s,classes c where s.class_id=c.id and s.id=sc.stu_id group by c.classname;
select s.stu_name, count(sc.couse_id) from stu_couse sc,students s,classes cl where s.id=sc.stu_id group by s.id,s.stu_name having count(sc.stu_couse_id)>3;
班级 学生 选课数量
select cl.classname,count(sc.stu_couse_id) from stu_couse sc,students s,classes cl where s.id=sc.stu_id and s.class_id=cl.id group by cl.classname;
--班级 学生 选课数量
select cl.classname,s.stu_name,count(sc.stu_couse_id) from stu_couse sc,students s,classes cl where s.id=sc.stu_id and s.class_id=cl.id group by s.stu_name;
select cl.classname,s.stu_name,count(sc.stu_couse_id) from stu_couse sc ,students s,classes cl where sc.stu_id=s.id and s.class_id=cl.id group by s.id;
select cl.classname,s.stu_name,count(sc.stu_couse_id) from stu_couse sc,students s,classes cl where sc.stu_id=s.id and s.class_id=cl.id group by s.stu_name;
--班级 学生 所选课程id 所选课程名称
--创建试图 目的把表联合起来 然后看成一个表,在与其他的联合进行查询
create view xsxk as select cl.classname, s.stu_name,c.couse_id, c.couse_name from stu_couse sc,students s,classes cl,couse c where sc.stu_id=s.id and sc.couse_id=c.couse_id and s.class_id=cl.id;
select * from xsxk
create view classstu as select s.id,c.classname,s.stu_name from students s,classes c where c.id=s.class_id;
drop view classstu; --删除视图
select * from classstu;
create view stu_couse_view as select s.id ,c.couse_name from stu_couse sc,students s,couse c where s.id=sc.stu_id and sc.couse_id=c.couse_id;
select * from stu_couse_view;
create view csc as select cs.classname,cs.stu_name,scv.couse_name from classstu cs,stu_couse_view scv where cs.id=scv.id;
select * from csc;
select * from classes cross join students; --全连接,相当于select * from classes,students;
select * from classes cl left join students s on cl.id=s.class_id; --左连接 不管左表有没有 都显示出来
select * from classes cl right join students s on cl.id=s.class_id; --右连接
select * from classes cl full join students s on cl.id=s.class_id; --全连接
insert into classes values(class_seq.nextval,'软件四班');
create table sales(
nian varchar2(4),
yeji number(5)
);
insert into sales values('2001',200);
insert into sales values('2002',300);
insert into sales values('2003',400);
insert into sales values('2004',500);
commit;
select * from sales;
drop table sale;
select s1.nian,sum(s2.yeji) from sales s1,sales s2 where s1.nian>=s2.nian group by s1.nian order by s1.nian desc;
select s1.nian,sum(s2.yeji) from sales s1,sales s2 where s1.nian>=s2.nian group by s1.nian;
s
年 年业绩总和
2001 200
2002 500
2003 900
2004 1400
create table test1(
t_id number(4)
);
create table org(
org_id number(9) not null primary key,
org_name varchar2(40) not null,
parent_id number(9)
);
create sequence org_seq increment by 1 start with 1 MAXVALUE 999999 NOCYCLE NOCACHE;
drop sequence org_seq;
insert into org values(1,'华建集团',0);
insert into org values(2,'华建集团一分公司',1);
insert into org values(3,'华建集团二分公司',1);
insert into org values(4,'华建集团财务部',1);
insert into org values(5,'华建集团工程部',1);
insert into org values(6,'华建集团一分公司财务处',2);
insert into org values(7,'华建集团一分公司工程处',2);
select * from org;
--不正确 不能实现循环
select b.org_id , b.org_name ,b.parent_id from org a,org b where a.org_id=7 and a.parent_id=b.org_id;
select * from org connect by prior parent_id=org_id start with org_id=7 order by org_id;
select * from org connect by prior org_id=parent_id start with org_id=1 order by org_id;
create table chengji(
cj_id number(9) not null primary key,
stu_cou_id number(9) not null,
fen number(4,1)
);
insert into chengji values(1,1,62);
insert into chengji values(2,2,90);
insert into chengji values(3,3,85);
insert into chengji values(4,4,45);
insert into chengji values(5,5,68);
insert into chengji values(6,6,87);
commit;
select * from chengji;
select * from stu_couse;
--在oracle 中好像不适用 alter table chengji change stu_cou_id stu_couse_id;alter table shop_jb change price1 price double;
学生姓名 平均分
select s.stu_name,avg(cj.fen) from stu_couse sc,chengji cj,students s where s.id=sc.stu_id and sc.stu_couse_id=cj.stu_couse_id group by s.id,s.stu_name;
select s.stu_name from students s,stu_couse sc,chengji cj where s.id=sc.stu_id and sc.stu_couse_id=cj.stu_couse_id group by s.id,s.stu_name;
select s.stu_name,cj.fen from students s,stu_couse sc,chengji cj where s.id=sc.stu_id and sc.stu_couse_id=cj.stu_couse_id and cj.fen>60;
学生姓名 科目 成绩
select s.stu_name,c.couse_name,cj.fen from stu_couse sc,students s,couse c,chengji cj where sc.stu_id=s.id and sc.couse_id=c.couse_id and sc.stu_couse_id=cj.stu_couse_id and cj.fen>60 order by=;
select * from stu_couse;
--集合运算
--选择了课程3的学生 union 选择了课程5的学生 并集
--选择了课程3 或者 选择了课程5的学生
select s.stu_name from students s,couse c,stu_couse sc where s.id=sc.stu_id and sc.couse_id=c.couse_id and c.couse_id=3
union
select s.stu_name from students s,couse c,stu_couse sc where s.id=sc.stu_id and sc.couse_id=c.couse_id and c.couse_id=5
--选择了课程3,5,2 的学生 intersect 选择课程1,2,4的学生 交集
--求选择了课程 2 并且 选择了课程 3 的学生 交集
select s.stu_name from students s,couse c,stu_couse sc where s.id=sc.stu_id and sc.couse_id=c.couse_id and c.couse_id=2
intersect
select s.stu_name from students s,couse c,stu_couse sc where s.id=sc.stu_id and sc.couse_id=c.couse_id and c.couse_id=3;
--选择了课程3,5,8的学生 minus 选择了课程1,7,8的学生 --差集
-- 求所有课程的成绩都大于 60 的学生 差集
select distinct(s.stu_name) from stu_couse sc,students s,couse c,chengji cj where sc.stu_id=s.id and sc.couse_id=c.couse_id and sc.stu_couse_id=cj.stu_couse_id and cj.fen>60
minus
select distinct(s.stu_name) from stu_couse sc,students s,couse c,chengji cj where sc.stu_id=s.id and sc.couse_id=c.couse_id and sc.stu_couse_id=cj.stu_couse_id and cj.fen<60;
发表评论
-
Oracle EBS Item Import 物料导入 (2) 源代码 成功执行
2012-08-24 10:56 5514CREATE OR REPLACE PACKAGE PkgIm ... -
Oracle 体系结构
2012-08-20 17:29 988数据库(Database) 数据库是一个数据的集合,不仅 ... -
instr()函数,特殊用法,代替like,in
2012-08-20 17:19 5395--created by : wanglin --cre ... -
Oracle PL/SQL 常用函数总结
2012-08-20 14:02 1623--created by : wanglin --cre ... -
MERGE 使用例子
2012-08-17 17:01 1076--MERGE <Usage Case> --P ... -
内存表使用
2012-08-16 16:46 1712一、 内存表概念 1、PL/SQL表类似于C语言中的 ... -
临时表的使用方法
2012-08-16 15:48 1617临时表的使用方法: 创建 Oracle 临 ... -
Oracle EBS 二次开发 FND_GLOBAL PACKAGE 返回全局变量
2012-08-10 10:52 3028这个包,可以应用于你的 PL/SQL 中! 这个包 ... -
如何定义一个简单的Concurrent Program
2012-08-09 15:08 1029Oracle Apps R12下如何定义一个简单的Hello ... -
aaa
2012-07-13 14:25 0sdsdfas > http:/ ... -
Oracle_PL_ SQL_ 教程:函数
2012-07-12 21:32 1178--############################# ... -
Oracle_PL_ SQL_ 教程:包
2012-07-12 21:30 1007--############################# ... -
Oracle_PL_ SQL_ 教程:错误和异常
2012-07-13 08:44 7726--############################# ... -
Oracle_PL_ SQL_ 教程:控制语句(条件语句、循环语句)
2012-07-12 21:27 1008--############################# ... -
Linux下Oracle存储过程调用Java程序(含外部包)
2012-07-13 10:03 6799一、描述: 用Java编写了一个导入Excel数 ... -
Oracle_PL_ SQL_ 教程:游标
2012-07-11 23:12 933--############################# ... -
Oracle存储过程中调用JAVA程序【转载】
2012-07-11 23:00 1111Oracle存储过程中调用JAVA程序 软件环境 ...
相关推荐
### Oracle基本建表语句知识点总结 #### 一、创建用户 在Oracle数据库中,创建用户是基础操作之一。这通常用于控制不同开发者或应用程序之间的访问权限。 **语法:** ```sql CREATE USER <username> IDENTIFIED BY...
### Oracle基本建表语句集知识点详解 #### 创建用户 - **语法**: ```sql CREATE USER <用户名> IDENTIFIED BY <密码> DEFAULT TABLESPACE <表空间名> TEMPORARY TABLESPACE <临时表空间名>; GRANT <角色>,<角色...
oracle向mysql建表语句的迁移。 直接表结构的生成sql脚本
本话题主要关注如何利用Python的xlrd库来读取Excel文件,并根据其中的数据生成适用于Oracle数据库的建表语句。 首先,xlrd是一个Python库,专门用于读取Excel文件。它支持多种Excel文件格式,包括.xls和.xlsx,使得...
本篇将深入探讨Oracle中的基本建表语句及其相关操作。 首先,建表语句的基本格式如下: ```sql CREATE TABLE 表名 ( 列名1 数据类型 [约束条件], 列名2 数据类型 [约束条件], ... ); ``` 1. **表名**:这是你...
建表语句(CREATE TABLE)是SQL语言的基本组成部分,用于定义数据库中的表结构,包括字段名、数据类型、约束条件等。 Excel 2003作为一个电子表格软件,提供了丰富的数据组织和分析功能,但并不直接支持SQL操作。...
本文将详细介绍Oracle的基本建表语句及相关操作。 首先,创建用户是数据库管理的基础。Oracle中创建用户的基本语法如下: ```sql CREATE USER 用户名 IDENTIFIED BY 密码 DEFAULT TABLESPACE 表空间名 TEMPORARY ...
### Oracle经典建表语句详解 #### 一、概述 在数据库管理中,创建表是一项基本而重要的操作。本文档将详细介绍两个Oracle经典建表语句案例:`DHC_BY_GOODSBUY`表与`DHC_BY_GOODSBUYTOTAL`表的创建过程,并额外解析...
Oracle建表语句Oracle建表语句
- SQL脚本:这些脚本可能包含了从Oracle到StarRocks的建表语句模板,需要根据实际的Oracle表结构进行调整。 - 工具代码:可能是用C#编写的工具类,用于自动化执行上述步骤,包括连接、读取、转换和写入数据。 总...
本文将详细解析Oracle的基本建表语句以及相关的数据库操作。 首先,创建用户是数据库管理的第一步。以下是一个创建用户`han`的示例: ```sql CREATE USER han IDENTIFIED BY han DEFAULT TABLESPACE users ...
例如,"mysql.sql", "postgresql.sql", "oracle.sql", "mssql.sql"分别包含这些数据库的建表语句。运行相应的SQL文件后,确保检查表是否成功创建,并且没有语法错误。 在使用Quartz时,还需要注意以下几点: - 配置...
用于Oracle建系统表,如s_emp等
Oracle数据库安装完毕,自带有很实用的练习用表:DEPT、EMP、BONUS、SALGRADE。很方便练习。 但是MySQL数据库安装完毕,却没有练习用表...特此,把Oracle这4个练习用表的建表语句,分别用Oracle语句和MySQL语句写出来。
提供了一个Oracle数据库建表语句的完整示例代码,用于演示如何在Oracle环境中创建一个结构化的数据表。 资源优点: 完整性展示:DEMO提供了从基础建表到复杂约束(如外键、自增主键)等实际生产场景所需的完整SQL...
一个标准的Oracle建表语句通常包含以下部分: ```sql CREATE TABLE 表名 ( 字段1 数据类型(长度) [约束], 字段2 数据类型(长度) [约束], ... PRIMARY KEY (主键字段) ); ``` 其中: - `表名`:表示新建表的...
本主题聚焦于从Sybase数据库中导出全部表的建表语句,并转换为Oracle、MySQL和Sybase自身的格式。这样的操作对于跨平台的数据迁移、数据库结构比对以及系统兼容性测试具有很高的实用价值。 首先,让我们深入了解`...
oracle建表语句,怎么建表空间,表空间的用户名密码。整理自己查看的。
我们都知道在9i之前,要想获得建表和索引的语句是一件很麻烦的事。我们可以通过 export with rows=no来得到,但它的输出因为格式的问题并不能直接拿来用。而另一种方法就是写复杂的脚本来查询数据字典,但这对于一...