oracle基本查询
登录到oracle:
在本机进入虚拟机中oracle中的orcl数据库:
sqlplus scott/tiger@10.10.10.128:1521/orcl
在本机浏览器中登录到orcl数据库:
虚拟机ip:1158/em
登录:sys password sysdba
isqlplus:
虚拟机ip:5560/isqlplus
录屏:
spool:录屏命令
开启:spool d:\基本查询.txt
关闭:spool off
基本操作与设置:
spool d:\基本查询.txt
注释:--
/*
xxxxxx
*/
--清屏:linux:host clear
windows:host cls
--当前用户:show user
--当前用户下的表:select * from tab;
--员工表的结构:desc emp
--查询所有员工信息:select * from emp;
--查看行宽:show linesize
linesize 80:一行显示80个字符,包括空格
--设置行宽:set linesize 150
--设置列宽:
col+列的名字(大小写不敏感)+ for + a(用来代表他是一个字符串)+数字(代表名字这个字符串的宽度是8个字符)
col ename for a8
col+列的名字(大小写不敏感)+ for + 9(用9代表一位数字)
col sal for 9999
--执行上一条sql语句:/
--通过列的名字来查询具体的列:select empno,ename,job,mgr,hiredate,sal,comm,
deptno from emp;(可以分行写)
注意:
SQL语句大小写不敏感。
SQL可以写在一行或者多行
关键字不能被缩写也不能分行
各子句一般要分行写。
使用缩进提高语句的可读性。
sql优化:(数据库的优化)
1. 尽量使用列名(取代*)
当sql敲错的时候:
使用c命令:c(change)
默认定位到上一条语句的第一行,使用数字让其定位到具体的出错的行
2(定位到第二行)
c /form/from(/后的第一个表示要改的单词,后面一个表示要改成的单词)
sql支持算数表达式:
--查询员工信息: 员工号 姓名 月薪 年薪
select empno,ename,sal,sal*12 from emp;
--查询员工信息: 员工号 姓名 月薪 年薪 奖金 年收入
关系:年薪+奖金=年收入 年薪=月薪*12
select empno,ename,sal,sal*12,comm,sal*12+comm from emp;
SQL中的null值:
1. 包含null的表达式都为null
2. null永远!=null
滤空函数:
nvl(a,b):当a的值为空的时候,返回b;如果a的值不等于空,返回a自己
nvl2
--查询员工信息: 员工号 姓名 月薪 年薪 奖金 年收入
关系:年薪+奖金=年收入 年薪=月薪*12(奖金可能为空)
select empno,ename,sal,sal*12,comm,sal*12+comm from emp;
改成:
select empno,ename,sal,sal*12,comm,sal*12+nvl(comm,0) from emp;
--查询奖金为null的员工:
select * from emp where comm is null;
别名:
三种形式:(1)as “姓名”
(2)“姓名”
(3)姓名
一二两种别名没有区别,二三两种别名有区别:
如果别名中含有特殊符号、数字或关键字,必须要加双引号
select empno as “员工”,ename “姓名”,sal 月薪,sal*12,comm,sal*12+nvl(comm,0) from emp;
连接符:
把列与列,列与字符连接在一起。
用‘||’表示
可以用来‘合成’列。
查询员工信息: ***的薪水是****
select ename||'的薪水是'||sal 信息 from emp;
--distinct去掉重复记录:
select deptno from emp;
加入distinct后记录不会重复
select distinct deptno from emp;
select distinct deptno, job from emp;
--distinct作用于后面所有的列
dual 表:伪表
当所做的操作与任何表都无关的时候 ,使用dual表
dual 表:伪表
如:打印hello world
select concat(‘Hello’,’ World’) from dual;
select 3+2 from dual;
查询员工信息: ***的薪水是****
select ename||'的薪水是'||sal 信息 from emp;
sql与sql*plus
sql与sql*plus命令
sql:
一种语言
ANSI标准
关键字不能缩写
使用语句控制数据库中的表的定义信息和表中的数据
sql*plus:
一种环境
oracle的特性之一
关键字可以缩写
命令不能改变数据库中的数据的值
集中运行
sql语句:不能被缩写
select insert update delete
sqlplus语句:可以被缩写
desc(escribe)
ed(edit)
c(change)
col(column)
for(format)
在装有oracle的虚拟机上,通过lsnrctl status来查看配置信息
通过修改监听程序参数文件来修改各个配置信息