Top

JAVA ORACLE DAY01

  1. Windows下Oracle数据库安装
  2. Linux下Oracle数据库安装
  3. 使用telnet登录数据库服务器
  4. 使用SQL* PLUS访问数据库
  5. 安装并使用Oracle SQL Developer访问Oracle
  6. NUMBER数据类型实例
  7. 字符数据类型实例
  8. 日期数据类型实例
  9. 创建员工表
  10. 修改员工表
  11. 插入员工数据
  12. 更改员工数据
  13. 删除员工数据

1 Windows下Oracle数据库安装

1.1 问题

在Windows下安装Oracle数据库。

1.2 步骤

通过网址“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

2 Linux下Oracle数据库安装

2.1 问题

如何在Linux系统下安装Oracle数据库。

2.2 步骤

在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

3 使用telnet登录数据库服务器

3.1 问题

如何使用telnet登录数据库服务器。

3.2 方案

远程登录到数据库所在的机器上,输入远程机器操作系统的帐号和密码,如图-23所示。

图-23远程登录数据库服务器

4 使用SQL* PLUS访问数据库

4.1 问题

如何使用SQL* PLUS访问数据库。

4.2 方案

在上一案例的基础上,在%提示符下,输入SQLPlus命令,并输入数据库的帐号和密码,如图-24所示。

图-24运行sqlplus,登录数据库

如果出现SQL提示符,则表示登录成功,如图-25所示。

图-25登录数据库成功

退出SQL*PLUS时,在SQL>后输入exit即可,如图-26所示。

图-26退出SQL*Plus

在此输入exit,即退出远程服务器。

5 安装并使用Oracle SQL Developer访问Oracle

5.1 问题

如何安装并使用Oracle SQL Developer访问Oracle。

5.2 步骤

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语句了。

6 NUMBER数据类型实例

6.1 问题

创建学员信息表student,使用NUMBER数据类型定义student表的id字段的总数字位数为4,定义fee字段的总数字位数为7,小数位数为2。

6.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。

7 字符数据类型实例

7.1 问题

创建学员信息表student1,使用VARCHAR2数据类型定义student1表的name字段,该字段的长度为最大20个字节变长字符串;使用CHAR数据类型定义gender字段,该字段的长度为1个字节定长字符串;使用VARCHAR2数据类型定义residence字段,该字段的长度为100个字节定长字符串。

7.2 方案

在表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个字节定长字符串。

8 日期数据类型实例

8.1 问题

创建学员信息表student2,使用DATE数据类型定义student2表的birth字段为日期类型。

8.2 方案

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列中存放的是日期类型数据。

9 创建员工表

9.1 问题

员工表的信息如表-1所示:

表-1 员工表信息

请根据上述表信息创建员工表employee。

9.2 方案

使用“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)[,…]表示多列之间使用“,”逗号做分隔,最后一列不使用逗号。

9.3 完整代码

本案例中,创建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)
);

10 修改员工表

10.1 问题

修改员工表后,显示表结构。详细要求如下:

1)修改employee表的表名为myemp;

2)向myemp表增加一列hiredate,并设置默认值为当前日期;

3)修改myemp表中的job列的长度为40,并增加默认值的设置,默认值为‘CLERK’;

4)删除myemp表中的hiredate列。

10.2 方案

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);

删除字段需要从每行中删掉该字段占据的长度和数据,并释放在数据块中占据的空间,如果表记录比较大,删除字段可能需要比较长的时间。

10.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:修改表名

将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;

11 插入员工数据

11.1 问题

向myemp表中插入三条记录,该三条记录的数据如表-2所示。

表-2

11.2 方案

INSERT语句用来给数据表增加记录,每次增加一条记录,该SQL语句的语法如下:

    INSERT INTO table_name[(column[, column…])] 
VALUES(value[, value…]);

需要注意的一点,所有的DML操作,都需要执行事务提交语句commit,才算真正确认了此操作。

11.3 步骤

步骤一:插入数据

向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'));

11.4 完整代码

本案例的完整代码请参考步骤。

12 更改员工数据

12.1 问题

本案例的详细要求如下:

1)将员工表中姓名为rose的员工的工资(salary)更改为8500。

2)将员工表中id为1003的员工的工资(salary)更改为6500,职位改为“ANALYST”。

12.2 方案

UPDATE语句用来更新表中的记录,其语法如下:

    UPDATE table_name 
    SET column = value [, column = value]…
    [WHERE condition];

其中WHERE子句是可选的,但是如果没有WHERE子句,则全表的数据都会被更新,务必小心。

12.3 步骤

步骤一:更改员工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;

12.4 完整代码

本案例的完整代码请参考步骤。

13 删除员工数据

13.1 问题

本案例的详细要求如下:

1)删除员工表中职位(job)为空的员工记录;

2)删除员工表中名字(name)为“rose”的员工。

13.2 方案

DELETE语句用来删除表中的记录,其语法如下:

    DELETE [FROM] table_name [WHERE condition];

和UPDATE语句一样,WHERE子句是可选的,但是如果没有WHERE子句,则全表的数据都会被删除,务必确认后再予以删除。

13.3 步骤

步骤一:删除职位(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';

13.4 完整代码

本案例的完整代码请参考步骤。