一、SQLPLUS的配置与认识
SQLPLUS是oracle的一个客户端,可以通过SQLPLUS程序进入,也可以通过DOS窗口敲击sqlplus进入客户端(然而两者并没有什么区别,大公司就是有脾气)。学习时,通过scott用户进入的口令建议设置为tiger。另外,sqlplusde的网页入口在11g这个版本已经没有了。当然,oracle自己也是另外配套了一个客户端,需另行下载,plsql developer,简单学习用dos里的sqlplus够用。
二、账号解锁
使用超级管理员登陆到sqlplus,例如
sqlplus sys/tiger as sysdba
之后
alter user scott account unlock;
即可解锁scott账号。
三、SELECT语句
1.sql语言有四种,最重要的是select语句。sqlplus内置了学习用表。
职员表
desc emp //部门表
desc dept //新水表等级
desc salgrade //薪水表
desc dual //空表
查询方法如下:
select * from salgrade; //查询薪水等级
select * from dept; //查询部门
select * from emp; //查询职员
select * from dual; //查询空表
select ename, sal*12 from emp; //查询每个人的年薪
select ename, sal*12 anuual_sal from emp; //查询年薪并给sal*12起别名,名称会被转化为大写
select ename, "annual sal" from emp; //起别名并保持别名的形式,可以用双引号
select 2*3 from dual; //计算纯数学表达式,显示6
select sysdate from dual; //查询系统时间
select ename, sal*12 + comm from emp; //会发现一些结果无法显示,任何含null的计算式都是null
select ename||sal from emp; //字符串连接符||
select 表示ename || 'dfae' from emp; //字符串的表示是''
select ename || 'dase''deaf' from emp; //如果字符串里有单引号,用两个单引号代替一个单引号
select distinct deptno from emp; //关键字distinct消除重复值
select distinct deptno, job from emp; //distinct修饰多个字段,表示消除重复的多字段
2、where
select * from emp where deptno = 10;//选出部门编号是10的数据,where关键字是过滤条件
select * from emp where ename = 'CLARK'; //选出名字是CLARK的职员
select ename, sal from emp where sal > 1500; //选出薪水大于1500
select ename, sal from emp where sal <> 10; //选出薪水不等于1500
select ename, sal from emp where sal between 800 and 1500; //选出薪水位于800到1500
select ename, sal from emp where sal >= 800 and sal <= 1500; //和上句等效
select ename, sal, comm from emp where comm is null; //空值处理,选出津贴是空的
select ename, sal, comm from emp where comm is not null; //空值处理,选出津贴不是空的
select ename, sal from emp where sal in(800, 1500, 2000); //选出薪水等于括号内值
select ename, sal from emp where sal not in(800, 1500, 2000); //选出薪水不等于括号内值
select ename, sal from emp where ename in ('SMITH', 'KING', 'ABC'); //选出名字等于括号内的
select ename, hiredate from emp where hiredate > '20-2月-81'; //按照特定格式选出雇用时间大于特定值
select ename sal from emp deptno = 10 or sal > 1000; //或的用法
select ename from emp where ename like '%ALL%'; //通配符%表示零个或多个
select ename from emp where ename like '_A%'; //_代替一个字符
select ename from emp where ename like '%\%%'; //有百分号时可以用\作转义字符
select ename from emp where ename like '%$%%' escape '$'; //将$视为转义字符
select * from dept order by deptno desc; //descend降序排序
select * from dept order by deptno asc; //ascend升序排列,asc默认,可写可不写
select empno, ename from emp where deptno > 10 order by empno; //where和order by可一起使用
select ename, sal, deptno from emp order by deptno asc, ename desc; /先按照deptno升序排列,内部再按照ename降序排列,按照多字段排列