天天看點

oracle

oracle資料庫的安裝 :

   oracal 11g

   centos6:

圖形化

   安裝tools工具

    df

    cd /media/vmware\ tools/

   tar zxvf vmwaretools-10.0.0-2977863.tar.gz -c  /tmp

   cd /tmp

   cd vmware-tools-distrib

   ./vmware-install.pl

   回車

   init 3

   init 5

安裝步驟:

 複制:1of7.zip

      2of7.zip

      /orainst_11g.sh

cd  desktop

 ls

 unzip p13390677_112040_linux-x86-64_1of7.zip;unzip p13390677_112040_linux-x86-64_2of7.zip

 mv database/ /root

 cd database

  保證網卡位址是靜态位址

 cd /etc/sysconfig/network-scripts

 vim  ifcfg-eth0

 bootproto=static靜态 

ip位址要可以跟主機名可以解析   

 cd /etc

  vim hosts

 ip位址  主機名

172.17.254.150  xyd

執行腳本

./orainst_11g.sh

xhost +

su - oracle

cd database

./runinstaller 

 next

 install database software only

 singer instance database installation

 english

 smilp chinese

enter edation

oinstall

install

// vim /etc/sysctl.conf

  kernel.shmmax = 10433636224

// sysctl -p

//  

// cd desktop

// rz 

//  pdksh-5.2.14-30.x86_64.rpm

//rpm -ivh pdksh-5.2.14-30.x86_64.rpm

//rpm -e ksh

//yum install ksh

// ssh -x ip位址

cd  /u01

cd app

cd oracleinventory

ls

/u01/app/orainventory/orainstroot.sh

ok

lsnrctl start 開啟監聽

dbcl

next

orcl

use the ... all allcoures

oracle

enable a..

sample 

character sets

 use uncode 

 al16uftf16.....8

finsh

登入資料庫:

sqlplus / as sysdba  或 sqlplus sys/oracle  

>select * from scott.dept; 簡單的檢視

>exit

安裝指定的包使資料庫可以翻看曆史記錄

cd desktop

rpm -ivh rlwrap-0.37-1.e16.x86_64.rpm

rlwrap sqlplus / as sysdba

vim .bash_profile

 alias sqlplus='rlwrap sqlplus'

. .bash_profile 執行生效

重行登入,就可以翻看曆史指令

sql語句的基本使用:

 sqlplus / as sysdba

>select * from scott.dept;

>conn scott/tiger

>alter user scott account unlock;解鎖 然後重新登入

>conn / as sysdba 連結

>show user

>alter user scott account unlock identified by tiger;

>select * from tab;檢視表

>desc dept;檢視表的資訊

>select * from dept;

>select dname from dept; 檢視表的一列資訊

>select loc,dname from dept;檢視表的多列資訊

>desc emp;

>select * from emp;

>set line 1000 修改顯示格式

>select (sal+comm)*12 from emp;

>select ename xiao,sal*12 nianxin from emp;支援表達式

>select ename as "xiao"|| sal*12 as "nianxin" from emp; 兩列變一列

>select distinct sal from emp;顯示所有行包括重複行

>

 字元型

 數值型

 日期型

限制和排序資料:

>select * from emp where deptno-20; 限制行的排序 隻看為20的

>select * from emp where sal-800;

>select * from emp where hiredate='03-dec-81' 字元型數字型要加引号

>select * from emp where ename='scott';

比較操作符

>select * from emp where sal=800;

>select * from emp where sal between 800 and 3000; 800到3000的都顯示出來

>select * from emp where sal in (800,1100); 800或1100

>select * from emp where sal !in (800,1100); 即不是800也不是1100

>select * from emp where ename like 'sco%';

and要求兩個都是true

>select ename,sal from where sal > 1000 and job like '%man%';

排序:

>select ename,sal from emp where deptno-20 order by sal desc; 降序排列

>select deptno ename as "xingming",sal,sal*12 as "nianxin" from emp where deptno=30 order by "nianxin";

>select deptno ename as "xingming",sal,sal*12 as "nianxin" from emp where deptno-$bumen order by "nianxin";

define設定環境變量

>define

>defile_editor='vim' 編輯ed

>ed

 select * from dept

>l

>/

提示符的修改

cd $oracl_homf/sql table鍵補齊  /sqlplus/admin

vim glogin.sql

et sqlprompt "_user"@"_connect_idfntififr>"

sqlplus / as sysdba

>select * from emp where deptno=&bumen

>set line 1000

>set verify off;可關閉最上邊的兩句話

單行函數:

 字元函數:

sqlplus /as sysdba

>conn / as sysdba

>set pagesize 4000 顯示資訊的大小設定

>creat  user magedu identified by magedu; 建立使用者(建立時時的寫那麼顯示就為大寫)

>creat user magedu identified by magedu;

>select username from dba_users where lower(username) lik "mage%"; 模糊搜尋

>select lower(username) from dba_user;檢視資料庫中的使用者

>select sysdate from dual;檢視日期

轉換函數:

>select to_char(sysdate,'yyy-mm-dd') from dual修改日期顯示格式

>select to_char(sysdate,'yyy-mm-dd hh24:mi:ss') from dual;

>select ename,to_char(sal,'$9999.00') from emp; 9代表一個數字

>select ename,hirsdate from emp where hiredate < to_date('01-01-85','dd-mm-rr');日期轉換

>select upper(to_char(sysdate,'year,month')) from dual;大寫顯示年月

>insert into emptmp (empno,ename,sal) values (8000.'xyd',10000); 插入表

>select ename,nvl(hiredate,'01-jan-80');from emptmp; 添加日期

分組函數:

>select max(sal) from emp; 最大值

>select avg(sal) from emp; 平均值

>select avg(sal),min(sal),max(sal),sum(sal) from emp;輸出多個值

>select avg(sal),min(sal),max(sal),sum(sal) from emp where deptno=30;

>select deptno,avg(sal) from emp group by deptno;建立分組 每個部門的平均值

>select  deptno,avg(sal) from emp where deptno > 20 group by deptno;

>select deptno,avg(sal) from emp group by deptno having avg(sal) >2000; having的用法

嵌套:

> select max(avg(sal)) from emp group by deptno;

多表查詢語句:

 從多個表擷取資料

  自然連接配接 外連接配接

 多表查詢

>desc dept;

>select empno,ename,dname from emp natural join dept;

>create table dept_tmp as select deptno,dname bumenming,loc from dept; 建立新表

>select empno,ename,bumenming from emp natural join dept_tmp; 兩個表進行連接配接

>create table dept_tmp2 as select deptno deptid,dname,loc from dept;

>select * from dept_tmp2;

>select empno,ename,dname from emp join dept_tmp2 on (emp.deptno=dept_tmp2.deptid);兩個表進行連接配接

>select e.empno,e.ename,d.dname from emp e join dept_tmp2 d on (e.deptno=d.deptid);

>select empno,ename,dname from emp join dept using(deptno); 強調列

>drop table emptmp  purge;删除

>drop table depy_tmp2 purge;删除表

自連接配接

>select x.ename,s.ename from emp x join emp s on (x.mgr=s.empno); 上下級的排序

外連接配接

>select x.ename yuangong,s.ename lingdao from emp x left join emp s on (x.mgr=s.empno); 左邊沒有考左邊寫

>select x.ename yuangong,s.ename lingdao from emp x right join emp s on (x.mgr=s.empno);右邊沒有考右邊寫

不等連接配接

>select e.ename,e.sal,s.grade from emp e join salfrade s on e.sal between s.losal and s.hisal;

子查詢

>select ename,sal from emp where sal > (select sal from emp where ename-'scott');

union:顯示所有的,消除重複的

intersect:顯示共有的,消除重複的

minus:傳回第一個查詢有但第二個查詢中不存在的所有唯一行記錄

一個事物處理是由一系列dml語句邏輯組成的

>commit;送出事物

>rollback;復原

where是在組函數之前進行的 having是在組函數之後進行的

ddl語句:對表進行建立删除,對表中的列進行修改,修改整個表的結構

dcl語句:控制一些使用者的權限

資料庫對象:

object   對象 -》描述

table    表-》存儲的基礎單元,由行和列組成

view     視圖 -》一個或多個表中的資料邏輯子集

sequence 序列 -》數值生成器

index    索引 -》提高某些查詢的效率

synonym  同義詞 -》對象的别名    

建表語句:

 >select * from scott.emp;

 >selcet * from hr.

 >select sysdate from dual;檢視日期 

 >create table t001(

   ename varchar2(10),

   deptno number(2),

   hiredate date default sysdate); 建立表的列

 >desc t001 檢視表

 > select count(*) from t001; 檢視

 >insert into t001 values('xyd','01','08-dec-18');插入表的資訊

 >insert into t001 (ename,deptno) values ('chengcheng',02);

 pk-dept 

 pk-emp 索引

優化顯示: 

 >col object_name for a10

檢視使用者的表名資訊

>select table_name from user_tables;

>select tname from tab;

>select object_name from user_objects;

>select object_name from user_objects where object_type='table';

>desc user_objects;

介紹限制:

 限制類型:

  not null 非空

  unique 唯一

  primary key 主鍵

  foreign key 外鍵

  check 檢查

 定義限制:

建立表和列限制

>create table t002(

  empno numder(4)

  constraint t002_empno_pk primary key,

  ename varchar(10) not null,

  sal number(5)); 

>insert into t002 values (1000,'jiake',null); 插入資料

表限制

>create table t003(

 name varchar2(10),

 sex varchar2(10),

 sal number(5),

constraint t003_name_pk primary key (name));

>/ 執行

多級限制

>create table t004 (

 empid number(5),

 constraint t004_empid_unique unique,

 email varchar2(20)

 constraint t004_email_uk unique ));

子查詢建立表:

基本表 視圖

序列

索引能夠提供一些查詢資料的速度

索引:

   是一種方案對象

 自動建立

 手工建立

控制使用者的通路:

方案:對象的集合

系統權限:

>create user xyd identified by xyd

>grabt create session to xyd 給權限

>grant create table to xyd

>conn xyd/xyd

>create table t001(id number(2));

role權限的集合

>create role class26

>grant create session,create table,create view,create index,create sequence grant dreated

使用資料字典:

體系結構:記憶體結構 和 資料檔案

         執行個體 程序

啟動資料庫的步驟:

  第一:開啟執行個體,讀取參數檔案

        加載參數檔案來啟動執行個體  

  第二:開啟資料庫

         通過參數檔案中記載的資料檔案,日志檔案大位置來加載打開資料檔案,日志檔案

  第三:打開資料庫

         通過

關閉資料庫:

繼續閱讀