--创建用户
create user han identified by han default tablespace
users Temporary TABLESPACE Temp;
grant connect,resource,dba to han; //授予用户han开发人员的权利

--------------------对表的操作--------------------------
--创建表
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基本建表语句相关推荐

  1. PowerDesigner,如何将Mysql数据库建表语句转化成Oracle数据库建表语句。

    在实际工作中,一张表,我们可能需要在Mysql数据库中建表,又要在Oracle数据库中建表.表中每个字段的数据类型.中文注释.是否可为NULL 问题,非常影响我们建表的效率.本篇文章,以Mysql数据 ...

  2. oracle的建表语句

    oracle数据库的建表语句,具体语法如下: CREATE TABLE tablename(column_name datatype [null,not null],column_name datat ...

  3. oracle数据库建表语句

    1.一个用户可以有多个角色 2.一个用户可以有多个权限 3.一个权限也可以给多个用户 Oracle 系统默认用户 system:是数据库内置的一个普通管理员 sys:用数据库的超级用户,必须以 sys ...

  4. oracle tpch建表语句,IQ性能调优示例——执行TPCH查询IQ与Oracle的比较(1)

    在先前的博文讲述了在装载完TPCH 1GB数据之后启动IQ Server,执行TPCH定义的一些典型查询的执行情况.在下面说明一下在相同环境.表和数据情况下,Oracle 10g R2执行的情况.这里 ...

  5. ORACLE查看建表语句DDL

    select dbms_metadata.get_ddl('TABLE','TABLE_NAME') from dual; TABLE_NAME为目标表的名称

  6. oracle tpch建表语句,Linux/Mac下tpch工具生成数据集

    下载后解压tpch下的dbgen文件夹,这就是用来生成数据集的工具包. 进入文件夹中打开makefile.suite文件,修改如下代码: CC = GCC # Current values for D ...

  7. 使用oracle数据库建表语句,怎么使用sql查询oracle建表语句

    SELECT CREATETION AS "年份" ,SUM(DATE_ROW01) AS "01月" ,SUM(DATE_ROW02) AS "02 ...

  8. PowerDesigner,如何将Oracle数据库建表语句转化成Mysql数据库建表语句。

    在实际工作中,一张表,我们可能需要在Mysql数据库中建表,又要在Oracle数据库中建表.表中每个字段的数据类型.中文注释.是否可为NULL 问题,非常影响我们建表的效率.本篇文章,以Oracle数 ...

  9. oracle和mysql通用建表语句_mysql建表语句到oracle怎么写?

    mysql建表语句到oracle怎么写? CREATE TABLE `Advertisment` (  `AdId` int(8) NOT NULL auto_increment,  `AderId` ...

最新文章

  1. 网吧电源和网络布线经验谈(1)
  2. 修改echarts环形图的牵引线及文字位置
  3. Python(2.7.6) 列表推导式
  4. redis-server启动但进程里没有_Redis——服务器的启动过程
  5. Polya原理的应用经典实例
  6. The Road to SDN: An Intellectual History of Programmable Networks
  7. 欢乐纪中B组周五模拟赛【2019.3.8】
  8. 如何优雅互换Map键与值
  9. Lync与Exchange 2013 UM集成:Lync Server配置
  10. 解决bootstrap dropdown 下拉菜单有时候不能显示的问题
  11. 计算机词汇 音标,计算机词汇带音标word版本.pdf
  12. 睡眠伤害计算机硬件吗,电脑高手告诉您,电脑不关机只睡眠到底伤不伤硬盘?...
  13. 工厂模式及在Spring中的应用
  14. K8S-5--云原生基础/k8s基础及组件/二进制部署k8s集群
  15. CSS设置文字自动换行
  16. C4D快速入门教程——挤压
  17. AT1219 [JOI2013]歴史の研究
  18. Scala简介与安装
  19. WSN 数据链路层协议 SMAC,TMAC…TRAMA...BMAC ,XMAC, ZMAC
  20. 胜博发表示玩游戏也能做公益!守望先锋为乳癌研究基金会募得一千多万美金

热门文章

  1. 实验吧——WEB-认真一点!
  2. 两台计算机是怎么“连接”在一起的
  3. 【Python】PEP8规范
  4. win32com word表格内指定位置插入数据
  5. Python大数据分析(二):大数据技术基础
  6. AMPL IDE语法整理
  7. ubuntu18.04 安装惠普打印机驱动GUI界面
  8. 我参加第七届NVIDIA Sky Hackathon——训练ASR模型
  9. linux下fastfds搭建
  10. 如何删除Mac OS Monterey自带(预装)软件?