ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ORACLE笔记(2)ORACLE 学习中用到的SQL命令

ORACLE笔记(2)ORACLE 学习中用到的SQL命令

原创 Linux操作系统 作者:sap-barrypan 时间:2009-03-23 14:14:17 0 删除 编辑

 

sqlplus sys/****** as sysdba   利用超级用户名的登录(在我使用时没有成功)

sqlplus "as sysdba";可以登陆到ORACLE上,这种方式是启用OS验证方式,因此不用输入名密码,使用用户名SYS登陆的,

os验证就是由操作系统来保证登陆用户的合法性,而密码验证则是由数据库自身保证用户合法性。os可以远程验证,但需要使用安全的协议。

select user from dual;使用这个命令查询当前的用户名

system/******; 在登录到sqlplus上之后,利用这个命令登录oracle,system 是用户名******是密码;

alter user scott account unlock;   利用超级用户登录以后为scott帐户解锁

desc emp   查询emp表的结构

select * from emp; 查询emp表里的所有据*号代表所有,是通 配符

select ename,sal*12 from emp;这是显示emp表里面的数据ename 和sal*12 的结果其中sal*12是一个算术表达式

select sysdate from emp;   显示了十四行系统时间,原因是emp表里原来有十四条记录

select ename, sal*12 annual_sal from emp;中间annual_sal是sal*12的别名,在显示时annual_sal变成了大写

select ename, sal*12 “annual_sal” from emp;中间的双引号是为了保持原来的格式,

在oracle中,空值(Null)与其它数进行运算后的值是空值

select ename||sal from emp;把表中的两个字符串连接显示

select ename || 'slskjf' from emp;是在ename数据后面接上‘slskjf’这个字符串,在任何数据库的sql语句中都一样

select distinct deptno from emp;在emp表中选择显示deptno,取消了重复的值

 select * from emp
 where deptno = 10;从表emp中选出depno=10的所有选项

select * from emp where ename = 'clark';选出emp表中名字叫CLARK的雇员信息(雇员的姓名必须和表中完全一样,大小写不能变)

select ename, sal from emp where sal > 1500;是选出显示表中salary>1500的雇员信息

select ename, sal from emp where deptno <> 10;这是选择表中daptno不等于1500的雇员信息的值<>是sql 语言中的不等号

select ename,sal from emp where ename > 'cba';这里是字符串比较评判的标准是ASK||码,从第一个字符开始依次比较

select ename, sal from emp where sal between 800 and 1500;这里是选择了sal值在800到1500之间的值,包括800和1500

select ename, sal from emp where sal >=800 and sal <= 1500;


空值的选调:
select ename, sal, comm from emp where comm is null;

select enme, sal, comm from emp where comm is not null;

select ename,sal,comm from emp where sal in (800,1500,2000);是用来选调出谁的sal值是800或1500或2000

select ename,sal,comm from emp where ename in (KING','SCOTT','MICHALE');选出ename 等于这三个值的选项(名字的大小写必须和原表中保持一致)


日期的处理::

select ename, sal, hiredate from emp where hiredate > '20-dec-81';选出在81年12月20日以后入职的人员列表,(在使用这个命令时一定要主意系统中的时间表示格式以及月份是用中文还是英文表示)一月:January 二月:February 三月:March 四月:April 五月:May 六月:June 七月:July 八月:August 九月:September
十月:October 十一月:November 十二月:December

select ename, sal from emp where deptno = 10 or sal > 1500;这是一个条件选择的语句

select ename, sal from emp where sal not in (800,1500);


通配符:

.代表一个字母

*代表0个或者多个

?代表0个或者一个

+代表一个或者多个

%代表0个或者多个

select ename, sal from emp where ename like '%all%';  指all左边有0或者多个字母,右边有0个或者多个的

select ename, sal from emp where enmae like '-all%';指左边有一个字符,右边有0或者多个字符

名字中间有特殊符号的用转义字符;
select ename from emp where ename like '%\%%',是选出ename中有%的项,\是sql中默认的转义字符

select ename from emp where ename like '%$%%' escape '$';这里是自定义 了转义字符$

数据的自定义排序:
select * from dept order by deptno desc;是表示按照deptno的值倒序排列

select empno,ename from emp order by empno asc;指按empno升序排列,sql默认的顺序是升序

select empno, ename from emp where daptno <> 10 order by empno asc;是先按条件过滤数据然后再排序

select ename, sal, deptno from emp order by deptno asc,ename desc; 这个表示先按照deptno升序排列要是deptno 相同则按照ename的倒序排列
 

下面的这个程序是对select以及where  ,order语句的总结
 select ename, sal*12 annual_sal from emp
 where ename not like '_A%' and sal > 800
 order by sal desc;


创建用户
connect sys/*** as sysdba; 再登录到系统上之后用该命令登录超级管理员,只有登录超级管理员才可以有权限创建用户

创建一个名为chenjie的用户:

CREATE USER chenjie                              //创建的用户名

IDENTIFIED BYcj_password                 //identified by 后跟密码

DEFAULT BY  mbl_tbs            //default tablespace 为用户指定默认的表空间

QUATA  5m ON mbl_tbs ;                 //指定表空间后必须用quata  on 命令指定大小

修改用户的信息:

ALTER USER  chenjie

IDENTIFIED BY  chenjie_pa

QUATA 10m ON mbl_tabs;

利用命令为scott解锁
alter user scott account unlock;
修改帐户scott密码为tiger;
alter user scott identified by tiger;
锁住用户帐户
alter user scott account lock;

删除用户,假如用户现在正连接在数据库上,必须用命令ALTER SYSTEM......KILL SESSION终止对话,然后用命令DROP USER 语句将其删除,如果要删除的用户模式中还有模式对象,则必须在DROP USER 子句中指定CASCADE关键字,否则oracle将返回错误信息。

DROP USER  chenjie CASCADE;

创建了一个表叫emp,代码:
create table emp
(empno number(4) not null,
ename varchar2(10),
job varchar2(9),
mgr number(4),
hiredate date,
sal number(7,2),
comm number(7,2)),


创建了一个名为BARRY的表,包含三个field,NAME,AGE,HEIGHT
插入信息;
insert into barry (neme,age,height) values ('lessie',22,165);插入数据时应该先查看表的结构注意,数字不加‘’号,VARCHAR2要加‘’等格式。

其它

在运行中输入sqlplusw可以打开oracle的登陆窗口
select * from tab;查询这个用户下有多少表;

在查询了emp表后显示出现的问题:
1,显示的行宽不够,
2,分成多页显示
使用下列命令:
set linesize 100;每行的宽度
set pagesize 30;每页显示30行

select enme,sal,sal+330 from dept;显示名称,工资以及工资加330后的结果

select ename as 姓名,sal as 薪水 from emp;查询显示结果的时候姓名和薪水是ename sal 的别名,显示的时候上面显示'姓名''薪水',不出现enam sal
也可以省略as,别名前面也可以是一个公式

select ename||'工作是:'||job AS 雇员信息,sal from emp;连接时ename 和job 中间会出现“工作是:”

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16683570/viewspace-574933/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 小白的空间
请登录后发表评论 登录
全部评论

注册时间:2008-12-06

  • 博文量
    74
  • 访问量
    183075