第一课:客户端。
1. sql plus(客户端),命令行直接输入:sqlplus,然后按提示输入用户名,密码。
2. 从开始程序运行:sqlplus,是图形版的sqlplus.
3. http://localhost:5560/isqlplus
toad:管理, plsql developer:
第二课:更改用户。
1. sqlplus sys/bjsxt as sysdba
2. alter user scott account unlock;(解锁)
第三课:table structure
1. 描述某一张表:desc 表名。
2. select * from 表名。
第四课:select 语句:
1.计算数据可以用空表:比如:.select 2*3 from dual
ename,sal*12 annual_sal from emp;与select ename,sal*12 "annual sal" from emp;区别,加双引号保持原大小写。不加全变大写。
3. select ename ||abcd" 如果连接字符串中含有单引号,用两个单引号代替一个单引号。
第五课:distinct
select deptno from emp;
select distinct deptno from emp;
select distinct deptno from emp;
select distinct deptno ,job from emp
去掉deptno,job两者组合的重复。更多的项,就是这么多项的组合的不重复组合。
第六课:where
select * from emp where deptno =10;
select * from emp where deptno <>10;不等于10
select * from emp where ename ='bike';
select ename,sal from emp where sal between 800 and 1500 (>800 and <=1500)
空值处理:select ename,sal,comm from emp where comm is (not) null;
select ename,sal,comm from emp where ename ( not)in ('smith','king','abc');
select ename from emp where ename like '_a%';代表一个字母,%代表0个或多个字母。 如果查询%
可用转义字符。\%还可以用escape '$比如:select ename from emp where ename like '%a%' escape '$
第七课: orderby
select * from dept;
select * from dept order by dept desc;(默认:asc)
select ename,sal,deptno from emp order by deptno asc,ename desc;
第八课: sql function1:
select ename,sal*12 annual_sal from emp
where ename not like '_a%' and sal>800
order by sal desc;
select lower(ename) from emp;
select ename from emp
where lower(ename) like '_a%';等同于。
select ename from emp where ename like '_a%' or ename like '_a%';
select substr(ename,2,3) from emp;从第二字符截,一共截三个字符。
select chr(65) from dual 结果为:a
select ascii('a') from dual 结果为:65
select round(23.652,1) from dual; 结果为: 23.7
select round(23.652,-1) from dual; 20
select to_char(sal,'$99_999_999') from emp;
select to_char(sal,'l99_999_999') from emp;人民币符号,l:代表本地符号。
这个需要掌握牢:
select birthdate from emp;
显示为:birthdate
17-12月-80
改为:select to_char(birthdate,'yyyy-mm-dd hh:mi:ss') from emp;
显示:birthdate
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual; /也可以改为:hh12
to_char(sysdate,'yy
to_date函数:
select ename,birthdate from emp where birthdate > to_date('1981-2-20 12:34:56','yyyy-mm-dd hh24:
mi:ss');
如果直接写 birthdate>'1981-2-20 12:34:56'会出现格式不匹配,因为表中的格式为: dd-mm月-yy.
select sal from emp where sal>888.88 无错。但。
select sal from emp where sal>$1,250,00;
会出现无效字符错误。
改为:select sal from emp where sal>to_number('$1.250.00','9,999,99');
把空值改为0
select ename,sal*12+nvl(comm,0) from emp;
这样可以防止comm为空时,sal*12相加也为空的情况。
第九课: group function 组函数。
max,min,**g ,count,sum函数。
select to_char(**g(sal),'99999999,99') from emp;
select round(**g(sal),2) from emp;
结果:2073.21
select count(*)from emp where deptno=10;
select count(ename) from emp where deptno=10; count某个字段,如果这个字段不为空就算一个。
select count(distinct deptno) from emp;
select sum(sal) from emp;
第十课: group by语句。
需求:现在想求,求每个部门的平均薪水。
select **g(sal) from emp group by deptno;
select deptno **g(sal) from emp group by deptno;
select deptno,job,max(sal) from emp group by deptno,job;
求薪水值最高的人的名字。
select ename,max(sal) from emp;出错,因为max只有一个值,但等于max值的人可能好几个,不能匹配。
应如下求:select ename from emp where sal=(select max(sal) from emp);
oracle笔记
1 查看表的结构 desc tabledescription 2 set timing on 打开操作表的时间记录。3 消除重复行 distinct 4 大小写不区分的是列名,而不是里面的数据。1 可以对某一列直接进行加减乘除。两列相加。2 如果有一列为null,所得结果也为空。使用nvl函数处理n...
Oracle笔记
第1页1.oracle 的使用 1.1.sqlplus 的命令 初始化表的位置 set nls lang american 设置编码才可以使用下面脚本 cd oracle home rdbms cd demo 我们目前使用的是oralce 9i 9201 版本 select from v versi...
oracle笔记
clear 清屏。col title for a20 设置title的字符最多有20个。oracle介绍。rdbsrdb 基本的存储结构是,二维表。表头。行。列。字段。sql的分类 dsl 关键字 select dml 操作 insert delete update ddl 定义 create dr...