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;

命令格式:col job for a8; 列空格设定8

Col job for a8;
select * from emp;

2)调用记事本:
利用“ed”命令启动本机记事本程序(例如notepad,vim)

ed hello;(在打开的hello.sql中编写语句然后保存,一般保存在C:\Users\Administrator\hello.sql)
@hello; (执行@文件名)
利用@指定也可调用磁盘上的文件,如果后缀也是“*.sql”也可以不用写后缀,否则都要写

@d:aa ; (执行d盘中aa.sql文件)
Ed d:aa ; (打开该文件)

Ed a.txt (打开记事本,写好)
@a.txt (执行要加后缀名)

3)显示用户Show user
切换用户:Conn 用户名/密码
切到sys用户 Conn sys/change_on_install as sysdba

     Select  *  from  emp;查询不出  因为该表属于scott用户 为:emp.scott
     用  select  *  from emp.soctt
   Show  user
   Conn sh

4)调用本机程序
不使用用户登录:Sqlplus /nolog
在sqlplus中考虑到用户可能使用系统命令,所以使用到一个host命令,
拷贝文件:copy 原文件 目标位置文件
Copy d:aa.sql c:1.sql; (不在用户中拷贝,在nolog中拷贝)

Sqlplus scott/tiger
Host copy d:aa.sql d:bb.sql ; (在sqlplus中拷贝用host)

2.简单查询

1)[数据的投影操作]---指查询需要的数据列 查询员工编号,姓名,工资,职位
Select empno,ename,sal,job from emp;
除了基本查询列之外,在简单查询中也支持四则运算。
查出编号,姓名,并计算年薪,如下:
Select empno,ename,sal12 from emp;
Select empno,ename,sal
12 income from emp;
Select empno 员工编号,ename 姓名,sal*12 年薪 from emp;

2)连接查询--描述
Select empno || ename from emp;
可以将连接优化下,中间使用文字描述,“编号:XXX”
普通数字:直接写 字符:加单引号
Select ename|| 1 from emp;
Select empno||’hello’ emp;

Select ‘编号:’||empno||’姓名:’||ename from emp;

3)简单查询--消除掉重复内容:
Select job from emp;
Select distinc job from emp;(消除相同的职位)
Select distinc ename,job from emp;(这两列所有数据都存在,在这distinc比较的是姓名和职位没有同时重复的存在)

3 scott 用户表四张


1)部门表:dept
Desc dept;

Select * from dept;

2)雇员表emp(一个部门多个雇员)

Select * from emp;
3)工资等级编号(salgrade)

4)工资表(bonus)

该表是空的没任何数据

4 sql限定查询(and or)
查询工资大于1200:Select * from emp where sal >1200;

工资大于1200总人数:Selelct count(*) from emp where sal >1200;

工资小于3000且不是办事员:Select * from emp where job <>’CLERK’ AND sal <3000;

Betwneen..and 范围
工资在1500到3000雇员
Select from emp where sal >1500 and sal<3000;
Select
from emp where sal between 1500 and 3000;

查询1981年雇佣雇员信息:
Select * from emp where hiredata between ‘01-1月-1981’ end ‘31-12月-1981’;

查询所有领取佣金的雇员信息(comm字段佣金),查询不是空

Select * from emp where comm is not null ;

4 sql限定查询(and or)
查询工资大于1200:Select * from emp where sal >1200;

工资大于1200总人数:Selelct count(*) from emp where sal >1200;

工资小于3000且不是办事员:Select * from emp where job <>’CLERK’ AND sal <3000;

Betwneen..and 范围
工资在1500到3000雇员
Select from emp where sal >1500 and sal<3000;
Select
from emp where sal between 1500 and 3000;

查询1981年雇佣雇员信息:
Select * from emp where hiredata between ‘01-1月-1981’ end ‘31-12月-1981’;

查询所有领取佣金的雇员信息(comm字段佣金),查询不是空

Select * from emp where comm is not null ;

IN操作符
查询雇员编号7369,7566,7788员工信息
Select * from emp where empno IN(7369,7566,7788);

查询雇员编号不是7369,7566,7788的员工信息
Select from emp where empno NOT IN(7369,7566,7788);
Select
from emp where empno not IN(7369,7566,7788,null);错的not in中不能有null

模糊查询like
查询所有雇员姓名中以字母开头为A的员工:
Select * from emp where ename like ‘A%’; 第一个字母为A

Select * from emp where ename like ‘_A%’; 第二个字母为A

Select * from emp where ename like ‘%A%’; 有A的

如果like查询没有设置关键字表示查询全部
Select from emp where ename like ‘%%’ 名字不管是什么全部
Select count(
) from emp where ename like ‘%%’

原文地址:http://blog.51cto.com/12346621/2149669

时间: 2024-08-29 12:37:38

oracle简单使用的相关文章

Oracle简单的备份和恢复-导出和导入(2)

ylbtech-Oracle:Oracle简单的备份和恢复-导出和导入(2) 简单的备份和恢复-导出和导入(2) 1. 用户导入导出文件中的一张表(emp)返回顶部 0.1, 我们在sql plus中删除掉一张表emp,把dept表的记录删空. drop table emp; delete from dept; 之后我们先利用刚才导出的mytable.dmp导入emp表.具体导入步骤如下: 1.在命令行下输入imp命令. 2.系统首先提示我们输入用户名和密码,在这里我们可以用scott/tige

oracle 简单SQL

1, insert into test select * from test;(造测试数据) 2, create table b as select * from a; (创建表结构一样的空表,数据可同上插入数据) 3,linux系统下让sqlplus支持历史命令回调 在linux中实现上述功能,需要一个小工具,叫做rlwrap,这个程式本身是个Shell,可以运行任何你提供给它的命令包括参数,并添加命令历史浏览功能. The rlwrap program is under the GPL li

Oracle简单的备份和恢复-导入和导出

ylbtech-Oracle:Oracle简单的备份和恢复-导入和导出  Oracle安全运行离不开良好的备份和恢复机制,因为我们不是DBA.所以我们也就不过多的讲解DBA的备份和恢复.作为程序员开发者来说,必须了解的是数据的导入和导出,利用这个方法我们可以搬迁数据库和数据. 1. 导出(exp)返回顶部 1.1, Oracle简单的备份和恢复-导出(exp) 1.2, 1.3, 2. 导入(imp)返回顶部 2.1, Oracle简单的备份和恢复-导入(imp) 2.2, 2.3, 3. 导入

oracle 简单入门

1.什么是主键? 答:在数据表中能够唯一和完整标识数据列和行的组合,只能有一个且不能为空. 2.什么是外键? 答:在一个表中存在另一个表的外键. 3.存储过程和触发器的区别 答:触发器和存储过程非常相似,触发器也是sql语句集,两者唯一的区别就是触发器不能使用execute语句,而是在用户执行Transact-SQL语句时自动触发执行. 触发器是在一个修改了指定表中的数据执行的存储过程.通常通过创建触发器来强制实现不同表中的逻辑相关数据的引用完整性和一致性.由于用户不能绕过触发器,所以可以使用它

Oracle简单学习笔记

创建用户 1 CREATE USER username identified by password;//这是最简单的用户创建SQL语句. 2 CREATE USER username identified by password default tablespace users temporary tablespace temp;//增加指定表空间的SQL语句. 分配用户权限 1 grant 权限/角色 to 用户;//把权限或角色的权限 分配给 用户. 2 revoke 权限/角色 from

oracle 简单查询

数据查询是用SELECT命令从数据库的表中提取信息. 语法结构:简单查询 SELECT *|列名|表达式 FROM 表名 WHERE 条件 ORDER BY 列名 语法解析: *表示表中的所有列. 列名可以选择若干个表中的列名,各个列表中间用逗号分隔. 表达式可以是列名.函数.常数等组成的表达式. WHERE子句是查询的条件. ORDER BY 要求在查询的结果中排序,默认是升序. Oracle中可以把查询的结果根据结果集中的表结构和数据形成一张新表. 语法结构:根据结果集创建表 CREATE

oracle 简单备注

1. 建立数据库 备注: 1) oracle 不同于mysql 可以直接create database 2) oracle 创建schema时对应一个用户,即该schema的访问用户,与用户一一对应:但可以存在多个访问用户(带权限控制) 1.1 创建数据库文件 CREATE TABLESPACE XX LOGGING DATAFILE 'D:\app\XX\oradata\orcl\XX.dbf' SIZE 1000M; create temporary tablespace XX tempfi

08.17《jsp》——html+css+js+jsp+servlet+oracle简单项目练习

16,17号,两天时间,结束了JSP的学习,开始了项目的实践学习 第一步是最简单的添加 在这之中,对于数据库的链接,间接的展开了jdbc的复习,在其中由于数据库和老师所给的教材不相符,所以停顿在链接数据的时间很长,在一遍遍的修改ORA-12505错误没有结果的时候,使用最笨的办法重新安装了一个ORACLE数据库,将其命名与老师的同名,这样解决了数据库的链接失败问题. 第二步是查找操作 有了第一次的流程,所以这次速度快了一些,在一边完成查找操作的同时一边熟悉着流程,熟悉着数据流向的过程,由页面 -

Oracle简单学习

最近一段时间重温了oracle关于存储过程和oracle包以及function中的定义, 先看一下要用的表: devices(id number, name varchar2, age number) groups(id number, devicesid number, name varchar2, content varchar2) 在oracle中建立如下的package和package bodies, 下面给出里面具体的内容: 首先是packges下面的devices_pkg内容: 定义