一、sqlpuls用sys账户登录
(sqlplus是客户端连上服务器的一个工具)
1.使用cmd控制台登录
sqlplus / as sysdba
2.直接使用sqlplus用户名口令登录
用户名sys口令as sysdba(口令在登录的过程中不会显示)
3.以sys超级用户名,dba角色,超级管理员的身份解锁scott用户,并为Scott用户设置一个密码为123456
解锁用户:alter user scott account unlock;
设置密码:alter user scott identified by 123456;
4.普通用户的登录
sqlplus username/password
注意:在忘记密码的情况下可以选择登录sys来重新修改密码。
5.使用tab表来获取当前用户下的所有对象
显示emp表结构
查询emp表内容
我们发现这个表格显示有点乱,所以我们可以将每页显示的数据条数和列宽都设置一下
column hiredate format a10;(a10代表10个字母的长度,只可以用a来代表字母)
column empno format 9999;(9代表数字,只可以用9表示)
set pagesize 80;(设置每页的显示条数为80)调整之后的表格如下图所示:
关于select
使用/杠,执行最近一次的SQL语句
/
清屏,属于SQL*PLUS工具中的命令
host cls;
查询emp表的结构
desc emp;
查询emp表的所有内容,*号表示通配符,表示该表中的所有字段,但*号不能和具体字段一起使用
select * from emp;
或
select empno,ename,sal,deptno from emp;
查询emp表的员工编号,姓名,工资,部门号,列名,大小写不敏感,但提倡大写
select empno "编号",ename "姓名",sal "工资",deptNO "部门号" FROM Emp;
查询emp表的不重复的工作
select distinct job from emp;(distinct只能用于单字段,而不适用多字段)
查询员工的编号,姓名,月薪,年薪(月薪*12)
select empno,ename,sal,sal*12 "年薪" from emp;
查询员工的编号,姓名,入职时间,月薪,年薪,年收入(年薪+奖金)
select empno "编号",ename"姓名",hiredate "入职时间",sal "月薪",sal*12 "年薪",sal*12+comm "年收入" from emp;
注意:如果结果为null,在sqlplus客户端工具中,是不显示null这个值的
解决null的问题,使用NVL()函数,NVL(a,b):如果a是NULL,用b替代;如果a是非NULL,就不用b替代,直接返回a的值\
select NVL(null,10) from emp;结果有14行记录
select NVL(null,10) from dual;结果有1行记录
select empno "编号",ename"姓名",hiredate "入职时间",sal "月薪",sal*12 "年薪",sal*12+NVL(comm,0) "年收入" from emp;
注意:null与具体数字运算时,结果为null
使用列别名,查询员工的编号,姓名,月薪,年薪,年收入(年薪+奖金),AS大小写都可且可以省略AS,别名用双引号
select empno AS "编号",ename as "姓名",sal "月薪" from emp;
或
select empno AS 编号,ename as 姓名,sal 月薪 from emp;
区别
select empno AS "编号",ename as 姓名,sal "月 薪" from emp;
注意:
列名不能使用单引号,因为orac