jqkyp 发表于 2018-9-21 10:36:36

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]
查看完整版本: oracle简单使用