oracle 自学笔记

合集下载

oracle 笔记

oracle 笔记

oracle 笔记Oracle是一种关系数据库管理系统,由Oracle Corporation开发。

以下是关于Oracle的一些笔记:1. 数据库架构:Oracle数据库有两个主要的架构:逻辑架构和物理架构。

逻辑架构包括了数据库对象(表、索引、视图等)以及用户和角色的定义。

物理架构指的是数据在磁盘上的存储方式。

2. 数据库对象:Oracle数据库中的主要对象包括表、索引、视图、触发器、存储过程等。

表是最基本的对象,用于存储数据。

索引用于加快表的查询速度。

视图是一种虚拟表,通过查询一个或多个表返回结果。

触发器是一种在表上定义的操作,当满足某些条件时触发。

存储过程是一段可重复使用的程序代码,用于完成特定的任务。

3. SQL语言:Oracle数据库使用SQL(Structured Query Language)进行数据库操作。

SQL语言包括数据查询语句(SELECT)、数据操作语句(INSERT、UPDATE、DELETE)以及数据定义语句(CREATE、ALTER、DROP)等。

4. 数据库管理:Oracle提供了一套完整的数据库管理工具,包括创建数据库、备份和恢复数据库、监控数据库性能等。

其中,Oracle Enterprise Manager是一个图形化界面的管理工具,可以通过它来管理和监控整个数据库系统。

5. 数据完整性:Oracle数据库通过约束条件来确保数据的完整性。

主键、外键、唯一约束、非空约束等都可以用于限制数据的输入。

此外,还可以使用触发器和存储过程来定义自定义的数据完整性规则。

6. 事务管理:Oracle数据库使用ACID(原子性、一致性、隔离性、持久性)模型来管理事务。

事务是一系列数据库操作的逻辑执行单元,要么全部执行成功,要么全部回滚。

这些只是Oracle数据库的一些基本概念和特点,还有很多其他的内容,如高可用性、性能优化、安全性等。

如果想要深入了解Oracle数据库,可以参考相关的文档和教程。

Oracle超详细学习笔记

Oracle超详细学习笔记

Oracle超详细学习笔记-----员⼯培训------1.最简单的查询--例SELECT *FROM employees;DESC employees;SET linesize 600;SET PAGESIZE 50;--例2SELECT table_name FROM user_tables;--查询数据库中所有表名--2.查询特定的列--例SELECT employee_id,fisrt_name,last_name.salaryFROM employees;--3.在SELECT⼦句中使⽤直接量--例SELECT 5FROM employees;-----------------------SELECT 5FROM dual;--这是Oracle提供的伪表--例2:SELECT 'Hello Oracle SQL'--在Oracle中如何表⽰字符串常量FROM employees;SELECT 'Hello Oracle SQL'--在Oracle中如何表⽰字符串常量FROM dual;--例3:SELECT 'Hello Oracle''s SQL'--⽤两个连续单引号进⾏单引号转义FROM employees;--4在SELECT⼦句中使⽤算术表达式--例1:查询员⼯的编号、姓名和年薪SELECT employee_id,fist_name,last_name,salry,salary*12FROM employees;--例2:SELECT 5/2FROM dual;--5.给例定义别名--例1:SELECT employee_id AS idFROM employees;--例2:SELECT employee_id AS "Id"--双引号中的字符原样显⽰FROM employees;--例3:SELECT employee_id,fist_name,last_name,salry,salary*12 AS annual_salary FROM employees;--例4:SELECT employee_id,fist_name,last_name,salry,salary*12 AS "annual salary" FROM employees;--如果别名有特殊字符必须使⽤双引号--6.字符串的链接运算符--例:SELECT employee_id||''||fist_name,last_name,salry,salary*12 AS annual_salary FROM employees;--7.过滤重复记录--例1:SELECT DISTINCT department_idFROM employees;--例2:SELECT DISTINCT department_id,job_idFROM employees;--第⼆章过滤查询和结果集排序--1.使⽤WHERE⼦句过滤记录--例1:SELECT *FROM employeesWHERE salary > 8000;--例2:SELECT employee_id,first_name,last_name,salary FROM employeesWHERE salary = 17000;--例3:SELECT employee_id,first_name,last_name,salary FROM employeesWHERE salary <> 17000;-- !=--⽐较运算符号:>,>=,<,<=,=,!=或<>--例4SELECT employee_id,first_name,last_name,salary FROM employeesWHERE salary >=2500 AND salary <= 17000;--逻辑运算符:AND,OR,NOT--2.在WHERE⼦句中使⽤字符串和⽇期--例1:查询职位ID为st_clerk的员⼯信息SELECT employee_id,job_id,first_name,FROM employeesWHERE job_id = 'ST_CLERK';--表中字段的值是区分⼤⼩写的--例2:查询1998年7⽉9⽇⼊职的员⼯信息SELECT employee_id,job_id,first_nameFROM employeesWHERE hire_date = '09-7⽉-1998';--⽇期直接量必须以字符串的形式来体现--Oracle的⽇期是格式敏感的--标准⽇期表⽰DD-MM-RR--3.其他⽐较运算符--1)BETWEEN AND--例1:查询⼯资在【2500,7000】上的员⼯信息SELECT employee_id,job_id,first_name,salaryFROM employeesWHERE salary BETWEEN 2500 AND 7000;--包含边界值--第⼀个值要⼩于第⼆个值--练习:查询1998年⼊职的员⼯信息SELECT employee_id,job_id,first_name,salary,hire_dateFROM employeesWHERE hire_date BETWEEN '01-1⽉-1998' AND '31-12⽉-1998';--2) IN--例1:查询职位ID是ST_CLERK或者ST_MAN的员⼯SELECT employee_id,job_id,first_name,salary,hire_dateFROM employeesWHERE job_id IN ('ST_CLERK','ST_MAN');--例2SELECT employee_id,job_id,first_name,salary,hire_dateFROM employeesWHERE NOT job_id IN ('ST_CLERK','ST_MAN');----------------------------------------------------------------------------SELECT employee_id,job_id,first_name,salary,hire_dateFROM employeesWHERE job_id NOT IN ('ST_CLERK','ST_MAN');--3)LIKE--例1:模糊查询SELECT employee_id,job_id,first_name,salary,hire_dateFROM employeesWHERE job_id LIKE 'ST%';--通配符:%任意多个字符,_⼀个字符。

Oracle数据库学习笔记大全 (1)

Oracle数据库学习笔记大全 (1)

为什么要创建其它用户?因为system,sys用户等等是系统用户,系统
用户使用的是系统的表空间。我们应该创建一个非系统用户去使用上面创建的非
系统表空间,以免破坏系统原始数据。
使用SQL语句创建用户使用上述表空间:
CREATE USER 用户名
IDENTIFIED BY 密码
delete from test1 where id=1 and name='jack'; //删除id=1并且name='jack'的那些数据
delete from test1 where id=2 or name='jack'; //删除id=2或者name='jack'的那些数据
使项目的数据更加的清晰,易于维护.
什么是SQL?结构化查询语言(Structor Query Language)
通过SQL命令去创建表空间:(SQL语句大小写不敏感)
CREATE TABLESPACE
表空间的逻辑名称
DATAFILE
表空间的物理结构文件路径名称
9.安装ORACLE后,oracle数据库会启动很多服务,这些服务占用大量内存,如果不用ORACLE数据库最好把ORACLE相关开启的服务关闭。
如何关闭服务?
我的电脑-->管理-->服务和应用程序-->服务
把Oracle相关的自动启动的服务改成手动启动。
10.数据库的实例名是编程语言连接数据库的标志。
注意:如果敲入的SQL语句执行错误。可以使用edit命令进行编辑
编辑步骤:SQL>edit 回车(edi缩写)
弹出记事本

oracle 笔记

oracle 笔记

oracle 笔记摘要:一、Oracle 简介1.Oracle 的发展历程2.Oracle 的产品和服务二、Oracle 数据库的基本概念1.数据库管理系统2.关系型数据库3.Oracle 数据库的结构三、Oracle 数据库的安装与配置1.安装Oracle 数据库的前提条件2.安装过程及注意事项3.配置Oracle 数据库四、Oracle 数据库的管理1.数据库的启动与关闭2.数据库的备份与恢复3.用户与权限管理五、SQL 语言基础1.SQL 简介2.SELECT 查询语句3.INSERT、UPDATE 和DELETE 操作语句六、PL/SQL 编程1.PL/SQL简介2.存储过程与函数3.触发器与异常处理七、Oracle 数据库的应用1.Oracle 数据库在企业级应用中的优势2.Oracle 数据库在典型行业的应用案例正文:一、Oracle 简介Oracle(甲骨文)公司成立于1977 年,总部位于美国加州,是全球著名的数据库软件及解决方案供应商。

Oracle 的产品和服务涵盖了数据库、应用软件、中间件、云计算等领域,广泛应用于企业、政府、金融、医疗等各个行业。

二、Oracle 数据库的基本概念1.数据库管理系统:数据库管理系统(DBMS)是一种用于存储、检索和管理数据的计算机软件。

它提供了对数据的高效组织、存储、检索、更新和维护功能。

2.关系型数据库:关系型数据库是基于关系模型的数据库,采用表格形式存储数据,并通过SQL(结构化查询语言)进行操作。

Oracle 数据库是一种关系型数据库,具有强大的数据管理功能和高度的数据安全性。

3.Oracle 数据库的结构:Oracle 数据库由物理结构和逻辑结构组成。

物理结构包括数据库文件、数据块、表空间等;逻辑结构包括表、视图、索引等。

三、Oracle 数据库的安装与配置1.安装Oracle 数据库的前提条件:首先,需要确保计算机硬件满足Oracle 数据库的最低要求;其次,需要获取Oracle 数据库的安装文件,这些文件通常可以从Oracle 官网下载。

oracle第一章课堂笔记

oracle第一章课堂笔记
4)删除用户:drop user 用户名 cascade;
5)删除表空间:drop tablespace 表空间名
[include contents and datafiles]
oracle Sql查询
*********************
FROM itemfile;
主外键列:列 类型 primary key
列 类型 references 主表(主键)
主外键约束:
alter table 表名 add constraint 约束名 primary key(主键);
2)后台进程:服务器进程。每一个进程在数据库中执行不同的任务。
补充:SGA:由共享池、数据缓冲区、日志缓冲区三部分组成。
共享池:PL/SQL进行分析、编译的内存区域。
数据缓冲区:数据修改时,首先从数据文件取出,存储在数据缓冲区中;修改,插入的数据也存储在这里。最后被写入文件。
日志缓冲区:日志信息产生于日志缓冲区中。当日志达到一定数量时,由LGWR写入日志文件。
第一章 oracle体系结构
一、oracle服务器组成
1.oracle实例:包含内存结构和后台进程
1)内存结构:
(1)PGA:程序全局区。一个用户有一个。不共享。当用户结束回话时释放。(program global area)
(2)SGA:系统全局区。只有一个。共享。实例启动时创建。服务停掉时释放。(system global area)
alter table 表名 add constraint 约束名 foreign key(外键) references 主表(主键);
alter table 表名 drop constraint 约束名;

ORACLE学习笔记_第一讲_存储过程入门

ORACLE学习笔记_第一讲_存储过程入门

第一讲存储过程入门1、内容:(1)定义函数、定义过程的基本语法①函数/过程头部分:名称、参数和返回值类型;②声明部分:变量声明;③执行部分;④异常处理部分。

(2)变量①定义变量的基本语法;②变量类型:标量(scalar)数据类型<number、character、data/time、boolean>③变量的赋值;④变量的使用。

(3)操作符的使用①算术操作符:+(加)、-(减)、*(乘)、/(除)、**(乘方)②关系操作符:>(大于)、>=(大于等于)、<(小于)、<=(小于等于)、=(等于)、!=(不等于)、<>(不等于)、:=(赋值操作符)③比较操作符:IS NULL、LIKE、BETWEEN、IN④逻辑操作符:AND、OR、NOT(4)游标的基本使用方法①游标的定义②游标的打开③循环获取游标行记录④游标的关闭(5)函数的调用(6)通过PL-SQL编写、调试函数和过程2、应用举例(1)准备在数据库中建表,表名为student,字段内容如下:(2)函数createNumber--定义函数,作用:获取student表中no字段的最大值,将student表中no为0的记录其no字段的值从当前最--大的no值开始,依次+1进行更新create or replace function cr eateNumber--返回值类型return integer--定义变量is--定义number类型的变量num_max number;--定义变量,变量类型根据表student中的cuid来定,这两个变量在函数中没有用,只是--作为知识点介绍s_cuid student.cuid%type;s_no student.no%type;--定义游标,且向游标传递参数,参数的定义方法和普通参数的定义方法相同cursor student_line(no_value student.no%type) is select cuid,no from student where no =no_value;--定义游标行变量,即变量类型为游标行对象stu_row student_line%rowtype;begin--通过sql给变量num_ma x赋值select max(no) into num_ma x from student;--输出变量num_maxdbms_output.put_line(num_max);--传递参数,打开游标open student_line(0);--循环获取游标行记录loop--获取游标行记录fetch student_line into stu_row;--直至游标走到结束位置才退出循环exit when student_line%notfound;--num_max自增num_max:=num_max+1;--输出调试信息dbms_output.put_line('now studentinfo:'||'s_cuid='||stu_row.cuid||',s_no='||stu_row.no||'*****num_max='||num_max); --执行表更新操作update student set no=num_max where cuid=stu_row.cuid;--结束循环end loop;--关闭游标close student_line;--返回结果return 0;end createNumber;(3)函数test--循环往表student中插入一些测试记录create or replace function test(flag in number)--说明返回值类型return int--开始定义变量is--定义int类型变量num int;begin--变量赋值num:=flag;--开始循环loopnum:=num+1;--选择语句if (num>50) thenexit;elseinsert into student(cuid,name,no,remark) values(num,'zhuyong',0,'待更新');end if;--结束循环end loop;--返回值return num;end;(4)调用的存储过程--调用函数test和createNumber的存储过程create or replace procedure testx--开始定义变量isc number;begin--调用test函数c:=test(5);--输出test函数执行结果dbms_output.put_line(c);--调用createnumber函数c:=createnumber;--输出createnumber函数的调用结果dbms_output.put_line(c);end testx;(5)测试代码和方法在PL-SQL中选中存储过程名称,右键菜单中选择“test”项,即可进行调试。

Oracle学习笔记

Oracle学习笔记

Oracle 入门学习笔记
4.3 分析函数 .................................................................................................... 17 第三章 分区表与锁 ................................................................................................ 17 1. 分区表的分类 ....................................................................................................... 17 2. 分区表的使用 ....................................................................................................... 17 3. 分区表的维护 ....................................................................................................... 20 4. 锁 ........................................................................................................................ 21 第四章 数据对象..............................................................................

oracle 笔记

oracle 笔记

关于Oracle的学习笔记,可能包括以下几个重要部分:数据库创建和管理:创建用户和表空间。

以超级管理员的身份登录,创建表空间,创建用户,给用户授权,使用新用户进行查询测试。

数据定义语言(DDL)用于建立、修改、删除数据库对象,包括创建语句(CREATE)、修改语句(ALTER)、删除语句(DROP)。

例如,使用CREATE TABLE创建表,使用ALTER TABLE修改表,使用DROP TABLE删除表等。

数据库查询:数据查询语言(DQL)用于查询所需要的数据。

排序查询结果。

例如,使用SELECT语句查询员工信息,并按升序排序。

排序可使用NULLS FIRST和NULLS LAST来选择空的信息的位置。

字符串拼接。

通过“||”实现字符串的拼接。

例如,查询所有员工姓名并在后面加一个“a”。

当字符串拼接遇到空的时候,空会自动变成一个空字符串。

数据库数据操作:数据操作语言(DML)用于改变数据库数据,包括INSERT、UPDATE、DELETE三条语句。

使用DISTINCT去重。

例如,SELECT DISTINCT name, id FROM A,作用于多列。

数据库高级特性:使用PARTITION BY在保留全部数据的基础上,只对其中某些字段做分组排序。

虚拟表DUAL是一个虚表,虚拟表,是用来构成SELECT的语法规则,Oracle保证DUAL里面永远只有一条记录。

数据库控制和管理:数据控制语言(DCL)用于数据库的控制和管理。

事务控制语言(TCL)用于数据库事务的控制。

以上内容只是Oracle学习笔记的一部分,实际上Oracle数据库系统的学习还包括很多其他的内容,如索引管理、视图、存储过程、触发器等高级数据库对象的管理和使用,以及数据库性能优化、安全性管理等内容。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle自学笔记启动服务启动字符界面启动数据库以测试用户scott 的身份登陆简单查询dept 表其中通配符* 代表任意个任何字符。

执行c:\test.sql 文件使用edit 命令调用编辑工具修改缓冲区的SQL 的语句改为利用change 命令修改;当前行执行/下行执行(如下)show 命令行设置以ename 和sal 为关键字降序排列where 和in 的使用注意:涉及字符串条件的查询,要把字符串用单引号括住,而且要注意字符串大小写在Oracle 中的区别。

where 和beween 的使用转义字符“\”* 只能用以select 的子句过滤条件中能够使用的两个% (任意个任意字符)和_(一个任意字符)注意和的单引号(escapt指出转义字符)注意:转义字符可以是特殊的字符(_)(\) (/) (-) (%)SQL Server 2000 支持中括号( [] )、“^ ”的y用法Like ‘[ABC]%’是指字段值满足第一个字符为A、B、C中的某一个,[A-F]为A到F中的某一个;‘^ABC%’是指字段值满足第一个字符不为A、B、C中的任一个。

若为\ 或‘则可以在其之前加上‘\’P31 汇总函数COUNT(计数函数)、SUM(求和函数)、MAX(最大值函数)、MIN(最小值函数)、A VG(平均值函数)查询员工的人数及不重复的部门号的个数:查询emp 表中月工资额高于2500 的员工个数:查询列出emp 表中的月工资总额:查询员工的最高工资和最低工资:查询列出部门号为10的的员工的平均工资:DML语句(update,delete,insert)1、insert into-values()SQL> insert into dept values(60,'fly','CHINA');已创建1 行。

2、update-set-whereSQL> update dept set deptno=deptno+102 where deptno=603 /3、delete from-whereSQL> delete from dept where deptno=702 /已删除1 行。

手工建库1、创建相关目录2、创建初始化参数文件拷贝已有数据库F:\oracle\product\10.2.0\admin\lqr\pfile下的参数文件到F:\oracle\product\10.2.0\admin\myora\pfile下,更名为initmyora.ora(注意这里与数3、设置环境变量4、创建服务5、创建口令文件6、启动数据库C:\>sqlplusSQL*Plus: Release 10.2.0.1.0 - Production on 星期二8月25 16:37:49 2009 Copyright (c) 1982, 2005, Oracle. All rights reserved.请输入用户名: / as sysdba --以sys用户连接已连接到空闲例程。

SQL> startup nomountORA-01078: failure in processing system parametersLRM-00109: ???????????????? 'F:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\INITMYORA.ORA'SQL> show userUSER 为"SYS"SQL> startup nomount --启动到nomount状态ORACLE 例程已经启动。

Total System Global Area 612368384 bytesFixed Size 1250428 bytesVariable Size 167775108 bytesDatabase Buffers 436207616 bytesRedo Buffers 7135232 bytes之前因为参数文件本应该放在F:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\下的,却放在了F:\oracle\product\10.2.0\admin\myora\pfile 所以启动数据库出错。

7、在SQL*Plus中执行建库脚本8、创建数据字典9、执行catproc创建包SQL> conn / as sysdbaERROR:ORA-12560: TNS: 协议适配器错误SQL> conn system/oracleERROR:ORA-12560: TNS: 协议适配器错误SQL> exitC:\>set oracle_sid=myora --注意设置环境变量,就没有问题了C:\>sqlplus /nologSQL*Plus: Release 10.2.0.1.0 - Production on 星期二8月25 18:11:12 2009 Copyright (c) 1982, 2005, Oracle. All rights reserved.SQL> conn / as sysdba已连接到空闲例程。

SQL>SQL> startup nomountORACLE 例程已经启动。

Total System Global Area 612368384 bytesFixed Size 1250428 bytesVariable Size 167775108 bytesDatabase Buffers 436207616 bytesRedo Buffers 7135232 bytesSQL>创建数据库字典全部出错,创建包的也总是出错,然后会自动中断退出oracle?怎么办?算了重来,把所以的都删掉。

还好删掉之后就没问题了。

算是熟悉下吧。

10、执行pupbld.sql脚本文件切换为system用户执行pupbld.sql 脚本文件,system的默认口令为manager,执11、创建spfile12、执行scott脚本创建scott模式13、测试新建数据库C:\>set oracle_sid=myora --设置环境变量C:\>sqlplus scott/tiger --以scott用户登陆SQL*Plus: Release 10.2.0.1.0 - Production on 星期二8月25 20:40:43 2009 Copyright (c) 1982, 2005, Oracle. All rights reserved.连接到:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining optionsSQL> col tname for a6SQL> select * from tab; --执行查询TNAME TABTYPE CLUSTERID------ -------------- ----------DEPT TABLEEMP TABLEBONUS TABLESALGRA TABLEDESQL> --又返回结果,说明建库成功到此,myora数据库就建立成功了。

O(∩_∩)o…哈哈!断电又能怎样。

网络服务1、先启动服务C:\>net start oracleserviceorclOracleServiceORCL 服务正在启动............OracleServiceORCL 服务已经启动成功。

2、启动数据库C:\>sqlplus / as sysdbaSQL*Plus: Release 10.2.0.1.0 - Production on 星期四12月4 08:05:58 2008Copyright (c) 1982, 2005, Oracle. All rights reserved.连接到:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, OLAP and Data Mining options在目录F:\oracle\product\10.2.0\db_1\NETWORK\ADMIN 下新建文件tnsnames.ora 并编辑连接1、交叉连接SQL-99表示法:SQL> select * from emp cross join dept;SQL-89表示法:SQL> select * from emp,dept;2、内连接几种方法:(1)SQL-99表示方法:SQL> select dept.dname,emp.ename2 from emp inner join dept on dept.deptno=emp.deptno3 /(2)用别名SQL> ed已写入file afiedt.buf1 select d.dname,e.ename from2* emp e inner join dept d on e.deptno=d.deptno SQL> /(3)省innerSQL> ed已写入file afiedt.buf1 select d.dname,e.ename from2* emp e join dept d on e.deptno=d.deptnoSQL> /(4)用where实现:QL> select d.dname,e.ename2 from dept d,emp e3 where d.deptno=e.deptno4 /(5)当两个表有同名字段且作为连接字段时方法一:SQL> select d.dname,e.ename2 from emp e natural join dept d3 /方法二:1 select d.dname,e.ename2 from emp e join dept d3* using(deptno)3、外连接(1)左外连接(left)SQL> select e.ename,d.dname2 from emp e left outer join dept d on e.deptno=d.deptno3 /ENAME DNAME---------- --------------CLARK ACCOUNTINGSCOTT RESEARCHJONES RESEARCHSMITH RESEARCHBLAKE SALESMARTIN SALESWARD SALESALLEN SALESMILLERFORDJAMESENAME DNAME---------- --------------ADAMSTURNERKING已选择14行。

相关文档
最新文档