查看oracle相关的进程
ps -ef | grep ora_
连接到数据库,sysdba是默认的超级账户,和linux下的root类似。 scott是创建的用户,密码是tiger。
>sqlplus / as sysdba
>sqlplus scott/tiger
连接到数据库,sysdba是默认的超级账户,和linux下的root类似。 scott是创建的用户,密码是tiger。
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
命令出来后看到提示的数据库详细信息,说明连接进来了。
切换用户
在数据库中SQL> conn scott/tiger
Connected
sql>startup 启动
>sql>startup
ORACLE instance started.
Total System Global Area 830930944 bytes
Fixed Size 2257800 bytes
Variable Size 536874104 bytes
Database Buffers 289406976 bytes
Redo Buffers 2392064 bytes
Database mounted.
Database opened
提示输出和信息,成功。
关闭数据库
sql>shutdown immediate
#SQL> @?/rdbms/admin/utlsampl.sql
[oracle@hwak ~]$ sqlplus scott/tiger 这时就可以登陆了
指定线的长度为200
set lines 200
指定一页显示200
set pages 200 指定一页显示200
表达命令,nvl函数将null暂时设定为0,以便计算无效的、未指定的、未知的或不可预知的值
NULL不是0,也不是空格
字符串可以是SELECT列表中的一个字符,数字,日期。日期和字符只能在单引号中出现。每当返回一行时,字符串被输出一次例如sysdate函数,表示系统时间
在数据库里如果想执行Linux的命令,输入 !后再输入命令(!相当于暂时退出,去执行系统的命令)
>sql>!ps -ef | grep ora_ 查看Oracle进程
& | 把输入的值定义为一个临时的变量,以便接下来的脚本操作 |
&& | 同样是把输出的值定义为一个变量,记录上次&输入的变量,直接调用,不用在输出 |
% | 表示一个或者多个字符,一般不建议放在前面,因为索引浪费性能 |
_ | 表示匹配一个字符,只匹配一个字符 |
输入的变命令运算时有固定的优先级,输出命令不注意优先级,则有可能结果不一样
dual | 虚拟表,不存在的表 |
rownum | 虚拟隐藏的列 |
grant 赋予账号权限
例如:给scott账户创建view权限
sys超级账号赋予SQL> grant create view to scott;
Grant succeeded.
sql>select
功能:可以按col列(column)查看,也可以按row行查看;可以把意思相同的列或行关联,根据关联关系多表查询。
语法:(不区分大小写)
SELECT *|{[DISTINCT] column | expression [alias],...}
FROM table;
* | 所有的列 |
[DISTINCT] | [关键字]可写可不写 distinct是去重 |
column | 列的名字 |
expression | 表达式 |
table | 表名 |
; | 代表一句话结束 |
SELECT | 标识选择哪些列 |
FROM | 标识从哪个表中选择 |
例子:
查看dept所有列
sql> select * from dept
查看自定义列dname列,还有deptno列,将deptno列的数值+100然后输出成新列,命名noplus
sql>select dname,deptno+100 as "noplus",deptno from dept;
中间插入列输出is
sql>select dname,'is',deptno
from dept;
中间插入列并且列名为is
SQL> select dname, 'is'as"is",deptno
from dept;
is重命名一个列标题,便于计算,紧跟列名(也可以在列名和别名之间加入关键字‘AS’),如果它包含空格或特殊字符,或者它是区分大小写的,那么需要双引号
>将dname重命名为xxx
sql>select dname as xxx 将dname
|| 把列与列,列与字符连接在一起,用“||”,可以用来合成列
>将aaa和bbb两列合并显示
sql>select aaa || bbb
去除xx的重复显示
sql>select dietinct xx
使用DESCRIBE命令显示表结构,或者选择表中的Connections树,并使用列选项卡,查看表结构
>sql>desc xxx
type显示类别 表示数据类别
numeber (4) | 说明最多只可以有四位数字 |
number(7,2) | 说明小数点前最多7位,小数点后最多两位 |
varchar | 字符类型(a、b、c、1、2、3等)一个字母占一位,一个汉字占2个字符 |
date | 数据文件 |
作用:限制行;过滤行数据
语法:只显示满足条件的行,把不满足的行都过滤掉。WHERE子句要紧跟FROM子句。
>排除掉xxx不等于20的
where xxx=20
>将xxx转换为大写
where xxx=upper(“xxx”)
<>(不等于)或用 != 或 ^= 表示BETWEEN…AND… 区间
where xxxx between 200 and 300; 匹配xxx里200-300的取键
IN(set) 多个值
where xxxx in (“1”,“2”,“3”); 匹配xxx里的1.2.3
LIKE 匹配字符(要加通配符)
where xxxx like '5222%”; 匹配xx里面5222开头后面无限长度的字符 liks 就是运算类似的值
IS NUL
where xxxx IS NULL 判断xxx里面是不是空值
反之 IS NOT NUL一样
AND表示和,都,两个条件的关系
输出同时满足aaa里面大于等于500,且bbb大于600的值
where aaa=>500
and bbb>600
OR表示或者,其中一个。一个值达到限制就输出
IN相当于OR,但IN的执行效率更高
输出aaa大于500或者bbb大于600的值
where aaa=>500
or bbb>600
NOT 表示否则,如果达不到就返回
NOT IN
NOT BETWEEN … AND …
NOT LIKEI
NOT NUll
修改当前会话时间,重启失效
sql>alter session
修改会话时间,重启不失效
sql>alter system