Oracle 是一个数据库管理系统,是Oracle公司的核心产品。其在数据安全性与安整性控制方面的优越性能,以及跨操做系统、跨硬件平台的数据操做能力。sql
基于“客户端/服务器”(Client/Server)系统结构。数据库
Oracle主要的特色:浏览器
1.支持多用户、大事务量的事务处理。安全
2.在保持数据安全性和完整性方面性能优越。服务器
3.支持分布式数据处理。将公布在不一样物理位置的数据库用通讯网络链接起来,组成一个逻辑上统一的数据库,完成网络
数据处理任务。oracle
4.具备可移植性。Oracle能够在Windows、Linux等多个操做系统平台上使用。分布式
Oracle的基本概念:函数
1.数据库。这里的数据库是磁盘上存储数据的集合,在物理上表现为数据文件、日志文件和控制文件等。在逻辑上以表空工具
间形式存在。必须首先建立数据库,而后才能用Oracle。能够在Database Configuation Assistant上建立。
2.全局数据库名。用于区分一个数据库的标识。它由数据库名称和域名构成,相似网络中的域名,使数据库的命名在整个
网络环境中惟一。
3.数据库实例。每一个启动的数据库都对应一个数据库实例,由这个实例来访问数据库中的数据。
4.表空间。每一个数据库都是由若干个表空间构成的,用户在数据库中创建的全部内容都被存储到表空间中。一个表空间可
以由多个数据文件组成,但一个数据文件只能属于一个表空间。
5.数据文件。扩展名是.dbf,是用于存储数据库数据的文件。一个数据文件中可能存储不少个表的数据,而一个表的数据
也能够存放在多个数据文件中。数据文件和数据库表不存在一对一的关系。
6.控制文件。技展名.ctl,是一个二进制文件。控制文件是数据库启动及运行所必需的文件。存储数据文件和日志文件的
名称和位置。Oracle 11g默认包含三个控制文件。
7.日志文件。扩展名.log,它记录了数据的全部更改信息,并提供了一种数据恢复机制,确保在系统崩溃或其余意外出现
后从新恢复数据库。在工做过程当中,多个日志文件组之间循环使用。
8.模式和模式对象。模式是数据库对象(表、索引等,也称模式对象)的集合。
Windows下Oracle数据库服务:
1.OracleServiceSID服务是Oracle数据库服务。此服务对应名为SID(系统标识符)的数据库实例建立的。必须启动。
2.OracleOraDb11g_homelTNSListener服务是监听器服务。要远程链接数据库服务器,必须链接监听进程,该服务只有
在数据库须要远程访问时候才须要。(PL/SQL等第三方工具链接就至关于远程链接)。
3.OracleDBConsoleSID服务是数据库控制台服务,是采用浏览器方式打开的,用于使用Oracle企业管理器的程序。如
果进入 基于Web形式的企业管理(EM)控制平台,必需要启动OracleDBConsoleSID服务。
链接数据库:
Sys和System用户都是Oracle的系统用户,Scott用户是Oracle数据库的一个测试帐户,里男包含一些测试例表。每
个用户下全部的对象称为模式对象。
1.用SQL Plus工具登陆:
1)cmd->sqlplus->用户名:->密码:
2)直接打开程序SQL Plus->用户名:->密码
3)在输入用户名处->用户名/密码@网络服务名
4)命令窗口:sqlplus /nolog 这样就只是打开了sqlplus而并无链接数据库,以后要链接数据库得继续敲:
connect 用户名/密码@数据库名;
2.PL/SQL Developer工具:
1)用户名:输入System.
2)口令:输入对应密码。
3)数据库:输入已经配置好的网络服务名,如orclDB。
4)链接为:Normal普通用户;sysOper数据库操做员;sysDBA数据库管理员。
3.Java链接Oracle:
driver: oracle.jdbc.driver.OracleDriver
url: jdbc:oracle:thin:@localhost:1521:数据库名
DUAL伪表,在Oracle的查询语句中select和from关键字必定有值,但在某些状况下不须要from,如查询常量或函数,为
了知足要求,Oracle使用DUAL伪表来实现要求。
如: select sysdate from dual;--查询出当前系统日期和时间
Oracle数据类型:
一、数值数据类型
二、日期时间型
日期时间数据类型存储日期和时间值,包括年、月、日,小时、分钟、秒
主要的日期时间类型有:
Select sysdate from dual;
Select systimestamp from dual;
三、大对象(LOB)
1.CLOB(Character LOB,字符LOB)存储大量字符数据。能够存储单字节字符数据和多字节字符数据,主要用于存储非结
构化的XML多档。如新闻、内容介绍等含大量文字内容的文档。
2.BLOB(Binary LOB,二进制LOB)能够存储较大的二进制对象,如图形、视频剪辑和声音剪辑等。
3.BFILE(Binary File,二进制文件)可以将二进制文件存储在数据库外部的操做系统文件中。BFILE列存储一个BFILE
定位器,指向位于服务器文件系统上的二进制文件。最大4GB。
4.NCLOB数据类型用于存储大的nchar字符数据。支持固定宽度字符和可变宽度字符(Unicode字符数据)。使用方法同
CLOB相似。
早期使用Long数据类型存储大数据。
四、伪列
ROWID 是表中行的存储地址,该地址能够惟一地标识数据库中的一行,可使用 ROWID 伪列快速地定位表中的一行
ROWNUM 是查询返回的结果集中行的序号,可使用它来限制查询返回的行数
举例:
select * from(
select a.*,rownum rn from ( --这里设置了rownum的列别名,这样就能够在外层查询用between and语句了
select * from employee order by sal desc
) a
)
where rn between 5 and 9;
SQL语言的组成
DDL – Create Table命令
建立表
语法:
CREAT TABLE [模式名.]基本表名
( 列名1 类型1,
列名2 类型2,
……
完整性约束... )
[tablespace “表空间名”];
create table t_student ( SID char(5) not null primary key, --学号 Sname varchar2(10) not null, --姓名 Ssex char(1) not null, --性别 Sbirthday date null, --出生日期 Stel varchar2(13) null, --联系电话 Sclass int null --班级 );
DDL – Alter Table命令
修改表结构:
ALTER TABLE 基本表名 ADD/MODIFY/DROP (增长/修改/删除) 列名 类型名(增长/修改时写出)或增长/修改/删除 约束
实例:
一、增长字段:ALTER TABLE t_student Add f_address char(50);
二、修改字段:ALTER TABLE t_student Modify f_address varchar2(50);
三、删除字段:ALTER TABLE t_student Drop column f_address ;
四、添加约束: ALTER TABLE t_student Add constraint uk_Sname Unique(Sname);
DDL – 截断及删除命令
截断:
Truncate TABLE 基本表名
TRUNCATE TABLE t_student;
注意:
一、截断表是将表中全部记录删除,但保留表结构,而且不写日志
二、trancate table 是DDL语言,delete from table_name 是DML语言
删除表:
DROP TABLE 基本表名
DROP TABLE t_student;
数据的完整性
可靠性+准确性=数据完整性
根据数据完整性机制所做用的数据库对象和范围不一样,数据完整性可分为如下四种类型
一、实体完整性
二、域完整性
三、引用完整性
四、自定义完整性
约束实现数据完整性
建立表:保证数据的完整性 = 实施完整性约束
实体完整性:主键约束,惟一约束
域完整性:限制数据类型、检查约束、默认值、非空约束
引用完整性:外键约束
自定义完整性:规则、存储过程
实例:
建立表时
sex char(2) check (sex='男' or sex='女')
constraint ck_sex check (sex='男' or sex='女')
修改表时:
alter table student add constraint ck_sex check(sex='男' or sex='女')
数据操纵语言
数据操纵语言用于检索、插入和修改数据
数据操纵语言是最多见的SQL命令
数据操纵语言命令包括:
DML – INSERT 命令
一、INSERT 命令的基本语法:
INSERT INTO 基本表名[(columns_list)]
VALUES(values_list)
二、插入日期类型的值
举例:
INSERT INTO t_student VALUES(‘10014’, ‘许文强’, ‘m’, ‘25-5月-88’, ‘13202010118',1);
INSERT INTO t_student(SID,Sname,Ssex,Sbirthday) VALUES (‘10015’,‘冯程程','f',TO_DATE('1990-10-18', 'YYYY-MM-DD'));
三、插入来自其它表中的记录
语法:
INSERT INTO <table_name> [(cloumn_list)]
SELECT column_names FROM <other_table_name>;
CREATE TABLE t_stutemp AS SELECT * FROM t_student WHERE 1=2;
INSERT INTO t_stutemp SELECT * FROM t_student WHERE Sclass=3;
INSERT INTO t_stutemp(SID,Sname,Stel) SELECT SID,Sname,Stel FROM t_student WHERE Sclass=2;
DML – UPDATE命令
UPDATE命令的基本语法:
UPDATE <table_name> SET column_name = value [, column_name = value,……] [WHERE condition];
例:修改张三的出生日期为 88年1月8号
Update t_student set Sbirthday = ’08-1月-88’ where Sname = ‘张三’;
DML – DELETE 命令
DELETE命令的基本语法:
DELETE [FROM] <table_name> [WHERE condition];
例:删除学号为10014的学生信息
Delete t_student where SID = ‘10014’;
事务控制语言
事务是最小的工做单元,做为一个总体进行工做
保证事务的总体成功或失败,称为事务控制
用于事务控制的语句有:
数据控制语言为用户提供权限控制命令
用于权限控制的命令有:
GRANT SELECT ON t_student TO user1 WITH GRANT OPTION;
REVOKE SELECT, UPDATE ON t_student FROM user1;
数据控制语言
数据控制语言为用户提供权限控制命令
用于权限控制的命令有:
实例:
GRANT SELECT ON t_student TO user1 WITH GRANT OPTION;
REVOKE SELECT, UPDATE ON t_student FROM user1;
受权查询