oracle基础命令平均,Oracle容易基础命令

1、调用记事本。

如果现在编写语句,那么直接在命令行方式下是很难完成的。有图形界面的时候这样的语句编写很容易,但是很多时候在没有图形界面下,直接写就累了,所以可以利用“ed”命令启动本机的记事本程序。

输入:“ed hello”。

设置每行显示的数据长度:SET LINESIZE 300 ;

设置每次显示的行数:SET PAGESIZE 30;

查询一个用户所有的数据表:select * from tab;

查询表结构:desc表名称;

·DML(数据操作语言):数据的更新与查询操作(SELECT、FROM、INSERT、GROUP BY、HAVING、WHERE、UPDATE、DELETE),在开发之中几乎都是以DML操作为主的。

· DDL(数据定义语言):数据库对象的定义语言,例如:数据表、约束、索引、同义词、用户;一般进行数据库设计的时候都必须掌握。

·DCL(数据库控制语言):数据库的权限控制

·2、关系运算:>、=、=、<=、!=(<>);

· 范围运算:BETWEEN...AND;

· 空判断:IS NULL、IS NOT NULL;

·IN判断:IN、NOT IN、exists()(复杂查询);

· 模糊查询:LIKE、NOT LIKE。

以上的限定符都只能够判断一次,如果现在有若干个限定符,那么就需要进行若干个限定符的连接,可以使用逻辑运算:AND(与)、OR(或)、NOT(非);

· 与操作表示的所有的判断条件都满足时返回真(true);

· 或操作表示若干个判断条件只要有一个满足就返回真(true)。

3、模糊查询:LIKE

LIKE可以实现数据的模糊查询操作,如果要想使用LIKE则必须使用如下的两个匹配符号:

· “_”:匹配任意的一位符号;

· “%”:匹配任意的符号(包含匹配0位、1位、多位)。

WHERE子句的执行优先于SELECT子句,WHERE子句确定数据行,SELECT子句确定数据列;

链接数据库:sqlplus scott/tiger

1、查询全部内容:emp表

select * from emp;

2、查询每个雇员的编号、姓名、职位、基本工资

select empno,ename,job from emp;

3、查询出每个雇员的编号、姓名、基本年薪(月工资是sal,年薪*12)

select empno,ename,sal*12 income from emp;

4、使用“||”进行连接

select '编号:' || empno ||'姓名:' || ename from emp;

5、使用distinct消除重复内容

select distinct job from emp;

select distinct ename,job from emp;

6、查询工资低于1200的雇员(不包含1200)

select * from emp where sal < 1200;

7、查询出工资是3000的雇员

select * from emp where sal = 3000;

8、查询职位不是办事员的雇员(职位是job字段,办事员的职位名称CLERK)

select * from emp where job<>'CLERK' ;

select * from empwhere job!='CLERK' ;

9、要求查询出不是办事员,但是工资低于3000的雇员信息

· 第一个条件(不是办事员):job<>'CLERK';

· 第二个条件(工资低于3000):sal<3000。

select * from emp wherejob<>'CLERK' AND sal<3000 ;

10、查询出职位不是办事员也不是销售的雇员信息

· 第一个条件:job<>'CLERK';

· 第二个条件:job<>'SALESMAN'。

select * from emp where job<>'CLERK' and job<>'SALESMAN';

11、查询出职位是办事员,或者工资低于1200的所有雇员

· 第一个条件:job='CLERK';

· 第二个条件:sal<1200。

两个条件满足一个即可,使用OR连接。

select * from emp where job='CLERK' or sal<1200;

除了AND与OR之外,还可以使用NOT进行求反。即:true变为false、false变为true

此时表示的是工资小与等于2000

select * from emp where not sal<=2000;

12、查询出工资在1500 ~ 3000之间的所有雇员,使用BETWEEN...AND查询;

select * from emp where sal between 1500 and 3000;

13、查询出所有在1981年雇佣的雇员信息

· 范围:1981-01-01('01-1月-81')~ 1981-12-31('31-12月-1981')

select * from emp where hiredate between '01-1月-1981' and '31-12月-1981';

14、查询所有领取佣金不为空的雇员信息

select * from emp where comm is not null;

15、IN操作符(谓词IN,核心)查询出雇员编号是7369或7566或7788或9999的雇员信息

select * from emp where empno=7369 or empno=7566 or empno=9999;

select * from emp where empno in(7369,7566,9999);

用NOT IN,那么这个表示的是不在范围之中,NOT IN里面不能有null;

select * from emp where empno not in(7369,7566,9999);

16、查询所有雇员姓名中以字母A开头的雇员信息

select * from emp where ename like 'A%';

17、查询所有雇员姓名中第二个字母是A的所有雇员

select * from emp where ename like '_A%';

18、查询雇员姓名中任意位置上存在有字母A的雇员信息

select * from emp where ename like '%A%';

19、查询全部

select * from emp where ename like '%%';

20、LIKE可以在任意的数据类型上使用

select * from emp where ename like '%A%' or sal like '%1%' or hiredate like '%81%';

【③ 选出所需要的数据列】SELECT [DISTINCT] * |列[别名],列[别名],列[别名]...

【① 确定数据来源】FROM表名称[别名]

【② 筛选数据行】[WHERE限定条件(s)]

【④ 数据排序】[ORDER BY排序字段[ASC | DESC] ,排序字段[ASC | DESC] , ...];

既然ORDER BY是在SELECT子句之后执行,那么就意味着ORDER BY可以使用SELECT子句定义的别名。

但是对于字段排序有两种形式:

· 升序:ASC,默认不写排序也是升序;

· 降序:DESC,由高到低进行排序。

1、SELECT子句确定数据列;

2、WHERE子句控制数据行;

3、ORDER BY子句永远最后执行。

1、按照工资由高到低排序,此时应该使用的是一个降序排序

select * from emp order by sal desc;

2、按照雇佣日期由早到晚排序

select * from emp order by hiredate asc;

select * from emp order by hiredate;

3、按照工资由高到低排序(降序),如果工资相同,则按照雇佣日期由早到晚排序(升序)

select * from emp order by sal desc,hiredate;

4、所有的排序操作都是在WHERE筛选之后进行的

查询出所有办事员的编号、职位、年薪,按照年薪由高到低排序

办事员:job=’CLERK’;

select empno,job,sal*12年薪from emp where job='CLERK' order by年薪;

5、选择部门30中的所有员工,限定查询使用where子句,部门编号deptno

select * from emp where deptno=30;

6、列出所有办事员(CLERK)的姓名,编号和部门编号,限定查询使用where

select ename,empno,deptno from emp where job='CLERK';

7、找出佣金高于薪金的60%的员工,佣金使用的是comm字段,而薪金是sal,而且comm本身包含有null,null进行任何数学计算结果都是null

select * from emp where comm>sal*0.6;

8、找出部门10中所有经理(MANAGER)或部门20中所有办事员(CLERK)的详细资料

select * from emp where(deptno=10 and job='MANAGER')or(deptno=20 and job='CLERK');

9、找出部门10中所有经理(MANAGER),部门20中所有办事员(CLERK),既不是经理又不是办事员但其薪金大于或等于2000的所有员工的详细资料

第一组条件(部门10中所有经理):deptno=10 AND job='MANAGER';

第二组条件(部门20中所有办事员):deptno=20 AND job='CLERK'。

第三组条件(不是经理又不是办事员但其薪金大于或等于2000):job NOT IN('MANAGER','CLERK') AND sal>=2000

select * from emp where (deptno=10 and job='MANAGER') or (deptno=20 and job='CLERK') or (job not in('MANAGER','CLERK') and sal>=2000);

10、找出收取佣金的员工的不同工作,销售具备佣金,但是现在要的是工作,工作就会有重复数据

select distinct job from emp where comm is not null;

11、找出不收取佣金或收取的佣金低于100的员工

对于null的判断使用IS NULL或IS NOT NULL

select distinct job from emp where comm is null or comm<100;

12、显示不带有“R”的员工的姓名

select * from emp where ename not like'%R%';

13、显示姓名字段的任何位置包含“A”的所有员工的姓名,显示的结果按照基本工资由高到低排序,如果基本工资相同,则按照雇佣年限由早到晚排序,如果雇佣日期相同,则按照职位排序

select * from emp where ename like '%A%' order by sal desc,hiredate,job;

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值