oracle简单使用
连接方式Oracle简单使用
Emp数据表
1.sqlplus命令
1)Scott用户登录:Sqlplus scott/tiger
查询emp表的全部内容
Select *from emp;
问题:
(1)表格的显示格式混乱
(2)所有表格都有标题行
设置每行显示的数据长度:set linesize 300;
设置每次显示胡行数:set pagesize 30;
再执行 select *from emp;
命令格式:coljob for a8;列空格设定8
Coljobfora8;
select *from emp;
2)调用记事本:
利用“ed”命令启动本机记事本程序(例如notepad,vim)
edhello;(在打开的hello.sql中编写语句然后保存,一般保存在C:\Users\Administrator\hello.sql)
@hello; (执行@文件名)
利用@指定也可调用磁盘上的文件,如果后缀也是“*.sql”也可以不用写后缀,否则都要写
@d:aa ; (执行d盘中aa.sql文件)
Ed d:aa ; (打开该文件)
Eda.txt (打开记事本,写好)
@a.txt (执行要加后缀名)
3)显示用户Showuser
切换用户:Conn 用户名/密码
切到sys用户 Connsys/change_on_install assysdba
Select*fromemp;查询不出因为该表属于scott用户 为:emp.scott 用select*from emp.soctt
Showuser
Conn sh
4)调用本机程序
不使用用户登录:Sqlplus /nolog
在sqlplus中考虑到用户可能使用系统命令,所以使用到一个host命令,
拷贝文件:copy原文件 目标位置文件
Copyd:aa.sqlc:1.sql; (不在用户中拷贝,在nolog中拷贝)
Sqlplusscott/tiger
Hostcopyd:aa.sqld:bb.sql ; (在sqlplus中拷贝用host)
2.简单查询
1)[数据的投影操作]---指查询需要的数据列查询员工编号,姓名,工资,职位
Select empno,ename,sal,job fromemp;
除了基本查询列之外,在简单查询中也支持四则运算。
查出编号,姓名,并计算年薪,如下:
Selectempno,ename,sal12from emp;
Selectempno,ename,sal12 income from emp;
Selectempno 员工编号,ename 姓名,sal*12年薪from emp;
2)连接查询--描述
Selectempno || enamefromemp;
可以将连接优化下,中间使用文字描述,“编号:XXX”
普通数字:直接写 字符:加单引号
Selectename|| 1 fromemp;
Selectempno||’hello’emp;
Select‘编号:’||empno||’姓名:’||enamefrom emp;
3)简单查询--消除掉重复内容:
Selectjob from emp;
Selectdistincjobfrom emp;(消除相同的职位)
Selectdistincename,jobfrom emp;(这两列所有数据都存在,在这distinc比较的是姓名和职位没有同时重复的存在)
3scott用户表四张
1)部门表:dept
Descdept;
Select*fromdept;
2)雇员表emp(一个部门多个雇员)
Select*fromemp;
3)工资等级编号(salgrade)
4)工资表(bonus)
该表是空的没任何数据
4 sql限定查询(and or)
查询工资大于1200:Select*fromempwheresal >1200;
工资大于1200总人数:Selelctcount(*)from emp where sal >1200;
工资小于3000且不是办事员:Select* from empwherejob ’CLERK’ANDsal 1500andsal1200;
工资大于1200总人数:Selelctcount(*)from emp where sal >1200;
工资小于3000且不是办事员:Select* from empwherejob ’CLERK’ANDsal 1500andsal
页:
[1]