文档章节

oracle数笔

m243043962
 m243043962
发布于 2017/08/12 15:49
字数 1932
阅读 3
收藏 0

--1.  新建部门表,员工表,若数据库中已存在部门员工表,则drop掉,通过create  table 来进行新建。
 drop table dept;  
 
 create table dept(
   deptno int primary key,
   deptname varchar2(22)
 );
 --2.    创建员工emp表,(empNo员工号,eName员工姓名,job工作,mgr上级编号,hiredate雇佣日期,sal薪资,comm佣金,deptNo部门编号)
 create table emp(
  empno int primary key,
  ename varchar2(20),
  job varchar2(20),
  mgr varchar2(20),
  hiredate date,
  sal number(10,2),
  comm number(10,2),
  deptno int 
 );
 --3.    创建部门dept表(deptNo部门编号,dName 部门名称,loc 地点)
 drop table dept;
 
 create table dept(
 deptno int primary key,
 dname varchar2(20),
 loc varchar2(20) 
 )
--4.    向部门表中插入5条数据
insert into dept (deptno,dname,loc) values(1,'公测','gd');
insert into dept (deptno,dname,loc) values(2,'前台','sa');
insert into dept (deptno,dname,loc) values(3,'开发','sh');
insert into dept (deptno,dname,loc) values(4,'销售','hk');
insert into dept (deptno,dname,loc) values(5,'工程','bj');

select * from dept;

--5.    向员工表中插入十条数据,要求员工的部门编号要在部门表中存在
--select * from emp

alter table emp add constraint kk foreign key(deptno) references dept(deptno);

insert into emp (empno,ename,job,mgr,hiredate,sal,deptno)values (4,'小样','写代码','小猫','07-11月-2003','5432.88',3);
insert into emp (empno,ename,job,mgr,hiredate,sal,deptno)values (5,'饭冰冰','唱歌','张丽','07-11月-1988','3456.88',4);
insert into emp (empno,ename,job,mgr,hiredate,sal,deptno)values (6,'花花','小品','小猫','07-11月-2013','5600.88',2);
insert into emp (empno,ename,job,mgr,hiredate,sal,deptno)values (7,'赵本山','写代码','小胖','07-11月-2016','2354.88',1);
insert into emp (empno,ename,job,mgr,hiredate,sal,deptno)values (8,'三等','电影','小猫','07-11月-2017','7777.88',5);
insert into emp (empno,ename,job,mgr,hiredate,sal,deptno)values (9,'是','写代码','小猫','07-11月-2015','5553.88',2);
insert into emp (empno,ename,job,mgr,hiredate,sal,deptno)values (10,'嗯嗯','写代码','啊','07-11月-2014','4356.88',5);
insert into emp (empno,ename,job,mgr,hiredate,sal,deptno)values (11,'方法','写代码','小猫','07-11月-2012','234.88',1);
insert into emp (empno,ename,job,mgr,hiredate,sal,deptno)values (12,'发疯','写代码','小猫','07-11月-2013','8888.88',4);

--6.    写出oracle和java中的基本数据类型,并且分别是什么意思
orale  char(n) 定长字符串,长度不到的用空格来填充 ,最大2000字节
       varchar(n)可变长度的字符串,长度不够自动缩短,最大4000字节
       number(m,n)可变长的数字列,总长m,小数位n
       int 整形数值
       date 日期格式,为‘07-12月-2003’或‘07-12月-03’
       long 可变长字符列,最大长度限制为2GB。
       Blob 这种数据类型允许存储最多4GB的数据
       
java
    整数型byte , long ,int short
    布尔型 boolean
    浮点型 float ,double      
    字符型 char

--7.    sql命令的分类,分为哪几种 ?
DDL(数据定义语言),create,drop ,alter
DML(数据操纵语言),insert ,update ,delete
DQL(数据查询语言),select
DCL(数据控制语言);grant ,commit,rollback
    
--8.    使用alter关键字,给dept表和emp表添加几个备用字段attribute1,,,attribute5 ,数据类型  int,varchar2,number ,date,long       

alter table dept add attribute1 int;
alter table dept add attribute2 varchar2(10);
alter table dept add attribute3 number(10,2);
alter table dept add attribute4 date;
alter table dept add attribute5 Long;

--select * from dept

alter table emp add attribute1 int;
alter table emp add attribute2 varchar2(10);
alter table emp add attribute3 number(10,2);
alter table emp add attribute4 date;
alter table emp add attribute5 Long;

--select * from emp
9.    创建学生表,学生编号为number类型,向其中插入字符串类型的数值是否可以正常插入,写出sql语句
create table student(
 sno number(10,2),
 sname varchar(10)
);

insert into student(sno,sname)values('13','花花');
select *from student

--10.    使用insert  ,delete ,update ,select 关键字来操作员工表和部门表,其中delete,select ,update 
--要带至少两个条件来进行筛选

select * from emp where job='写代码'and mgr='小猫';
update emp set comm=1245,attribute1=23 where job='写代码'and mgr='小猫';
delete from emp where ename='小样'and sal=5432.88;

select * from dept

insert into dept (deptno,dname,loc)values(7,'测试','sh');
select * from dept where dname='开发'and loc='sh';
update dept set deptno=10 where dname='测试'and loc='sh';
delete from dept where dname='测试'and loc='sh';

--11.    使用distinct关键字来消除重复的行。写出sql语句
select  distinct ename from emp;

--12.    查询出部门表所有信息,并且给出别名。
select deptno 部门编号 ,dname 名称,loc 地址 from dept

--14.    新建销售信息表,表格内容如下  ,将其转行为列的形式显示,使用decode函数

create table sal(
  name varchar2(20),
  course varchar2(20),
  sorse number(10)
  
);
insert into sal(name,course,sorse)values('张三','Java',50);
insert into sal(name,course,sorse)values('张三','oracle',55);
insert into sal(name,course,sorse)values('张三','web',60);
insert into sal(name,course,sorse)values('张三','html',70);
insert into sal(name,course,sorse)values('张三','Javascprit',80);

insert into sal(name,course,sorse)values('李四','Java',53);
insert into sal(name,course,sorse)values('李四','oracle',67);
insert into sal(name,course,sorse)values('李四','web',60);
insert into sal(name,course,sorse)values('李四','html',90);
insert into sal(name,course,sorse)values('李四','Javascprit',88);

--select * from sal;

select name, 
max(decode(course,'Java',sorse))java,
max(decode (course,'oracle',sorse)) as oracle,
max(decode(course,'web',sorse))web,
sum(decode(course,'html',sorse))html,
sum(decode(course,'Javascprit',sorse))Javascprit
from sal group by name

15,在上面标的基础上,在添加其他学生考试成绩信息,内容自己定义,统计每个学生出现的次数。
insert into  sal(name,course,sorse)values('小五','Javascprit',88);
insert into sal (name,course,sorse)values('小五','Java',88);
insert into  sal(name,course,sorse)values('花花','Javascprit',88);
insert into sal (name,course,sorse)values('小威','Java',88);

select name,count(1)from sal group by name


--15.    新建学生和班级表,班级表包括,班级编号,班级名称,班主任  三字字段,
--学生表包括,学生编号,学生姓名,性别,年龄,家庭地址,班级编号,描述  ,等字段,
--显示出来每个学生所在的班级名称和班主任名称。

create table classes(
 cno int primary key,
 cname varchar2(20),
 techer varchar(20)
);
create table student1(
sno int primary key,
sname varchar2(20),
sex char(2) check(sex in('男','女')),
yearold number(3),
adress varchar2(50),
cno int,
des varchar2(1000)
);
insert into classes values(1,'一','王老师');
insert into classes values(2,'二','李老师');
insert into classes values(3,'三','小老师');

insert into student1 (sno,sname,cno)values(22,'小红','1');
insert into student1 (sno,sname,cno)values(23,'大和','2');
insert into student1 (sno,sname,cno)values(24,'中国','1');
insert into student1 (sno,sname,cno)values(25,'小品','2');
insert into student1 (sno,sname,cno)values(26,'小品','7');
insert into student1 (sno,sname)values(27,'小品');
select sname,cname,techer from classes c,student1 s where c.cno=s.cno;

--16.    使用外连接,显示所有班级信息,包含没有学生的班级,两种写法
select * from classes c left join student1 s on c.cno=s.cno;
select * from  student1 s right join classes c on c.cno=s.cno;
select * from classes c,student1 s where  c.cno=s.cno(+);

--17.    使用外连接,显示所有的学生信息,包含没有班级的学生,两种写法
select* from student1 s left join classes c on s.cno=c.cno; 
select * from student1 s,classes c where  c.cno(+)=s.cno;
--1.查询出部门是d01部门的员工
--select * from dept
--select * from emp
select ename from emp where deptno=1;

--2.列出职位是“开发”的员工编号
select empno from emp where job='写代码';

--3.找出sal大于4000的员工信息
select * from emp where sal>4000
--4.找出comm 比 sal 大的员工信息
--update emp set comm=7000 where sal=5600.88;
select * from emp where comm>sal;
--5.找出部门d02中工资大于5000的员工
select * from emp where sal>5000 and deptno=2;
--6.找出comm低于 2000 的员工
select ename from emp where comm<2000;
--7.显示员工信息,将先入职的员工排在最前面
select * from emp order by emp.hiredate asc;
--8.使用decode显示员工的部门信息,d01 显示  开发部门,d02 显示测试部门,d03显示运营部门,否则显示其他部门。
select emp.* ,decode(deptno,1,'开发部门',2,'测试部门',3,'运营部门','其他部门') from emp;
--9.分组统计各部门下工资大于5000 的员工姓名和 工资

--10.算出每个职位的员工数,并且算出最低工资
select job,count(1),min(sal) from emp group by job;
 

© 著作权归作者所有

共有 人打赏支持
上一篇: oracle数笔一
下一篇: oracle 学习笔记二
m243043962
粉丝 0
博文 70
码字总数 34357
作品 0
黄冈
程序员
私信 提问
迎双11十周年,OceanBase 2.0挑战新巅峰

2018年是“双11”十周年。2009年11月11日,当时的淘宝商城(天猫的前身)举办了首届网络促销活动,当天销售额为0.5亿元;2017年的双11,天猫、淘宝总成交额1682亿元,创造了25.6万笔/秒的新支...

阿川925
09/26
0
0
大数据数据名词:PV、IPV、UV等

大数据数据名词: 数据名词 定义 计算公式 相关名词 浏览量(PV) 店铺页面被访问的总次数 店铺内页面被点击一次,即被记为一次浏览(PV),一个用户多次点击或刷新同一个页面,会被记为多次浏...

哲别0
2017/10/20
0
0
甲骨文11.9亿美元收云解决方案供应商Aconex

  【IT168 资讯】根据外媒报道,澳大利亚云解决方案供应商Aconex周一宣布,已经收到美国软件巨头Oracle发出的15.6亿澳元(约合11.9亿美元,79.3亿元人民币)的现金收购要约,相当于每股7.80澳...

it168网站
2017/12/18
0
0
AltF4币报:美国监管机构互撕 蔡维德称区块链是五百年来最重要金融创新 181027晚

这是摘要 国家与监管 1、 美国国家银行监管协会起诉货币监理署向区块链公司发放银行执照 2、 乌克兰政府拟批准将数字货币合法化的政策 币种动态 3、 BTC平均每个区块的交易笔数超过BCH15倍 ...

青岛的AltF4
10/27
0
0
Java 社区目前的现状 —— 交易

这是关于一笔交易的故事。 没有人为交易签过字。 但这仍然是一笔重要的交易。 这是Java的主人和Java社区之间的交易。 交易 这是我对Java的主人和Java社区之间如何相互影响作用的观点: Java...

红薯
2011/01/11
2.1K
5

没有更多内容

加载失败,请刷新页面

加载更多

Mariadb二进制包安装,Apache安装

安装mariadb 下载二进制包并解压 [root@test-a src]# wget https://downloads.mariadb.com/MariaDB/mariadb-10.2.6/bintar-linux-glibc_214-x86_64/mariadb-10.2.6-linux-glibc_214-x86_64.t......

野雪球
22分钟前
1
0
ConcurrentHashMap 高并发性的实现机制

ConcurrentHashMap 的结构分析 为了更好的理解 ConcurrentHashMap 高并发的具体实现,让我们先探索它的结构模型。 ConcurrentHashMap 类中包含两个静态内部类 HashEntry 和 Segment。HashEnt...

TonyStarkSir
今天
3
0
大数据教程(7.4)HDFS的java客户端API(流处理方式)

博主上一篇博客分享了namenode和datanode的工作原理,本章节将继前面的HDFS的java客户端简单API后深度讲述HDFS流处理API。 场景:博主前面的文章介绍过HDFS上存的大文件会成不同的块存储在不...

em_aaron
昨天
2
0
聊聊storm的window trigger

序 本文主要研究一下storm的window trigger WindowTridentProcessor.prepare storm-core-1.2.2-sources.jar!/org/apache/storm/trident/windowing/WindowTridentProcessor.java public v......

go4it
昨天
6
0
CentOS 生产环境配置

初始配置 对于一般配置来说,不需要安装 epel-release 仓库,本文主要在于希望跟随 RHEL 的配置流程,紧跟红帽公司对于服务器的配置说明。 # yum update 安装 centos-release-scl # yum ins...

clin003
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部