目录
一、Oracle的基本查询语句
日期列:是指数据类型为日期类型的列,如date类型。日期列的默认显示格式为“DD-MON-RR”。RR代表年,而且只取年份的后两位数字。
日期格式中的RR与YY的区别:
--去除重复行
--select distinct deptno, job from emp;
select * from emp;
--设置简体中文的日期格式
alter session set nls_language = 'SIMPLIFIED CHINESE';
select empno,ename,hiredate from emp;
--设置美国英语的日期格式
alter session set nls_language = 'AMERICAN';
select empno,ename,hiredate from emp;
--设置特定格式
alter session set nls_date_format='YYYY/MM/DD';
select empno,ename,hiredate from emp;
二、Oracle查询语句中算术运算符的使用
在算数运算符中的空值null:
- null表示未知值,它既不是空格也不是0。
- 当算术表达式包含null时,其显示结果也为空(null)。
空值与默认值:
- 空值:当插入数据时,如果没有为特定列提供数据,并且该列没有默认值,那么其结果为null。
- 默认值:在创建表时可以使用default关键字为列设置默认值,在表中插入数据时,如果没有为该列提供数据,那么该列将使用默认值。
--select * from emp;
-- 算术运算符的演示
--select empno,ename,sal,sal*12 from emp;
--
--select empno, ename, sal*12+sal/2 from emp;
--
--select empno, ename, 200+sal*12 from emp;
--
--select empno, ename, (sal+100)*12 from emp;
--
--select empno, ename, sal, comm, sal+comm from emp;
--默认值的演示
--create table student(
-- sid number(8,0) primary key,
-- name varchar2(10),
-- sex char(2) default '男',
-- age number(2,0) default 20,
-- address varchar2(50)
--);
--insert into student(sid,name) values (20010001,'张三');
select * from student;
insert into student values(20010002,'王五',default,21,'北京市昌平区');
commit;
三、查询语句中列的别名、连接符、字符串
--列的别名
select empno "雇员编号", ename "雇员名", sal*12 "年收入" from emp;
select empno "雇员编号", ename "雇员名", sal*12 年收入 from emp;
select empno "雇员编号", ename "雇员名", sal*12 as 年收入 from emp;
--连接符
select ename||'的月工资是:'||sal||'岗位是:'||job as 雇员职位信息 from emp;
select ename||5 from emp;
四、基本查询--过滤数据(比较运算)
--数字值的情况
select * from emp where deptno=20;
--字符值
select * from emp where job='MANAGER';
--日期值
select * from emp where hiredate = '02-4月-81';
--比较运算
select * from emp where sal = 3000;
select * from emp where sal >= 3000;
select * from emp where sal < 3000;
select * from emp where sal <> 3000;
select * from emp where sal != 3000;
select * from emp where sal>1000 and sal<3000;
select * from emp where sal<1000 or sal>3000;
五、基本查询--过滤数据(范围模糊查询等)
--范围查询between..and
select empno, ename, sal from emp where sal between 1500 and 3000;
--in
select empno,ename, job from emp where job in ('SALESMAN','MANAGER','CLERK');
--模糊查询like
select * from emp where ename like 'J%';
select * from emp where ename like '_AR%';
select * from emp;
select * from emp where ename like 'G\_%' escape '\';
--is null
select empno, ename, sal, comm from emp where comm is not null;
六、基本查询--过滤数据(逻辑运算)
--and
select empno, ename, job, deptno from emp where job='MANAGER' and deptno=10;
--or
select empno, ename, job, sal from emp where job='MANAGER' or sal>2000;
--not
select empno, ename,job from emp where job not in ('CLERK','SALESMAN','MANAGER');
--混合
select empno,ename, job, sal from emp where (sal>2000 or deptno=30) and job not in ('PRESIDENT','MANAGER');
七、基本查询--排序数据
--单列排序
select ename, comm from emp order by comm asc;
--使用列的别名排序
select empno, ename, sal*12 年收入 from emp order by 年收入 desc;
--多列排序
select empno,ename, deptno, sal from emp order by deptno asc, sal desc;
八、Oracle中SQL语句与SQLPLUS命令的区别
SQL:是关系数据库的基本操作语言,它是应用程序与数据库进行交互操作的接口,从而使得应用开发人员、数据库管理员、最终用户都可以通过SQL语言对数据库进行操作。
SQLPlus:是Oracle公司所提供的工具程序,是与Oracle数据库进行交互的客户端工具,借助SQLPlus工具可以查看、修改数据库记录。在SQLPlus中,可以运行SQLPlus命令与SQL语句。
Oracle的服务问题:
如果Oracle的客户端与服务器都在一个电脑上,用SQLPlus工具,通过如下代码连接数据库的时候可以只启动一个服务。
- 连接数据库的命令:conn sys/口令 as sysdba
- 启动的服务:OracleServiceORCL
Oracle的客户端与服务器段不在同一个电脑上,或即使在同一个电脑上,但是出现了下面的情况,都需要启动监听器服务。
- 连接数据库的命令:conn sys/口令 @orcl as sysdba
- 通过图形化客户端工具连接数据库服务器时,如:SQL Developer,PLSQL Developer工具。
- 登录基于web的企业管理器EM时。
- 总之:涉及到网络监听的地方是必须启动监听器服务的。
- 此时启动的最基本的服务有两个:OracleOraDb11g_home1TNSListener和OracleServiceORCL。