01-oracle限定查询-20190404

关系型数据库和半结构化数据(xml文件)

oracle12c:c代表云计算

PDB,CDB

sql语句执行顺序:

第一步:from子句控制数据来源;

第二步:where子句使用限定符对数据行过滤;

第三步:select子句确定要显示的数据列;

第四步:order by 最后执行。

#sqlplus中设置行显示300个字符(折行时使用,格式化操作命令)

SETLINESIZE 300

#设置 每页的显示数据长度

SETPAGESIZI 30

 #ed(sqlplus中用ed命令创建记事本,打开记事本后在记事本中编写要执行的命令,随后使用@mldn 执行mldn中的sql命令。

默认创建的文档保存目录为/home/oracle)

SQL>define_EDITOR=vim

SQL> ed test.sql

#指定用户链接数据库

conn user/password  (as sysdba)

#查看当前用户

show user

#oracle11g中模板库scott的创建sql目录

$ORACLE_HOME/rdbms/admin/utlsampl.sql

#连接符(注意中英文状态下的单引号)

select  '姓名:'||ename||'工资:'||sal as 雇员信息 from emp;

#null空判断,用法:is null / is not null

#关系运算符包括:>,<,>=,<=,=,!=,<>

--null 表示未知数据,如果直接利用关系运算(‘=’)判断是不会有结果的。如:

#in , not in

--使用in操作符判断的数据范围中包含了null,不会影响查询结果

--sql强制定义了not in的条件中不能有null这个条件,使用not in的语句条件中有null,那么查询结果会没有任何数据显示。
select * from emp t where t.empno not in(7876,7788,null)
--释义:not in 和in其目的是显示部分数据,本句中not in排除了7876,7788,再排除不为null的数据行,语义为显示全部数据。
--(如果数据行较多则会造成数据库死键,所以sql定义了not in的语句中不能有null作为条件,如果有null条件则查询显示的结果为空)

#like 模糊查询

%:匹配任意类型和长度的字符;

%%:匹配中文字符;

_:匹配单个任意字符。

--查询已名字以S开头的员工信息

select *from emp t where t.ename like 'S%';

null不能作为关系运算符(>,<,>=,<=,=,!=,<>)和not in的条件使用,否则查询的结果为空。

#小结练习:

select *
from emp t
where
(t.job='MANAGER' AND T.DEPTNO='10')--部门10,职务经理
or (t.deptno='20' and t.job='CLERK') --部门20,职务业务员
or (t.sal>='2000' and t.job not in ('CLERK','MANAGER'))--工资大于2000,职务不是经理和业务员
AND(T.ENAME LIKE '%S%' OR t.ename LIKE '%K%')--名字中包含S或K

 

--order by(asc 升序,desc降序)

--示例:工资由高到低排列,若工资相同按入职时间早晚排序。

原文地址:https://www.cnblogs.com/joeshang/p/10574728.html