在Windows下安装Oracle数据库。
通过网址“http://www.oracle.com”打开Oracle官网首页,点击Downloads进入Oracle数据库的下载页面,如图-1所示。
图-1
安装步骤如下(以本地安装为例):
步骤一:解压,双击setup.exe,启动安装向导
首先,将下载的oracle安装包进行解压缩;然后,双击setup.exe文件来启动安装向导,打开安装界面,如图-2所示。
图-2
在此步骤中需要设置的内容如下:
1)选择基本安装,指定要安装的Oracle数据库的基位置和主目录位置;
2)安装类型为企业版;
3)选择“创建启动数据库”(可以在安装数据库软件同时创建数据库,也可以在安装完毕后单独创建,此处选择默认值,即为安装数据软件同时创建数据库);
4)指定全局数据库名称为orcl,以及口令,需要记住自己的密码,这里设置为oracle。
设置完成以上内容后,点击“下一步”按钮。
步骤二:检测安装环境
点击“下一步”按钮后,进入检查安装环境的界面,如图-3所示。该步骤用来检查软硬件环境是否符合Oracle11g的安装要求,如果满足安装要求,则点击“下一步”按钮。
图-3
步骤三:进入安装概要页面
检查安装环境通过后,进入安装概要页面,如图-4所示。在该步骤可以检查之前的设置,包括安装类型和要安装的组件,如果有问题,可以点击“上一步”按钮回去修改,如果确认没问题,则点击“安装”按钮,进入安装阶段。
图-4
步骤四:提示正在安装。
根据机器的软硬件配置不同,这个步骤可能耗费不同的时间。图略。
步骤五:进入配置助手步骤,这个过程不需要用户干涉。图略。
步骤六:创建数据库,图略。
步骤七:数据库创建完成后,提示配置助手界面,显示数据库的初始信息。图略。
在此步骤中可以点击“口令管理”按钮进行数据库初始用户的口令管理,这个步骤此时可以忽略,待安装完成后再进行口令管理。完成后,点击“确定”按钮离开口令管理界面。
步骤八:弹出安装成功窗口,图略。
步骤九:在安装成功界面上点击“下一步”按钮,提示安装结束,如图-5所示。
图-5
如何在Linux系统下安装Oracle数据库。
在Linux下安装Oracle数据库的步骤如下:
步骤一:检查安装oracle时所需要的RPM包是否存在
检查安装oracle时所需要的RPM包命令为: rpm -q 指定的RPM包。
需要检查的RPM包如下:
binutils-2.17.50.0.6 compat-libstdc++-33-3.2.3 elfutils-libelf-0.125 elfutils-libelf-devel-0.125 elfutils-libelf-devel-static-0.125 gcc-4.1.2 gcc-c++-4.1.2 glibc-2.5-24 glibc-common-2.5 glibc-devel-2.5 glibc-headers-2.5 kernel-headers-2.6.18 ksh-20060214 libaio-0.3.106 libaio-devel-0.3.106 libgcc-4.1.2 libgomp-4.1.2 libstdc++-4.1.2 libstdc++-devel-4.1.2 make-3.81 sysstat-7.0.2
如果以上RPM包没有被安装,请到CentOS5.5的ISO文件中找到这些包并上传到linux系统中。已上传的RPM包,双击就可以安装,界面安装的好处是系统可以自己解决依赖关系(保持你的网络畅通)。
步骤二:配置oinstall组
配置oinstall组,命令如下:
/user/sbin/groupadd oinstall
步骤三:配置dba组合oper组
配置dba组合oper组,与配置oinstall命令相同,只是把oinstall换成dba和oper,命令如下:
groupadd dba groupadd oper
步骤四:创建用户oracle并且授权
创建用户oracle并且授权,命令如下:
useradd -g oinstall -G dba,oper oracle
步骤五:设置oracle用户的密码
设置oracle用户的密码,命令如下:
passwd oracle
步骤六:确定nobody用户不存在
确定nobody用户不存在,命令如下:
id nobody
步骤七:编辑sysctl.conf文件
编辑sysctl.conf文件,命令如下:
vi /etc/sysctl.conf
添加如下内容:
kernel.sem = 250 32000 100 128 fs.file-max = 6815744 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 = 1048576 fs.aio-max-nr = 1048576
步骤八:使内核参数立即生效
sysctl -p
步骤九:编辑limits.conf文件
使用vi编辑limits.conf文件,命令如下:
vi/etc/security/limits.conf
添加如下内容:
oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536
步骤十:编辑login文件
使用vi编辑login文件,命令如下:
vi /etc/pam.d/login
添加如下选项:
session required pam_limits.so
步骤十一:创建安装oracle的文件夹
创建安装oracle的文件夹,命令如下:
mkdir -p /opt/db/oracle
步骤十二:更改权限
更改权限,命令如下:
chown -R oracle:oinstall /opt/db/oralce chmod -R 775 /opt/db/oracle
步骤十三:切换用户到oracle
切换用户到oracle,命令如下:
su– oracle
此处注意空格。
步骤十四:编辑.bash_profile文件
[root@oracle ~]# vi /etc/profile if [$USER = "oracle"]; then if [$SHELL = "/bin/ksh"]; then ulimit -p 16384 ulimit -p 65536 else ulimit -u 16384 -n 65536 fi umask 022 fi
以oracle用户身份登录,修改当前用户下的.bash_profile(这是用户主目录下的一个隐藏文件)。
PATH=$PATH:$HOME/bin;export PATH ORACLE_BASE=/opt/oracle;export ORACLE_BASE ORACLE_HOME=/opt/db/oracle/1102/db01; export ORACLE_HOME ORACLE_SID=testdb;export ORACLE_SID PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin;export PATH DISPLAY=192.168.1.88:0.0;export DISPLAY
步骤十五:上传oracle到/opt目录
以root用户登录或者是把/opt的权限赋值给oracle:
chown -R oracle:oinstall /opt/db/oralce
这样就可以用oracle用户登录然后直接上传。
步骤十六:查看上传情况
查看上传情况,命令如下:
cd /opt ls
步骤十七:解压上传的oracle安装包
上传完毕后,使用unzip命令解压oracle安装包(如果你没有把/opt的权限赋值给oracle那么将无法正常解压),解压命令如下:
Unzip linux_11gR2_database_1of2.zip Unzip linux_11gR2_database_2of2.zip
步骤十八:使用oracle用户登录系统
解压完成以后用oracle用户登录系统,如图-6所示。
图-6
步骤十九:找到你上传的oracle文件的位置
在linux系统中找到oracle文件存储的位置,如图-7所示。
图-7
步骤二十:oracle解压完以后产生一个database文件夹打开该文件夹
oracle解压完以后会产生一个database文件夹,打开该文件夹,如图-8所示。
图-8
步骤二十一:运行runinstaller
运行runinstaller,如图-9所示。
图-9
步骤二十二:点击运行
如图-10所示。
图-10
步骤二十三:安装界面
注意:创建启动数据库时,全局数据库名必须要与你在设置.base_profile中输入的oracle_sid一致。你可以设置密码,在这里设置密码以后,帐户sys、system、sysman和DBSNMP都将使用这里设置的密码,如图-11所示。
图-11
开始安装,如图-12所示。
图-12
步骤二十四:指定产品清单目录的完整路径
指定产品清单目录的完整路径,默认即可,如图-13所示。
图-13
如图-14所示。
图-14
如果你是DHCP网络,网络配置要求如图-15所示,如果你指定了IP地址将不会出现这个提示,所以不用管直接下一步。
图-15
由于DHCP网络所出现的提示,无需处理,选择“是”,如图-16所示
图-16
如图-17所示。
图-17
如图-18所示。
图-18
如图-19所示。
图-19
如图-20所示。
图-20
如图-21所示。
图-21
如图-22所示。
图-22
如何使用telnet登录数据库服务器。
远程登录到数据库所在的机器上,输入远程机器操作系统的帐号和密码,如图-23所示。
图-23远程登录数据库服务器
如何使用SQL* PLUS访问数据库。
在上一案例的基础上,在%提示符下,输入SQLPlus命令,并输入数据库的帐号和密码,如图-24所示。
图-24运行sqlplus,登录数据库
如果出现SQL提示符,则表示登录成功,如图-25所示。
图-25登录数据库成功
退出SQL*PLUS时,在SQL>后输入exit即可,如图-26所示。
图-26退出SQL*Plus
在此输入exit,即退出远程服务器。
如何安装并使用Oracle SQL Developer访问Oracle。
Oracle SQL Developer是Oracle官方出品的免费图形化开发工具,相对SQL*Plus来说,图形化的界面便于操作,不必记忆大量的命令,输出结果美观。它的基本功能包括结果的格式化输出,编辑器自动提示,代码美化,显示SQL的执行计划,监控会话,编写以及调试存储过程等。官方和免费两个特征让这个工具极具吸引力。
步骤一:下载Oracle SQL Developer
通过如下所示的网址进入Oracle SQL Developer的下载页:
http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html
下载页面如图-27所示,可以在下载页面选择所需平台的版本进行下载。
图-27
步骤二:安装
Oracle Developer安装过程十分简单,只需要将下载的压缩包进行解压缩即可。
步骤三:使用
解压缩后的文件中有一个“sqldeveloper.exe”,双击其进入SQL Developer工具的主界面,如图-28所示。
图-28
第一次进入SQL Developer,需要设置连接参数。首先在窗口左边的Connections上按右键,开启一个新的连接,输入远程数据库的参数,界面如图-29所示。
图-29
成功建立了连接之后,在连接上按右键点击Connect,将打开对应用户方案中的数据库对象,如图-30所示。
图-30
在这个界面中,即可操作SQL语句了。
创建学员信息表student,使用NUMBER数据类型定义student表的id字段的总数字位数为4,定义fee字段的总数字位数为7,小数位数为2。
NUMBER表示数字类型,经常被定义成NUMBER(P,S)形式,其中,P表示数字的总位数;S表示小数点后面的位数。
在表student中的id列和fee列的定义如下:
CREATE TABLE student( id NUMBER(4), name VARCHAR2(20), gender CHAR(1), fee NUMBER(7,2) );
上述定义表示id列中的数据,整数位最大为4位,即最大值为9999;fee列整数位最大为5位,小数位最大位数是2位,即最大取值为99999.99。
创建学员信息表student1,使用VARCHAR2数据类型定义student1表的name字段,该字段的长度为最大20个字节变长字符串;使用CHAR数据类型定义gender字段,该字段的长度为1个字节定长字符串;使用VARCHAR2数据类型定义residence字段,该字段的长度为100个字节定长字符串。
在表student1中的name列、gender列和residence列的定义如下:
CREATE TABLE student1( id NUMBER(4), name VARCHAR2(20), gender CHAR(1), residence CHAR(100) );
上述代码表示student1表的name字段的长度为最大20个字节变长字符串; gender字段的长度为1个字节定长字符串;residence字段的长度为100个字节定长字符串。
创建学员信息表student2,使用DATE数据类型定义student2表的birth字段为日期类型。
DATE类型用于定义日期时间的数据,长度是7个字节,默认格式是:DD-MON-RR, 例如:“11-APR-71”,表示1971年4月11日;如果是中文环境,则是“11-4月-71”这种形式。
在表student2中的birth列的定义如下:
CREATE TABLE student2( id NUMBER(4), name VARCHAR2(20), gender CHAR(1), birth DATE );
上述定义表示birth列中存放的是日期类型数据。
员工表的信息如表-1所示:
表-1 员工表信息
请根据上述表信息创建员工表employee。
使用“CREATE TABLE”语句创建表,语法是:
CREATE TABLE [schema.]table_name( column_name datatype[DEFAULT expr][,…] );
上述创建表的语法表示:
1)“CREATE TABLE”为固定写法;
2)使用“[]”括起来的部分可以省略,[schema.]表示该表所属的用户,默认是当前登录oracle的用户;
3)table_name表示表名,根据实际情况替换该名称,此案例的表名为employee;
4)column_name表示列名,根据实际情况替换该名称,此案例中有9列,列名如表-1所示;
5)datatype表示对应列的数据类型,此案例中9列对应的数据类型如表-1所示;
6)[DEFAULT expr]表示给该列的默认值,可以省略;
7)[,…]表示多列之间使用“,”逗号做分隔,最后一列不使用逗号。
本案例中,创建employee表的SQL语句如下:
CREATE TABLE employee( id NUMBER(4), name VARCHAR2(20) NOT NULL, gender CHAR(1) DEFAULT 'M', birth DATE, salary NUMBER(6,2), comm NUMBER(6,2), job VARCHAR2(30), manager NUMBER(4), deptno NUMBER(2) );
修改员工表后,显示表结构。详细要求如下:
1)修改employee表的表名为myemp;
2)向myemp表增加一列hiredate,并设置默认值为当前日期;
3)修改myemp表中的job列的长度为40,并增加默认值的设置,默认值为‘CLERK’;
4)删除myemp表中的hiredate列。
1)在建表后如果希望修改表名,可以使用RENAME语句实现,语法如下:
RENAME old_name TO new_name;
上述SQL语句表示改变表名old_name为new_name。
2)在建表之后,要给表增加列可以使用ALTER TABLE的ADD子句实现,该语句的语法如下:
ALTER TABLE table_name ADD (column datatype [DEFAULT expr] [, column datatype…]);
注意一点,列只能增加在最后,不能插入到现有列的中间。
3)建表之后,可以改变表中列的数据类型、长度和默认值,注意这种修改仅对以后插入的数据有效;另外,如果表中已经有数据的情况下,把长度由大改小,有可能不成功,比如原来的类型是VARCHAR2(100),其中已经存放了100个字节长度的数据,如果要改为VARCHAR2(80),则不会修改成功。该语句的语法如下:
ALTER TABLE table_name MODIFY (column datatype [DEFAULT expr] [, column datatype…]);
4)在建表之后,使用ALTER TABLE的DROP子句删除不需要的列,该语句的语法如下:
ALTER TABLE table_name DROP (column);
删除字段需要从每行中删掉该字段占据的长度和数据,并释放在数据块中占据的空间,如果表记录比较大,删除字段可能需要比较长的时间。
实现此案例需要按照如下步骤进行。
步骤一:修改表名
将employee表的表名修改为myemp,使用如下SQL语句:
RENAME employee TO myemp;
显示表结构的语句如下所示:
DESC myemp;
步骤二:增加列
给myemp表增加一列hiredate,并设置默认值为当前日期,使用的SQL语句如下:
ALTER TABLE myempADD (hiredate DATE DEFAULT sysdate);
上述SQL语句中的sysdate表示当前日期。
显示表结构的语句如下所示:
DESC myemp;
步骤三:修改列
修改myemp表中的job列的长度为40,并增加默认值的设置,默认值为‘CLERK’,使用的SQL语句如下:
ALTER TABLE myemp MODIFY(job VARCHAR2(40) DEFAULT 'CLERK' );
显示表结构的语句如下所示:
DESC myemp;
步骤四:删除列
删除表myemp中的hiredate列,使用的SQL语句如下:
ALTER TABLE myempDROP (hiredate);
显示表结构的语句如下所示:
DESC myemp;
向myemp表中插入三条记录,该三条记录的数据如表-2所示。
表-2
INSERT语句用来给数据表增加记录,每次增加一条记录,该SQL语句的语法如下:
INSERT INTO table_name[(column[, column…])] VALUES(value[, value…]);
需要注意的一点,所有的DML操作,都需要执行事务提交语句commit,才算真正确认了此操作。
步骤一:插入数据
向myemp表的列id、name、job、salary插入数据,这些列的数据分别为 1001、 'rose'、'PROGRAMMER'、5500,SQL语句如下所示:
INSERT INTO myemp(id, name, job, salary) VALUES(1001, 'rose', 'PROGRAMMER', 5500);
步骤二:插入日期数据
Oracle中的日期数据比较特殊,如果插入的列有日期字段,需要考虑日期的格式。Oracle的默认的日期格式为‘DD-MON-RR‘。可以按照默认格式插入数据,也可以自定义日期格式,用TO_DATE函数转换为日期类型的数据。使用默认日期格式插入数据的SQL语句如下:
--使用默认日期格式插入记录 INSERT INTO myemp(id, name, job,birth) VALUES(1002, 'martha', 'ANALYST', '01-SEP-89');
如果为中文环境,那么日期的格式应该为:'01-9月-89'。
使用自定义日期格式插入数据的SQL语句如下:
--使用自定义日期格式插入记录 INSERT INTO myemp(id, name, job, birth) VALUES(1003, 'donna', 'MANAGER', TO_DATE('1978-09-01', 'YYYY-MM-DD'));
本案例的完整代码请参考步骤。
本案例的详细要求如下:
1)将员工表中姓名为rose的员工的工资(salary)更改为8500。
2)将员工表中id为1003的员工的工资(salary)更改为6500,职位改为“ANALYST”。
UPDATE语句用来更新表中的记录,其语法如下:
UPDATE table_name SET column = value [, column = value]… [WHERE condition];
其中WHERE子句是可选的,但是如果没有WHERE子句,则全表的数据都会被更新,务必小心。
步骤一:更改员工rose的薪水为8500
更改员工rose的薪水为8500,SQL语句如下所示:
UPDATE myempSET salary = 8500 WHERE name = 'rose';
步骤二:更改员工表中id为1003的员工的工资和职位
将员工表中id为1003的员工的工资(salary)更改为6500,职位改为“ANALYST”,SQL语句如下所示:
UPDATE myempSET salary = 6500, job = 'ANALYST' WHERE id = 1003;
步骤三:更新后,检查数据变化情况
使用如下SQL语句检查数据变化情况:
SELECT * FROM myemp;
本案例的完整代码请参考步骤。
本案例的详细要求如下:
1)删除员工表中职位(job)为空的员工记录;
2)删除员工表中名字(name)为“rose”的员工。
DELETE语句用来删除表中的记录,其语法如下:
DELETE [FROM] table_name [WHERE condition];
和UPDATE语句一样,WHERE子句是可选的,但是如果没有WHERE子句,则全表的数据都会被删除,务必确认后再予以删除。
步骤一:删除职位(job)为空的员工记录
删除职位(job)为空的员工记录,SQL语句如下所示:
DELETE FROM myempWHERE job is null;
步骤二:删除员工表中名字(name)为“rose”的员工
删除员工表中名字(name)为“ROSE”的员工,SQL语句如下所示:
DELETE FROM myempWHERE name ='ROSE';
步骤三:删除后,检查数据变化情况
检查员工表中名字为“ROSE”的员工是否存在,SQL语句如下所示:
SELECT * FROM myempWHERE name ='ROSE';
本案例的完整代码请参考步骤。