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数据库----笔记1----oracle--SQL操纵语言-insert-up。。。

oracle数据库----笔记1----oracle--SQL操纵语⾔-insert-up。
SQL的数据操纵功能:1.数据插⼊ insert---------------------------------------------------------------------------------------插⼊命令⼀般形式 :SQL>insert into <表名>[(列名表)]values(<值表>)sql>insert into emp(empno,ename,sal,deptno)values(7594,'CARTER',500,20);带参数插⼊语句形式:SQL>insert into <表名> values(<参数表>)sql>insert into deptvalues(&deptno,'&dname','&loc');⽤带有⼦查询的插⼊语句(查询插⼊):通过查询⼦句从某表中找出所需数据,拷贝到现⾏表中,⽤查询代替values⼦句实现SQL>insert into <表名>[(列名表)] <select 语句>sql>insert into emp2(empno,ename,deptno)select empno,ename,deptnofrom empwhere deptno in(20,30,40);若命令中缺省“列名表”,则⽤ select * 将满⾜条件的所有⾏的各列数据插⼊若指出列名,则要与select后指定的列名要位置⼀⼀对应,类型相同,字段名可不同于查询表插⼊空值sql>insert into dept values(50,'DEC',NULL);插⼊⽇期值SQL>insert into emp(empno,ename,hiredata)values(7655,'MARY','10-MAY-96');要想改变⽇期表⽰格式, ⽤函数 to-date实现: to_date(char,format)sql>insert into emp(empno,ename,hiredate)values(7655,'MARY',to_date('5/10/96','MM/DD/YYYY'))-------------------------------------------------------------------------------------------2.数据修改命令 UPDATE SET直接赋值:SQL>update <表名>set <列名1>=<表达式1> [, <列名2>=<表达式2>…][where<条件>] ;将雇员ALLEN提升为经理,⼯资增⾄$2500,佣⾦增加40% SQL>update empset job='MANAGER',sal=2500,comm=1.4*commwhere ename='ALLEN';对20号部门中所有经理或分析员提⾼⼯资15%sql>update empset sal=sal*1.15where job IN('MANAGER','ANALYST') AND deptno=20;利⽤⼦查询修改数据给在 NEW YORK⼯作的雇员提⾼⼯资5%sql>update empset sal=1.05*salwhere deptno IN(select deptno from deptwhere loc='NEW YORK');使所有销售⼈员的⼯资等于其平均⼯资1.1倍sql>update empset sal=(select 1.1*avg(sal) from empwhere job='SALESMAN' )where job='SALESMAN';3.数据删除 deleteSQL>delete from <表名>[where<条件>]sql>delete from emp2where sal>500;。
Oracle深度学习笔记——概要文件

25.Oracle深度学习笔记——SQL PROFILE概要文件1.引子Oracle系统为了合理分配和使用系统的资源提出了概要文件的概念。
所谓概要文件,就是一份描述如何使用系统的资源(主要是CPU资源)的配置文件。
将概要文件赋予某个数据库用户,在用户连接并访问数据库服务器时,系统就按照概要文件给他分配资源。
包括:1、管理数据库系统资源。
利用Profile来分配资源限额,必须把初始化参数resource_limit设置为true默认是TRUE的。
2、管理数据库口令及验证方式。
默认给用户分配的是DEFAULT概要文件,将该文件赋予了每个创建的用户。
但该文件对资源没有任何限制,因此管理员常常需要根据自己数据库系统的环境自行建立概要文件。
2.概要文件限制概要文件主要可以对数据库系统如下指标进行限制。
1)用户的最大并发会话数(SESSION_PER_USER)2)每个会话的CPU时钟限制(CPU_PER_SESSION)3)每次调用的CPU时钟限制,调用包含解析、执行命令和获取数据等等。
(CPU_PER_CALL)4)最长连接时间。
一个会话的连接时间超过指定时间之后,Oracle会自动的断开连接(CONNECT_TIME)5)最长空闲时间。
如果一个会话处于空闲状态超过指定时间,Oracle会自动断开连接(IDLE_TIME)6)每个会话可以读取的最大数据块数量(LOGICAL_READS_PER_SESSION)7)每次调用可以读取的最大数据块数量(LOGICAL_READS_PER_CALL)8)SGA私有区域的最大容量(PRIVATE_SGA)概要文件对口令的定义和限制如下:1)登录失败的最大尝试次数(FAILED_LOGIN_ATTEMPTS)2)口令的最长有效期(PASSWORD_LIFE_TIME)3)口令在可以重用之前必须修改的次数(PASSWORD_REUSE_MAX)4)口令在可以重用之前必须经过的天数(PASSWORD_REUSE_TIME)5)超过登录失败的最大允许尝试次数后,账户被锁定的天数6)指定用于判断口令复杂度的函数名在指定概要文件之后,DBA可以手工的将概要文件赋予每个用户。
Oracle笔记

Oracle笔记Oracle操作笔记一、基本操作启动客户端sqlplus /nolog链接服务器sqlplus /nologconn 用户名/密码as 连接身份@服务器连接字符串;1. 连接身份:表示该用户连接后拥有的权限。
sysdba:即数据库管理员,权限包括:打开数据库服务器、关闭数据库服务器、备份数据库、恢复数据库、日志归档、会话限制、管理功能、创建数据库。
sys用户必须用sysdba身份才能登录,system 用户可以用普通身份登录。
sysyoper:即数据库操作员,权限包括:打开数据库服务器、关闭数据库服务器、备份数据库、恢复数据库、日志归档、会话限制。
normal:即普通用户,权限只有查询某些数据表的数据。
默认的身份是normal用户。
Oracle启动和关闭(启动或关闭Oracle要用到conn / as sysdba) 启动:startup open关闭:shutdown immediateOracle用户和权限1.创建用户CREATE USER 用户名IDENTIFIED BY 口令[ACCOUNT LOCK|UNLOCK]LOCK|UNLOCK创建用户时是否锁定,默认为锁定状态。
锁定的用户无法正常的登录进行数据库操作。
SQL> CREATE USER jerry2 IDENTIFIED BY tom3 ACCOUNT UNLOCK;说明:Oracle在SQL*Plus中的命令以分号(;)结尾,代表命令完毕并执行,系统同时会把该命令保存在缓存中,缓存中只保存最近执行过的命令,如果重新执行缓存中的命令,直接使用左斜杠符号(/)。
如果命令不以分号结尾,该命令只是写入缓存保存起来,但并不执行。
2.授权GRANT角色|权限TO 用户(角色)SQL> GRANT CONNECT TO jerry;授权成功。
SQL> GRANT RESOURCE TO jerry;授权成功。
韩顺平oracle学习笔记

韩顺平oracle学习笔记第0讲:如何学习oracle一、如何学习oracleOracle目前最流行的数据库之一,功能强大,性能卓越。
学习oracle需要具备一定基础:1.学习过一门编程语言(如:java ,c)2.最好学习过一门别的数据库(sql server,mysql , access)教程推荐:oracle使用教程,深入浅出oracle记住:欲速则不达,做任何事情要遵循他的规律,循序渐进,信心很重要成为一个oracle高手过程:理解小知识点->做小练习->把小的只是点连成线->做oracle项目->形成只是面->深刻理解Oracle基础部分:oracle基础使用; oracle用户管理; oracle表管理Oracle高级部分:oracle表的查询; oracle的函数; oracle数据库管理;oracle 的权角色; pl/sql 编程;索引,约束和事物。
期望目标:1 学会安装、启动、卸载oracle2 使用sql *plus工具3 掌握oracle用户管理4 学会在oracle中编写简单的select语句第1讲:基础语法内容介绍:1.为什么学习oracle2.介绍oracle及其公司的背景3.学会安装、启动、卸载oracle4.oracle开发工具5.Sql*plus的常用命令6.oracle用户管理一、主流数据库包括:●微软:sql server 和 access●瑞典:mysql AB公司●IBM公司:DB2●美国sybase公司:sybase●IBM公司:infromix●美国oracle公司:oracle(目前最流行的之一)二、oracle安装,启动及卸载1.系统要求:操作系统最好为windows2000内存最好在256M以上硬盘空间需要2G以上2.oracle安装会自动的生成sys和system两个用户说明:○1Sys用户是超级用户,具有最高权限,具有sysdba角色,create database 的权限,默认密码是manager○2System 用户是管理操作员,权限也很大,具有sysoper角色,没有create database权限,默认密码是 change_on_install○3一般讲,对数据库维护,使用system用户登录就可以了3.启动oracle右键单击我的电脑->服务和应用程序:服务->启动OracleServiceMYORA1(MYORA1是安装oracle时起的名字各有不同)和OracleOracleHome90TNSLlistener4.卸载oracle1、先关掉oralce,net stop OracleServiceORCL(ORCL是我的实例名字,换成你的),或者去我的电脑服务中关闭2、开始->程序->Oracle - oracle的版本号,我的是10ghome->Oracle Installation Products->Universal Installer 卸载oracle3、进注册表,regedit,删除选择HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE下所有的key。
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首先Oracle一个数据库由若干个表空间组成,每个表空间由若干个数据文件(或设备)组成,每个数据文件由若干个盘区组成,每个盘区由若干个block组成。
这是Oracle的物理结构。
逻辑结构:一个数据库下有若干个方案组成(包括表、视图等等)。
每种对象有不同的存储方式。
当然逻辑结构和物理结构是有一定对应关系的。
一个用户可以跨多个表空间,一个表空间可以有多个用户。
1、创建表空间create tablespace DSPC datafile ‘E:\oracle\oradata\test\dspc.dbf’size 100M autoextend on;(autoextend)create tablespace TABSPACE_2 DATAFILE ‘E:\oracle\oradata\test\tabspace_2.dbf’ SIZE 20M DEFAULT STORAGE (INITIAL 10k NEXT 50k MINEXTENTS 1 MAXEXTENTS 999) ONLINE;(增加的)2、管理员名字: system (我自己的设置,与你的也许不同)密码: systemORA3、丢弃表空间:drop tablespace TMP;4、创建用户:create user mahone identified by ssdut default tablespace TMP;5、删除用户:drop user davidyx;6、给用户赋权限:grant dba to mahone; //dba: database administration7、创建一张表create table student (ID int primary key not null, name char(20),age int,height int);8、向表中添加一条记录insert into student values(20110822,'DaMing',21,180);9、查看表中的所有信息select * from student;10、查看某列符合某条件的信息比如:select * from student where age <= 21;11、删除某条信息delete from student where id=20110822;12、更新某条记录update student set name='你好',age=23,height=166 where id=20110806;13、修改表的某一列名字alter table test rename column DEPT to DEPT_OLD;14、往表中增加新的一列alter table tb3 add AGE number;14、让表中的数据按ID号由大到小的顺序排列select * from test order by ID desc;15、创建一张表,增加约束属性。
Oracle学习笔记

Oracle 入门学习笔记
4.3 分析函数 .................................................................................................... 17 第三章 分区表与锁 ................................................................................................ 17 1. 分区表的分类 ....................................................................................................... 17 2. 分区表的使用 ....................................................................................................... 17 3. 分区表的维护 ....................................................................................................... 20 4. 锁 ........................................................................................................................ 21 第四章 数据对象..............................................................................
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle数据库常用命令sqlplus scott/tiger as sysdba:将scott账户当作dba登录进来alter user scott account unlock; 用户解锁|-账户解锁1.conn / as sysdba2.alter user scott account unlock;3.alter user scott identified by tiger;|-数据类型1. binary_integer:整数,主要用来计数而不是用来表示字段类型2. number:数字类型3. char:定长字符串4. varchar2:变长字符串5. date:日期6 long:长字符串,最长2GB7 boolean:布尔,可取true false nullNumber:NUMBER (precision,scale)precision表示数字中的有效位。
如果没有指定precision的话,Oracle将使用38作为精度。
scale表示数字小数点右边的位数,scale默认设置为0.P是精度,s是刻度精度代表所要存的位数,s是指小数点后保留几位例如存储1234567.89序定义number(9,2)Char和varchar2 的区别CHAR的长度是固定的,而VARCHAR2的长度是可以变化的,比如,存储字符串“abc",对于CHAR (20),表示你存储的字符将占20个字节(包括17个空字符),而同样的VARCHAR2 (20)则只占用3个字节的长度,20只是最大值,当你存储的字符小于20时,按实际长度存储。
CHAR的效率比VARCHAR2的效率稍高。
|-数据库的启动sqlplus / as sysdbashutdown immediatesql> startup nomountsql> alter database mountsql> alter database open1.在Dos窗口中: rman target / nocatalog2.关闭数据库: shutdown immediate3.启动数据库到第二阶段:startup mount4.启动数据库到第三阶段:alter database open|-创建表空间create tablespace ts1 datafile 'c:\ts1.dbf' size 10M;|-新建用户并授权1.新建用户并制定密码create user user1 identified by abc;2.指定用户所在的表空间alter user user1 default tablespace ts1;3.授予连接和资源的权限grant connect,resource to user1;·显示当前用户show user;·授予最大权限grant connect,dba to user1;|-备份数据库|-远程连接数据库sqlplus sim/sim@ORCLCLCSKY101sim/sim: 用户名/密码ORCLCLCSKY101: 配置的监听|-ORACLE默认表desc 表名:查看表结构·desc emp 员工表·desc dept 部门表·desc salgrade 薪水等级表·desc dual 空表,一般用于计算,例如:select 2*3 from dual; Scott账户的默认表Emp:员工表EMPNO(员工编号)ENAME(员工姓名)JOB(职位)MGR(经理人编号)HIREDATE(入职时间)SAL(薪水)COMM(津贴)DEPTNO(部门编号)Dept:部门表Salgrade:等级表Select语句|-数学表达式·select ename,sal*12 from emp; 薪水*12,年薪·select ename,sal*12 year_sal from emp; 起别名·select ename,sal*12 "year_sal" from emp; 加双引号保持字段的大小写原型·select ename,sal*12+comm from emp; 所有人的年薪,薪水*12+津贴|-sysdate·select sysdate from dual; 当前系统时间|-字符串连接符||·SQL> select sal||'ksks' from emp; ||字符串连接符,字符串用单引号引起SAL||'KSKS'----------------------------------800ksks1600ksks1250ksks2975ksks1250ksks2850ksks2450ksks3000ksks5000ksks1500ksks1100ksks|-去掉重复信息distinct·select distinct deptno from emp;去掉deptno字段的重复信息·select distinct deptno,job from emp;去掉deptno,job组合的重复的信息|-过滤条件where·数学运算符:< > <> = not and or in·select * from emp where deptno=10; deptno(部门)等于10的员工信息·select ename,deptno from emp where deptno<>10;部门不等于10的员工姓名和部门·select ename,sal from emp where sal>=800 and sal<=1500;薪水大于等于800并且小于等于1500·select ename,sal from emp where sal>1000 and deptno=10;薪水>10并且部门=10的·select ename,sal from emp where sal>1000 or deptno=10;薪水>10or部门=10的都取出来|-空值处理NULL·select ename,sal from emp where comm is null; 奖金为空的员工的姓名和工资·select ename,sal from emp where comm is not null; 奖金不为空的员工的姓名和工资·select ename,sal from emp where sal in (800,1500,3000);薪水是800、1500、3000的人的的姓名和薪水·巧妙使用函数nvl()select ename,sal*12+nvl(comm,0) from emp;如果comm是空值,则用0代替,如果不是null,则就是comm的值|-模糊查询Like·%:通配一个或多个字母、_:通配一个字母、\:转义字符·select ename from emp where ename like '%A%';姓名中带’A’的人·select ename from emp where ename like '_A%'; 姓名中第二个字母是A的人·select ename from emp where ename like '%\%%';查询姓名中带%的人,·select ename from emp where ename like '%$%%' escape '$'; $作为转义字符,查询出姓名中带%的人|-排序order by asc/desc·select * from dept order by deptno desc;将部门表按照部门编号降序排列·select ename,sal from emp order by sal asc;员工表按照薪水升序排列·select ename,sal from emp where deptno<>10 order by sal asc;部门不等于10的员工按照薪水升序排列·select ename,sal,deptno from emp order by deptno asc,sal desc;先按照部门编号升序排序,在部门编号相同的情况下再按照薪水降序排序·select ename,sal*12 from empwhereename not like '_A%' and sal>100order by empno desc;取出来emp的名字、年薪,名字的第二个字母不包含A并且薪水大于100按照员工编号降序排列|-函数|-lower(e):转换成小写substr(字段,n,m)将字段从n开始截取,截取到m(包含第m和第n)|-ascii(a):求a的ascii码chr(97):将ascii转换为字符|-round(m,s):四舍五入到s位·select lower(ename) from emp; 将ename转换为小写·select ename from emp where lower(ename) like '_a%';查询小写的姓名包含a的数据·select substr(ename,1,3) from emp;将姓名从第一个开始截取,截取到第三个(包含第一个)·select ascii('a') from dual;求a的ascii码·select chr(97) from dual; 将ascii转换为字符,本条语句结果为a·select round(23.567) from dual;四舍五入到个位。
结果为24·select round(23.567,2) from dual; 四舍五入到小数点后两位,结果为23.57·select round(23.567,-1) from dual;四舍五入到小数点前1位,结果为20|-to_char(字段a,格式);将字段a转换为想要的格式显示出来·select to_char(sal,'$99,999.9999') from emp;·select to_char(sal,'L99,999.9999') from emp;·select to_char(sal,'L00,000.0000') from emp; L:本地货币|-to_date 将字符串转换为日期·select ename,hiredate from emp where hiredate>to_date('1981-2-20 12:34:56','YYYY-MM-DD HH-MI-SS');将1981-2-20 12:34:56转换为日期然后与日期类型的hiredate做比较|-to_number 将字符串转换为日期·select ename,sal from emp where sal>to_number('$888.88','$999.99');将‘$888.88’转换为数字类型然后才能与sal比较|-组函数max()、min()、avg()、count() 、sum(),把N条数据作为输入,最后产生一个输出select max(sal) from emp; 求最高工资select sum(sal) from emp; 求薪水总和select round(avg(sal),2) from emp; 求平均工资并四舍五入并保留小数点后两位select to_char(avg(sal),'9999.99') from emp;同上select count(ename) from emp where deptno=10;部门编号是10的有名字的人有多少select count(distinct deptno) from emp;去除重复的部门编号后显出部门数|-日期处理·select to_char(hiredate,'YYYY-MM-DD HH:MI:SS') from emp;·select to_char(sysdate,'YYYY-MM-DD HH:MI:SS') from dual;·select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual; 24表示法|-分组group by、having·select avg(sal) from emp group by deptno; 每个部门的平均工资先按照部门进行分组,然后各组内部再按工资求平均数·select deptno,max(sal) from emp group by deptno;按部门分组,组内部分别求最大工资·select avg(sal) from emp group by deptno having avg(sal)>2000;按照部门进行分组,求各平均工资大于2000的薪水。