Oracle学习记录 一 基本指令练习

使用的是Oracle 11g

之前其实已经弄过几下,不过没有太多学习,现在开始重新好好的学习一下,包括SQL语句等。

先从安装后开始,

我安装了客户端sqldeveloper,但是进入后需要连接,这我都忘了怎么弄了,开始查看资料。

点了新建连接后,弹出一个对话窗口,连接名我用的是sys,用户名也用的是sys,口令就是在安装数据库

的时候写的密码,然后在下面“角色”这改成了SYSDBA,下面“SID”填写的是orcl

这样就以数据库管理员身份登录了。

因为我安装完数据库的时候没有解锁其它的用户,就像练习用的scott,这时候可以在这里去解锁了。

在下面找到其他用户,找到scott,右击选择“编辑用户”,把那几个勾去掉,然后设个新密码,这样就OK了,

再去新建个连接,用scott来登录,SID还是orcl这个是在安装的时候确定的应该。

下面开始使用SQL*plus来学习SQL命令:

  1. select * from emp;        别忘了后面的分号,这个就列出了表emp中所有数据
  2. select job from emp;    这是取出表emp中job列所有数据
  3. select distinct job from emp;    这就取出表emp中job列不同的数据,也就是相同的数据只留一个
  4. select * from emp where sal > 2000;    这就是添加了条件,只显示sal大于2000的人员信息
  5. select ename from emp where sal > 2000;    这就是只显示sal大于2000的人名
  6. select ename from emp where sal > 3000 or (sal > 1000 and sal < 2000);    这是多个条件一起
  7. select * from emp where job in ‘CLERK‘;    这是列出job是CLERK的人员信息
  8. select * from emp where job in (‘CLERK‘,‘ANALYST‘);    这是列出job是CLERK和ANALYST的人员信息
  9. select * from emp where hiredate between ‘20-2月-81‘ and ‘03-12月-81‘;    这是列出日期在这个范围的人员
  10. select distinct job from emp where job like ‘%AN%‘;    这是列出job名带AN的job
  11. select sal from emp order by sal asc;    这是从小到大排列sal
  12. select sal, hiredate from emp order by sal asc, hiredate desc;    这是按sal排,如果相同再按hiredate从大到小排
  13. select ename,job,sal from emp where sal > 2000 order by sal asc;    现在加上where条件

下面是函数的练习了:

AVG (平均)
COUNT (计数)
MAX (最大值)
MIN (最小值)
SUM (总合)

14. 现在求所有sal的和

select sum(sal) from emp;

15. 求有多少个人

select count(ename) from emp;

16. 求有多少种job,这就要去掉重复的job项

select count(distinct job) from emp;

17. 多少人有comm奖金

select count(ename) from emp where comm is not null;

18. 按岗位来求sal和

select job,sum(sal) from emp group by job;

19. 给函数设定条件用having,岗位sal和大于5000的岗位

select job,sum(sal) from emp group by job having sum(sal) > 5000;

20. 起别名,先给sum(sal)起名为SUM,别名的本身名中间一个空格

select sum(sal) "SUM" from emp;

21.给表也起个别名

select t.job "JOBS", sum(sal) "SUM" from emp t group by job;

下面是”表格链接“

用emp和dept这两个表来练习,这其实我有点糊涂

22. 显示每个地区的sal和,这显示结果中少了BOSTON是因为在emp中没有40这个deptno,这是内部链接

select t1.loc "LOCALADDR", sum(t2.sal) "SALS" from dept t1, emp t2 where t1.deptno=t2.deptno group by t1.loc;

时间: 2024-10-24 14:42:19

Oracle学习记录 一 基本指令练习的相关文章

[转]Oracle学习记录 九 Prc C学习

经过前面的了解,现在想用C语言来编程了,搜索了很多东西,后来决定先用Pro C来进行学习 在安装完Oracle数据库后就可以进行编程了,里面有一个命令proc就是对程序进行预编译的. 在这记一下,这是一个学习PL/SQL的网站,挺好的 http://www.cnblogs.com/huyong/archive/2012/07/30/2614563.html 创建用户是 create user xx identified by xx account unlock; grant connect, r

Oracle学习记录 六 又一本学习资料练习

学习过最简单的几种语句了,也安装过了几次数据库,本来在看那个高级编程的,但是还有一本入门的没看,就先看了再说, 多练习,熟悉掌握最基本的操作. 我以前登录的时候都是用conn回车,然后再输入密码,这个文档第一个就介绍了另一种登录方法. conn scott/xx 这样就直接登录了,/前是用户名,/后是密码 conn sys/xx as sysdba 这个就是用管理员登录 2. 然后是把刚才输入的sql保存成文件用.sql后缀 select * from emp; save /home/oracl

Oracle学习记录 九 Prc C学习

经过前面的了解,现在想用C语言来编程了,搜索了很多东西,后来决定先用Pro C来进行学习 在安装完Oracle数据库后就可以进行编程了,里面有一个命令proc就是对程序进行预编译的. 写一个test.pc然后 proc iname=test.pc oname=test.c 但是我这怎么也不行,一直出问题 后来我用 proc PARSE=NONE CODE=KR_C LINE=YES INAME=test.pc MODE=ORACLE DBMS=V8 UNSAFE_NULL=YES 这下才生成了t

Oracle学习记录 五 Centos6.4 64bit下安装oracle

错误记录: Invalid source path '../stage/Components/oracle.jdk/1.5.0.17.0/1/DataFiles' specified for unzip. 这个错误应该是我只解压了第一个压缩包,没有解压第二个. 2. 还有一个问题就是按照开始安装的时候,说什么color的问题,这个我在网上看了些,不过,我直接把系统登出一次,重新用oracle登录就没事了. 3. [INS-32021] Insufficient disk space on thi

Oracle学习记录 二 创建表等操作练习

进行了第一章的基本数据操作指令练习后,进行数据库的一些操作. 创建表class有两个栏:numbers和names: create table class (numbers number, names char(20)); 这样建名都是大写的了,不想这样就加上""双引号  numbers这是栏名,number这是数据类型 2. 在建表的时候,限制哪些数据可以存入哪些不可以 create table class2 (numbers number not null, names char(

Oracle学习记录 七 继续接六的

下面是转换函数 to_char select to_char(sysdate,'yyyy') from dual; select to_char(sysdate,'fmyyyy-mm-dd') from dual; select to_char(sysdate,'yyyy-mm-dd') from dual; select to_char(sysdate, 'DDD') from dual;    一年中的第几天 select to_char(sysdate, 'DD') from dual; 

[学习记录]Docker基本操作指令

本文参考了<docker容器与容器云><第一本docker书> 部分指令解释的不会很详细,以后随着用的多了再慢慢完善. 1.docker info docker info需要docker守护进程启动后才能正常执行,因此也能用来判断docker守护进程是否已启动. 2.docker run [options] image [command] [arg...] 基于image镜像创建一个容器,并通过指定的选项进行控制 常见选项: docker run -i -t --name myco

Oracle学习记录 八 多表查询

1. 笛卡尔集 select * from emp, dept; 2. 等值连接 select ename, job from emp, dept where emp.deptno=dept.deptno; 3. 非等值连接 select ename, grade from emp, salgrade where sal between losal and hisal; 这个其实我不太明白到底是怎么弄的.前面的两种都容易理解,这个难道是 拿一个sal就去salgrade中找在哪个范围? 4. 自

Oracle学习记录 三 多语句

UNION和UNION ALL select deptno from emp union select deptno from dept; 相当于这两个结果取并集,union去掉重复的,union all保留重复的 2. intersect select deptno from emp intersect select deptno from dept; 这相当于两个结果取交集. 3. minus select deptno from dept minus select deptno from