1,通过ie访问数据库
地址:http://127.0.0.1:5560/isqlplus/
其中127.0.0.1表示是本机地址,要访问别的地址只需写上需要的ip即可
2,通过sqlplus访问数据库,通过dos命令行输入sqlplus再根据提示输入用户名密码访问数据库。
命令行:sqlplus sys/bjsxt as sysdba回车进入数据库
alter user Scott account unlock;回车,用于更改用户。
exit退出
继续输入sqlplus scott/tiger回车登陆
varchar2支持国际化类型,varchar不支持。
获取当前系统时间
select sysdate from dual;
取得年薪
select ename,sal*12 "anu sal" from emp;
连接字符串
select ename ||comm from emp;
或者select ename||'abcdef' from emp;
如果连接的字符串内有一个单引号那么就用两个单引号代替一个单引号
select distinct deptno,job from emp;
distinct把deptno和job的组合有重复的给去掉。
select * from emp where sal<>5000;
使用模糊查询的时候:%代表0个或多个字母,如果选择的字段中有% 需要用转移字符\,其中下划线_代表一个字母。
也可以用别的符号作为转义字符
select ename from emp where ename like '%$%%' escape
'$';这是自己指定的转义字符。
select * from emp order by deptno asc, ename desc;
选择第二个字母是A或者a的名称;
select ename from emp where lower(ename) like '_a%';
select ename from emp where ename like '_a%' or ename
like '_A%';
把数字转换成字母select chr(65) from dual;
把字母转换成数字select asci('A') from dual;
四舍五入
select round(25.632) from dual;四舍五入到个位
select round(25.632,2) from dual;四舍五入到小数点后两位。
select round(25.632,-1) from dual;四舍五入到十位。
千位分隔符
select to_char(sal, '$99,999.9999') from
emp;
关于日期
select to_char(hiredate,'YYYY-MM-DD HH:MI:SS') from emp;
HH表示12进制,HH24表示24小时。
取出日期在某个时间之前的数据
select ename,hiredate from emp where hiredate>to_date('1981-2-20
12:34:56','YYYY-MM-DD HH24:MI:SS');
转变成数字的函数
select sal from emp where sal >
to_number('$1,250.00','$9,999.00');
处理空值的函数
处理空值null
select ename,sal*12+nvl(comm,0) from emp;
select to_char(avg(sal),'99999999.99') from emp;
或者select round(avg(sal),2) from emp;
查找有多少个唯一的部门编号
select count(distinct deptno) from emp;
每个部门的平均薪水 select avg(sal) from emp group by deptno;
或者 select deptno,avg(sal) from emp group by deptno;
select deptno,job,max(sal) from emp group by deptno,job;
求每个部门的最高工资
select deptno,max(sal) from emp group by
deptno;
求每个部门的平均工资
select deptno,avg(sal) from emp group by
deptno;
having的用法
使用having对分组进行限制
求出平均值大于2000的部门和平均薪水
select avg(sal),deptno from emp group by deptno
having avg(sal)>2000;
薪水大于1200的按照部门分组,平均薪水值大于1500降序排列
select avg(sal)
from emp
where sal>1200
group by deptno
having avg(sal)>1500
order by avg(sal) desc;