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
使用資料字典:
體系結構:記憶體結構 和 資料檔案
執行個體 程序
啟動資料庫的步驟:
第一:開啟執行個體,讀取參數檔案
加載參數檔案來啟動執行個體
第二:開啟資料庫
通過參數檔案中記載的資料檔案,日志檔案大位置來加載打開資料檔案,日志檔案
第三:打開資料庫
通過
關閉資料庫: