Oracle数据库的登陆、sqlplus的一些使用技巧以及Oracle中常用的知识讲解
一、oracle的登陆
(1)一般用户:使用oracle自带的sqlplus,cmd--sqlplus scott/密码;
(2)管理员用户:cmd--sqlplus sys/密码 as sysdba
注意:客户端登陆的方法略
二、sqlplus的一些使用技巧
(1)host cls 清屏---屏幕信息太多
(2)spool d:\笔记.txt--可以用来保存在sqlplus中的的屏幕信息(包含自己的操作)
(3)spool off ---结束控制台的录制
注意:每次文件不能重名,否则会覆盖
(4)show user---显示当前用户
补充:在oracle中表属于某个用户,用户属于数据库 ;
(5)elect * from tab---显示当前用户下的所有的表名称
注意:不是table而是tab
需求1:查出来后表的显示格式不太好看 ,想调整
-- 设置行宽 show linesize; --先显示下行宽 -- 设置行宽 set linesize 150 --设置行宽为150个字符 -- 设置列宽 col ename format a8 -- 说明:表示设置ename这个字段的宽度为8个字符,a表示一个字符 -- 设置列宽 col sal format 9999 -- 说明:表示设置工资这个字段的宽度为4位,因为工资是数字所以用9表示一位数字
需求2:修改语句中的错误单词
select ename,sal form emp; -- 这里的from 敲错了 --(1)执行后出现的错误 --第 1 行出现错误: --ora-00923: 未找到要求的 from 关键字 --(2)修改错误 2 -- 输入出现错误的行号 c /form/from -- c就是change的意思(改变sql语句的错误部分) / --再次执行
需求3:计算员工当月的收入
-- null的问题, null参与运算结果都为null select ename,sal,comm,sal+comm as 当月总收入 from emp;
说明:收入=基本工资+奖金
注意:null参与运算结果都为null
分析:上面结果有误--如果奖金comm是null值得话,和工资相加就变为null了,我们想要如果奖金为null就认为它是0
解决办法:用 nvl(comm,0) 来解决null值问题
select ename,sal,comm,sal+nvl(comm,0) as 当月总收入 from emp;
特点:是null的话就默认为0,否则还是其本身
需求4:修改sql语句
-- (1)ed 命令 将上一条sql 语句 自动粘贴到文本文件中,供我们进行再次编辑修改,然后保存 -- (2)/执行此语句
需求5:去除重复记录(distinct)
select distinct deptno from emp; select distinct job,deptno from emp; -- 两个列组合起来看是没有重复得(好好体会)
说明:distinct作用于后面所有得列
------------------------------
三、oracle中常用的知识
(1)伪表 dual
特点:像一张虚拟得表,它的存在只是为了sql语句语法完整。
select 3+2;--会报错 select 3+2 from dual;--成功执行
说明:select 3+2虽然跟表没关系,但是在orcal中select语句后面必须要有from某张表,不写语法就报错,用伪表来代替一张表。
(2)注意:日期和字符串用单引号括起来,列的别名用双引号(或者不写)括起来