时间:2021-07-01 10:21:17 帮助过:9人阅读
网盘中提供下载的是数据库的for linux_32位版本0201_database_linux32.zip,而11g12c下载可到官方网站http://www.oracle.com/index.html, 去下载版本Oracle Database 11g Release 2 :
linux_11gR2_database_1of2.zip linux_11gR2_database_2of2.zip |
但10g已经不提供下载,注意哦,Release 2才是我们要的稳定版嘛。用BT下载,下载速度不是很稳定,你可以借助 FileZilla_3.3.3_win32-setup.exe,把下面2个文件传进 Linux 操作系统里面去,用FTP客户端,也可以不借助FTP软件而通过22远程端口连接:
(选择ssh连接:)(选择22端口)
使用 unzip 命令解压 刚才上传的2个文件, 命令格式如下:unzip 文件名
准备工作,配置环境,检查相关的开发工具和一些包:检查命令格式如下:rpm -qa | grep 名字
binutils-2.17.50.0.6 ok compat-libstdc++-33-3.2.3 ok elfutils-libelf-0.125 ok elfutils-libelf-devel-0.125 -- elfutils-libelf-devel-static-0.125 -- gcc-4.1.2 ok gcc-c++-4.1.2 ok glibc-2.5-24 ok glibc-common-2.5 ok glibc-devel-2.5 ok glibc-headers-2.5 ok kernel-headers-2.6.18 ok ksh-20060214 ok libaio-0.3.106 ok libaio-devel-0.3.106 -- libgcc-4.1.2 ok libgomp-4.1.2 ok libstdc++-4.1.2 ok libstdc++-devel-4.1.2 ok make-3.81 ok numactl-devel-0.9.8.i386 -- sysstat-7.0.2 -- unixODBC-2.2.11 -- unixODBC-devel-2.2.11 -- |
==========================================
从 CentOS-6.5-x86_64-bin-DVD.iso\CentOS 文件找到缺少的包, 并且上传到 linux 上去,
ls *.rpm
rpm -ivh *.rpm
==========================================
创建用户组:
groupadd oinstall groupadd dba mkdir -p /u01/oracle |
添加一个oracle用户, 根目录是 /u01/oracle, 主的组是 oinstall 副的组是dba
useradd -g oinstall -G dba -d /u01/oracle oracle cp /etc/skel/.bash_profile /u01/oracle cp /etc/skel/.bashrc /u01/oracle cp /etc/skel/.bash_logout /u01/oracl |
为oracle用户设置密码 123456
passwd oracle /]#ls -l /]#chown -R oracle:oinstall u01 /]#ls -l |
检查 nobody 是否存在 , id nobody
缺省存在的。如果不存在 # /usr/sbin/useradd -g nobody
==========================================
vi /etc/sysctl.conf
fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 536870912 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048586 |
==========================================
vi /etc/security/limits.conf
oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 |
==========================================
vi /etc/pam.d/login
session required pam_limits.so
==========================================
su - oracle
pwd
ls -la
==========================================
vi .bash_profile
ORACLE_BASE=/u01 ORACLE_HOME=$ORACLE_BASE/oracle ORACLE_SID=wilson PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH |
==========================================
mv database /u01/
cd /u01
ls -l
chown -R oracle:oinstall database/
==========================================
重启一下系统,然后接着就开始安装了
使用oracle账号 登陆图形界面 进行安装
运行终端 Terminal
cd /u01/database
./runInstaller
Installation Optiong install database software only
Grid Options Single instance database installation
Product Languages English
Database Edition Enterprise Edition (3.95)
Installation Location Oracle Base: /u01 Software Loacation: /u01/oracle
提示: yes
Create Inventory mkdir /oraInventory
chown -R oracle:oinstall oraInventory
Operating System Groups Next
Prerequis ite Checks Ignore All
Summary Finish
Install Product 安装完毕, 提示执行 2个脚本
/oraInventory/orainstRoot.sh /u01/oracle/root.sh 直接按回车, 缺省值就可以
Finish The installation of Oracle Database was successful
====================================
上面只是安装了软件, 数据库没有创建, 还有配置 监听器 Listener
netca 一直默认下一步 , 呵呵, 最后 Finish
ps -ef 可以查看Listener是否配置成功
----------- dbca 一直 Next, Global Database Name 和 SID 都是输入 wilson
选择 User the Same.....All Accounts
密码: 123456
选择 Sample Schemas
Memory 内存分配,默认就可以了 Character Sets 选择 Use Unicode(AL32UTF8)
然后一直 Next , 到最后 Finish
弹出一个 Confirmation , 点击 OK 就可以了, 然后自动进行安装
安装到目录 /u01/oradata/wilson /u01/等等。。。 会发现多了很多文件。
-------------------- 然后可以修改 vi /etc/inittab 让 centos5.5 linux 启动的时候 不进入 图形界面 直接进入 字符界面
id:5:initdefault: 修改成 id:3:initdefault:
保存退出, 然后重启系统
-------------------------------- 用 oracle 用户 远程登录, 然后
$ sqlplus /nolog
SQL> conn / as sysdba
Connected to an idle instance. 出现错误
SQL> startup
[oracle@localhost ~]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Fri Jun 25 15:05:54 2010
Copyright (c) 1982, 2009, Oracle. All rights reserved.
SQL> conn / as sysdba Connected. SQL> create table testUser( id integer,name char(10));
Table created.
SQL> insert into testUser values(0,‘Jack‘);
1 row created.
SQL> commit;
Commit complete.
SQL> select * from testUser;
ID NAME ---------- ---------- 0 Jack
关闭数据库 SQL> shutdown immediate
SQL> quit |
对数据记录的操作(select,insert,update,delete)
常用函数(count,max,min,avg,sum,decode,distinct)
CREATE TABLE xue_sheng( id integer, xing_ming varchar(25), nian_ling number); INSERT INTO xue_sheng VALUES(1,‘ZhanSan‘,24); INSERT INTO xue_sheng VALUES(2,‘LiSi‘,23); |
查询
SQL> SELECT * FROM xue_sheng; SQL> SELECT xing_ming FROM xue_sheng; |
插入数据
SQL> INSERT INTO xue_sheng VALUES(3,‘WangXiaoEr‘, 25); SQL> INSERT INTO xue_sheng(id,nian_ling) VALUES(4 , 25); |
查找order by desc(降序) 或者 asc(升序) 排序
SQL> SELECT * FROM xue_sheng ORDER BY nian_ling DESC; ASC |
查找字段为空或者非空
SQL> SELECT * FROM xue_sheng where xing_ming IS NULL; IS NOT NULL |
过滤重复字段
SQL> SELECT DISTINCT nian_ling FROM xue_sheng; |
更新表字段
SQL> UPDATE xue_sheng SET xing_ming=‘ZhanWu‘; SQL> UPDATE xue_sheng SET xing_ming=‘LiSi‘ where id=2; |
SQL> DELETE FROM xue_sheng where id=4; |
统计
SQL> SELECT COUNT(*) FROM xue_sheng; |
求和
SQL> SELECT SUM( nian_ling ) FROM xue_sheng; |
最大值
SQL> SELECT MAX( nian_ling ) FROM xue_sheng; |
最小值
SQL> SELECT MIN( nian_ling ) FROM xue_sheng; |
平均值
SQL> SELECT AVG( nian_ling ) FROM xue_sheng; |
DECODE函数使用, 可以理解成是一个判断分类函数
SQL> SELECT SUM(DECODE(nian_ling,25,1,0)),SUM(DECODE(nian_ling,24,1,0)) FROM xue_sheng; |
INSERT INTO xue_sheng(id,nian_ling) VALUES(5 , 25); |
SQL> SELECT SUM(DECODE(nian_ling,25,1,0)) n_25,SUM(DECODE(nian_ling,24,1,0)) n_24 FROM xue_sheng; |
需要注意 DELETE FROM 表名, 表示把表的数据全部清空
分组查询group by, 模糊查询/搜索like, 表连接join on, 子查询in() / not in()
DROP TABLE xue_sheng; DROP TABLE ban_ji; |
新建学生表: xue_sheng
CREATE TABLE xue_sheng( id integer, xing_ming varchar(25),xing_bie number, fen_shu number, b_id integer);
INSERT INTO xue_sheng VALUES(1,‘ZhanSan‘,1,80,1); INSERT INTO xue_sheng VALUES(2,‘LiSi‘,1,90,2); INSERT INTO xue_sheng VALUES(3,‘ZhanHong‘,0,75,2); INSERT INTO xue_sheng VALUES(4,‘ChenXiaoMing‘,1,85,1); |
查询要求: 分组显示男女同学的总分。先把性别分组, 然后进行一个求和的统计
SELECT xing_bie,sum(fen_shu) FROM xue_sheng GROUP BY xing_bie; |
模糊查询 或者 模糊查找,使用LIKE 关键字, 通用字符 ‘%‘
SELECT * FROM xue_sheng where xing_ming LIKE ‘Zhan%‘; SELECT * FROM xue_sheng where xing_ming LIKE ‘%g‘; SELECT * FROM xue_sheng where xing_ming LIKE ‘%a%‘; |
新建一个班级表: ban_ji
CREATE TABLE ban_ji( id integer , ban_ji varchar(25)); INSERT INTO ban_ji VALUES(1,‘1-(1)‘); INSERT INTO ban_ji VALUES(2,‘1-(2)‘); INSERT INTO ban_ji VALUES(3,‘1-(3)‘); SELECT id, ban_ji FROM ban_ji; |
学生表, 班级表一起查询(表连接):
别名的使用 SELECT x.id, xing_ming,ban_ji FROM xue_sheng x, ban_ji b; SELECT x.id, xing_ming,ban_ji FROM xue_sheng x, ban_ji b where x.b_id=b.id; SELECT x.id, xing_ming,ban_ji FROM xue_sheng x JOIN ban_ji b ON x.b_id=b.id; |
子查询 IN() 或者 NOT IN() ,又叫嵌套查询
SELECT * FROM xue_sheng WHERE b_id IN( 1,3 ); SELECT * FROM xue_sheng WHERE b_id=1 OR b_id=3; |
SELECT * FROM xue_sheng WHERE b_id IN( SELECT id FROM ban_ji ); |
显示 在1-(2)班级的所有同学:
做一个分解步骤来理解,
第一先步骤先执行 SELECT id FROM ban_ji where ban_ji=‘1-(2)‘;
第二步 , 在执行 SELECT * FROM xue_sheng WHERE b_id IN( 第一步的结果 );
SELECT * FROM xue_sheng WHERE b_id IN( SELECT id FROM ban_ji where ban_ji=‘1-(2)‘); |
NOT IN() 的使用
SELECT * FROM xue_sheng WHERE b_id NOT IN( SELECT id FROM ban_ji where ban_ji=‘1- (2)‘); |
VIEW 的介绍(方便,安全,一致)和使用(创建,修改)
表和视图的区别,表是占用硬盘空间物理表,而视图可以理解为一个虚表,并不存储在硬盘上,不占用硬盘空间,实际上就是一个查询语句,方便查询。对视图里面的数据操作(增 删 改) 其实就是对真实的表 增 删 改, 它们始终保持一致性。 |
哪为什么还需要视图 ?
视图可以理解成一个封装过的表, 例如不让用户 清楚知道表的某些字段信息,比较安全