Oracle笔记3

合集下载

oracle课程笔记.

oracle课程笔记.

1.触发器创建命令 Creat trigger <触发器名称>2.before insert or update of department_id on employees 意思是当表employees执行insert操作以及针对employees表中的department_id字段做update操作地时候,发起触发器;3.referencing old as old_value new as new_value for each row 定义了触发器关键动作(insert,update,delete)的修改临时变量(new,old) insert: 此时有一个new的修改临时变量可以被后续SQL操作当为insert时,只存在new变量,存放着insert的所有记录信息 update: 当为update时,update之前的数据存放在old中, update之后的数据存放在new中;注:如果update了一个字段,那么old和new里是保存着字段值还是一个完整的记录值 delete: 当为delete时,delete之前的数据存放在old中,并且只有old;4.定义触发器限制 when (new_value.department_id<>805.if...then elseif...then6. user当前登录用户7. Raise_application_error一个oracle定义的异常对象8. Create or replace 创建或者替换触发器9. sysdate当前系统时间 10.表修改关键字alter table 11.Declare 定义触发器中的变量 12.<字段>%type 表示字段的类型 13.定义触发器生效之后的SQL句操作 begin :new_mission_pct :=0; end; 14.before....for each row表示触发器对每一行生效 15.create sequence 建立字增长的序列号。

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学习笔记

一、数据类型:二、表空间和数据文件的关系:文件组成:数据文件,控制文件,数据库日志文件数据文件:.dbf 包含全部数据库数据(表,索引等),一个数据文件仅与一个数据库关联。

一旦建立,只增不减。

表空间(TableSpace):一个表空间(数据库存储的逻辑单位)由一个或多个数据文件组成。

一个数据文件只能和一个表空间关联。

每一个数据库都有一个SYSTEM表空间,可以设置除SYSTEM表空间外的所有表空间在线,离线属性状态。

段(SEGMENT):数据段,索引段,退回段,临时段。

区:磁盘空间分配最小单位。

由连续的数据块组成。

数据块:数据库I/O的最小单位,最小数据组织单位与管理单位。

数据块大小由db_block_size决定。

用select name,value from v$parameter wherename='db_block_size'查询数据块大小。

三、表空间:创建:CREATE TABLESPACE MYSPACEDATAFILE'E:/Data/A.ORA'SIZE10M,'E:/Data/B.ORA'SIZE5MEXTENT MANAGEMENT LOCAL 本地管理表空间UNIFORM SIZE1M 每个分区统一大小扩充表空间:ALTER TABLESPACE MYSPACEADD DATAFILE'E:/Data/C.ORA'SIZE10M四、常用语句:修改某个字段为主键:alter table student add constraint pk primary key (pkid)修改某个字段为非空:alter table student modify(pkid primary)五、备份和恢复:分类:逻辑备份(IMP&EXP)、物理备份(脱机及联机备份)、利用RMAN(Recovery Manager)的增量物理文件系统备份。

ORACLE学习笔记整理

ORACLE学习笔记整理

ORACLE学习笔记整理1.学习环境注意,以下涉及到的例题数据均来自于作业管理系统中“陈勇”名下的“数据库原理与应用”文件夹中的“实验数据04.xls”。

请下载使用。

1.1 SQL窗口通常用于试运行单条SQL语句。

(1)启动方式在PL/SQL Developer界面下单击新建中的第一个图标,在菜单中选“SQL窗口”。

界面如下图所示:在其中可以输入SQL语句,单击工具栏上的运行按钮“”,可得到运行结果。

如下图:1.2 命令窗口同SQL窗口,可以执行ORACLE的各种命令、SQL语句、程序等。

(1)执行SQL语句结果如下图:执行SQL语句时,要求语句以“;”结束,如果语句末尾没有“;”,表示语句还没有录入结束,后面以续行号“2,3,4”的形式等待录入后续内容。

如果不想录入“;”,也可以以“/”表示语句录入结束。

如下图(2)执行ORACLE命令如下图:命令目的是显示学生信息表的结构,对于ORACLE命令关键字,只要输入前面四个以上的字符即可。

1.3 测试窗口用于录入ORACLE程序。

如下图单击工具栏上的运行按钮,可以运行程序,程序结果在“DBMS”输出页中。

如下图所示:从这个程序我们可以看到ORACLE程序的基本结构如下:Declare/*定义部分-变量、常量、游标等*/Begin/*执行部分-PL/SQL,SQL语句*/Exception/*异常处理部分-处理运行错误*/End; /*块结束标志*/也可以看出ORACLE中的字符串连接运行符非常得单“||”。

2. 语言基础2.1 PL/SQL数据类型在PL/SQL程序中定义变量、常量和参数时,必须要为它们指定数据类型,在编写PL/SQL 时,可以使用标量类型、复合类型、参照类型和LOB(Large Object大对象类型)类型等。

如下表所示:2.1.1 标量(SCALAR)合法的标量类型与数据库的列所使用的类型相同,此外它还有一些扩展。

它又分为七个组:数字、字符、行、日期、行标识、布尔和可信。

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笔记详细

oracle笔记详细Taking detailed notes during an Oracle certification course is crucial for success. Not only does it help with retention and understanding, but it also serves as a valuable resource for future reference. When it comes to taking Oracle notes, there are several key points to keep in mind. Firstly, it's important to stay organized and structured in your note-taking approach. This includes using clear headings and subheadings to categorize different topics and concepts. Additionally, incorporating visual aids such as diagrams, charts, and tables can help to enhance comprehension and recall.在Oracle认证课程期间做详细的笔记对于成功非常关键。

它不仅有助于记忆和理解,而且还作为将来参考的宝贵资源。

在做Oracle笔记时,有几个关键要点需要记住。

首先,保持组织和结构化是非常重要的。

这包括使用清晰的标题和副标题来对不同的主题和概念进行分类。

另外,结合视觉辅助工具,如图表、图示和表格,有助于增强理解和记忆。

Furthermore, it's essential to actively engage with the material while taking notes. This means asking questions, seeking clarification, and making connections between different topics. Actively participatingin discussions and group activities can also aid in the retention of information. Moreover, it's advisable to review and revise your notes regularly to reinforce learning and address any gaps in understanding. Developing a personalized shorthand and abbreviations system can also help to speed up the note-taking process and improve efficiency.此外,在做笔记时,积极参与材料也是非常重要的。

Oracle学习笔记

Oracle学习笔记

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

oracle学习笔记(全)

oracle学习笔记(全)

N
模糊查询like
select last_name
from s_emp
where last_name like '%N%';
%:匹配0个或多个
?:匹配0个或1个
_:匹配单个字符
_briup
SELECT last_name
FROM s_emp
WHERE last_name LIKE
2:先定位到要插入语句的行
i 插入的内容
i where dept_id=42;
删除某一行:del
先定位到你要删除的行
del
start fileName:执行脚本文件
@ fileName :执行脚本文件
get fileName:脚本文件
的内容输出到工具上
save fileName:将buffer中sql保存到
'/_%' escape '/';
and
or
查询41,42号部门的员工,
或者工资大Leabharlann 2000; select last_name,salary,dept_id
from s_emp
where dept_id in(41,42)
or salary>2000;
not and or
select last_name name,salary
from s_emp
order by salary desc;
select last_name,salary
from s_emp
order by salary desc,
last_name asc;

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数据库系统的学习还包括很多其他的内容,如索引管理、视图、存储过程、触发器等高级数据库对象的管理和使用,以及数据库性能优化、安全性管理等内容。

oracle第3讲笔记 (2)

oracle第3讲笔记 (2)

■java如何连接和操作oracle数据库原理图代码实现:我们在eclipse中,编写一个java程序,完成对emp表的crud操作java连接oracle有两种方式1.jdbc直连jdbc原理做jdbc开发有两个前提1.import java.sql.* 有时 javax.sql.*2.把ojdbc6.jar导入到你的java项目里特别说明:如果使用jdbc直连,需要启动监听服务(1)把对数据库的操作,封装成一个工具类SQLHelper(2)我们通常把对数据库的配置信息,写到一个文件中去,这样代码更加灵活②jdbc-odbc桥连接步骤如下:1.配置数据源2.设置java程序也要做相应的修改Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connection ct=DriverManager.getConnection("jdbc:odbc:lhorcl","scott",“1234"); 什么时候使用jdbc,jdbc-odbc?原则:如果java程序和db不在同一个机器上,我们一般使用jdbc.如果java程序和db在同一个机器上,则两个都可以使用。

to_date的使用我们在插入date列的时候,发现,必须以默认格式添加。

比如:insert into emp(empno,hiredate) values(2222,'1981-01-01');报错我们可以使用to_date进行日期转换to_date(string,’format’)(把字符串转成指定格式的日期)insert into emp(empno,hiredate) values(2222,to_date('1981-01-01','yyyy-mm-dd')); 使用子查询完成行迁移的需求create table temp as select empno,ename from emp where ename like ‘S%’;使用子查询完成更新希望员工scott的岗位、工资、补助与smith员工一样update emp set (job,sal,comm)=(select job,sal,comm from emp where ename=’SMITH) where ename=’SCOTT’;■oracle函数oracle数据库的强大,体现在对用户的管理,pl./sql编程,函数丰富oracle函数分类从大的方面,分为单行函数,比如length多行函数,比如max,min,avg①字符函数concat函数该函数和||的作用是一样,用来拼接两个字符串select concat(ename,’是个人’) from emp;initcap函数select initcap(ename) from emp;instr函数select instr('oracle traning','ra',1,2) instring from dual;length函数select length(sal) from emp;lower函数和upper函数请把雇员的名字分别用大写和小写来表是select lower(ename),upper(ename) from emp;请把雇员的名字,首字符要小写,其他字母要大写lower/upper/length/substrselect lower(substr(ename,1,1))||upper(substr(ename,2,length(ename)-1)) from emp;select concat((substr(ename,1,1)),upper(substr(ename,2,length(ename)-1))) from emp;lpad和rpad函数使用层次查询取得职位最高的雇员及其以下一级雇员的雇员的雇员名和岗位select lpad(' ',3*(level-1))||ename ename,lpad(' ',3*(level-1))||job job from emp where level<=4 start with mgr is null connect by mgr=prior empno;ltrim和rtrim函数select rtrim(‘ LiHengaaaaaa’,’a’) from dual;结果是’.....LiHeng’把右边的a全部删除REPLACE('string','s1','s2')trim函数去掉指定字符串或是数字前面的某些字符或数字SELECT TRIM (0 FROM 0009872348900) "TRIM Example" FROM DUAL;返回的结果:98723489②数学函数ceil函数用于向上取整(不是四舍五入)select ceil(3.1415927) from dual;返回4floor函数用于向下取整select floor(2345.67) from dual;返回2345mod函数取模mod(10,3)返回1round函数(四舍五入)round(55.6)返回56round(155.6,-2);返回200trunc函数用于截断一个整数如果trunc函数,没有指定到第几位,则默认截取到整数TRUNC(55.5)返回55select trunc(155.6,-2) from dual;返回100③日期函数ADD_MONTHS函数add_months(日期值,增加或减少的月份)请查询最近3个月入职的员工(sysdate)我们可以把hiredate加上3个月,如果得到的日期大于当前日期,则说明该员工是最近三个月内入职select * from emp where add_months(hiredate,3)>=sysdate;select * from emp where hiredate>=add_months(sysdate,-3);last_day函数返回最后一天select last_day(sysdate) from dual;返回当月的最后一天MONTHS_BETWEEN(date2,date1)给出date2-date1的月份next_day函数select next_day(sysdate,'星期二') from dual;用于返回离sysdate最近的星期二是几号④转换函数to_char(number/date/char)转换日期select to_char(sysdate,’yyyy-mm-dd : hh24:mi:ss’) from dual;显示我们希望的薪水格式select ename,to_char(sal,'L99G999D99') from emp ;比如显示1981入职的员工select * from emp where to_char(hiredate,’yyyy’)=’1981’;⑤系统函数oracle提供了一套系统函数,可以用于查询系统信息比如,想查询使用的数据库名字select sys_context(‘userenv’,’db_name’) from dual;■oracle事务处理基本概念数据库把一系列对数据库的操作(dml insert/update/delete)看作一个整体,要么全部成功,要么全部失败,这样的现象就是事务现象,事务是具有原子性事务的提交java代码//事务先设置成不自动提交//事务开始update emp setinsertupdate...commit();//提交一会写代码在java程序中如何控制事务的提交和回滚代码:从SMITH的sal减去10,加到ALLEN的sal//从smith的sal-10String sql="update emp set sal=sal-10 where ename='SMITH'";//加给allenString sql2="update emp set sal=sal+10 where ename='ALLEN'";// SQLHelper.executeUpdate(sql,null);// //代码出错// int i=8/0;// SQLHelper.executeUpdate(sql2, null);//怎么把多个dml语句看作一个整体(事务),统一提交Connection ct=null;try {//得到一个连接ct=SQLHelper.getConnection();//把事务设置为不自动提交ct.setAutoCommit(false);//创建sql对象PreparedStatement ps=ct.prepareStatement(sql);PreparedStatement ps2=ct.prepareStatement(sql2);ps.executeUpdate();int i=8/0;ps2.executeUpdate();//把这两个操作,看作一个事务统一提交mit();} catch (Exception e) {// TODO: handle exceptione.printStackTrace();//如果事务出现了异常,我们可以回滚(相当于把这个事务的所有操作全部取消)try {ct.rollback();} catch (SQLException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}}finally{//关闭资源//SQLHelper.close(null, ps, ct);}思考题:如何把事务控制直接封装到SQLHelper类?。

oracle精品笔记(53节完整版)名师手书

oracle精品笔记(53节完整版)名师手书

尚学堂马士兵老师oracle笔记(2008-10-30 10:17:39)第一课:客户端1. Sql Plus(客户端),命令行直接输入:sqlplus,然后按提示输入用户名,密码。

2. 从开始程序运行:sqlplus,是图形版的sqlplus.3. http://localhost:5560/isqlplusToad:管理,PlSql Developer:第二课:更改用户1. sqlplus sys/密码as sysdba2. alter user scott account unlock;(解锁账号)第三课:table structure(系统自带的表有emp、salgrade、dept、bonus、dual)1. 描述某一张表:desc 表名2. select * from 表名第四课:select 语句:1.计算数据可以用空表:比如:.select 2*3 from dual2.select ename,sal*12 annual_sal from emp;与select ename,sal*12 "annual sal" from emp;区别:加双引号保持原大小写,不加全变大写。

任何含有空值的数学表达式结果都为空值。

3. select ename || ‘abcd’|| 用来连接两个字符串如果连接字符串中含有单引号,用两个单引号代替一个单引号。

第五课:distinctselect deptno from emp;select distinct deptno from emp;select distinct deptno ,job from emp去掉deptno,job两者组合的重复。

更多的项,就是这么多项的组合的不重复组合。

第六课:Whereselect * from emp where deptno =10;select * from emp where deptno <>10;不等于10select * from emp where ename ='bike';select ename,sal from emp where sal between 800 and 1500 (>=800 and <=1500)空值处理:select ename,sal,comm from emp where comm is (not) null;select ename,sal,comm from emp where ename ( not)in ('smith','king','abc');模糊查询like :%代表任意数量的任意字符_代表一个任意字符select ename from emp where ename like '_A%';如果要查询含有%的,要用转义字符\转义字符可以自定义:escape '自定义的转义字符' 比如:select ename from emp where ename like '%$a%' escape '$';第七课: order byselect * from dept;默认按升序(asc)排列,要按降序(desc)用如下语句:select * from dept order by dept desc;select ename,sal,deptno from emp order by deptno asc,ename desc;第八课: sql function1:select ename,sal*12 annual_sal from empwhere ename not like '_A%' and sal>800order by sal desc;select lower(ename) from emp;select ename from empwhere lower(ename) like '_a%';等同于select ename from emp where ename like '_a%' or ename like '_A%';select substr(ename,2,3) from emp;从第二个字符开始截,一共截三个字符.select chr(65) from dual 结果为:Aselect ascii('a') from dual 结果为:65select round(23.652,1) from dual; 结果为: 23.7(第二个参数为指定四舍五入到哪位数)select round(23.652,-1) from dual; 20select to_char(sal,'$99,999,999') from emp;(用9就可以在没有数字的地方不显示,如果用0的话一定会用0填充满)select to_char(sal,'L99_999_999') from emp; L:代表本地符号这个需要掌握牢:select hiredate from emp;显示为:BIRTHDATE----------------17-12月-80----------------改为:select to_char(hiredate,'YYYY-MM-DD HH:MI:SS') from emp;显示:BIRTHDATE-------------------1980-12-17 12:00:00-------------------select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual; //也可以改为:HH12TO_CHAR(SYSDATE,'YY-------------------2007-02-25 14:46:14to_date函数:select ename,hiredate from emp where hiredate > to_date('1981-2-20 12:34:56','YYYY-MM-DD HH24:MI:SS');如果直接写birthdate>'1981-2-20 12:34:56'会出现格式不匹配,因为表中的格式为: DD-MM月-YY.select sal from emp where sal>888.88 无错.但select sal from emp where sal>$1,250,00;会出现无效字符错误.改为:select sal from emp where sal>to_number('$1.250.00','$9,999,99');把空值改为0select ename,sal*12+nvl(comm,0) from emp;作用:把comm为空的地方用0代替,这样可以防止comm为空时,sal*12相加也为空的情况.第九课: Group function 组函数(即从多行中得到一个输出)牢记组函数:max(), min(), avg(), sum(), count()select to_char(avg(sal),'99999999,99') from emp;select round(avg(sal),2) from emp;结果:2073.21select count(*) from emp where deptno=10;select count(ename) from emp where deptno=10; count某个字段,如果这个字段不为空就算一个.select count(distinct deptno) from emp;select sum(sal) from emp;第十课: Group by语句注意:count() 是计数不是空值的数量需求:现在想求每个部门的平均薪水.select avg(sal) from emp group by deptno;select deptno, avg(sal) from emp group by deptno;select deptno,job,max(sal) from emp group by deptno,job;求薪水值最高的人的名字.select ename,max(sal) from emp;出错,因为max只有一个值,但等于max值的人可能好几个,不能匹配.应如下求:select ename from emp where sal=(select max(sal) from emp);Group by语句应注意,出现在select中的字段,如果没出现在组函数中,必须出现在Group by语句中.第十一课: Having 对分组结果筛选Where是对单条纪录进行筛选,Having是对分组结果进行筛选.select avg(sal),deptno from empgroup by deptnohaving avg(sal)>2000;查询工资大于1200雇员,按部门编号进行分组,分组后平均薪水大于1500,按工薪倒充排列.select avg(sal) from empwhere sal>1200group by deptnohaving avg(sal)>1500order by avg(sal) desc;第十二课:子查询谁挣的钱最多(谁:这个人的名字, 钱最多)select 语句中嵌套select 语句,可以在where,from后.问那些人工资,在平均工资之上.select ename,sal from emp where sal>(select avg(sal) from emp);查找每个部门挣钱最多的那个人的名字.select ename ,deptno from emp where sal in (select max(sal) from ename group by deptno) 查询会多值.应该如下:把select max(sal),deptno from emp group by deptno;当成一个表.语句如下:select ename, sal from emp join(select max(sal) max_sal,deptno from emp groupby deptno) t on (emp.sal=t.max_sal and emp.deptno=t.deptno);每个部门的平均薪水的等级.分析:首先求平均薪水(当成表),把平均薪水和另外一张表连接.第十四课:self_table_connection把某个人的名字以及他的经理人的名字求出来(经理人及这个人在表中同处一行)分析:首先求出这个人的名字,取他的编号,然后从另一张表与其相对应编号,然后找到经理的名字.select e1.ename ,e2.ename from emp e1,emp e2 where e1.mgr= e2.empno.empno编号和MGR都是编号.第十15课: SQL1999_table_connectionsselect ename, dname,grade from emp e,dept d, salgrade swhere e.deptno = d.deptno and e.sal between s.losal and s.hisal andjob <> 'CLERK'有没有办法把过滤条件和连接条件分开来? 出于这样考虑,Sql1999标准推出来了.有许多人用的还是旧的语法,所以得看懂这种语句.select ename,dname from emp,dept;(旧标准).select ename,dname from emp cross join dept;(1999标准)select ename,dname from emp,dept where emp.deptno=dept.deptno (旧)select ename,dname from emp join dept on(emp.deptno = dept.deptno); 1999标准.没有Where语句.select ename,dname from emp join dept using(deptno);等同上句,但不推荐使用.select ename,grade from emp e join salgrade s on(e.sal between s.losal and s.hisal);join 连接语句, on过滤条件。

Oracle学习笔记

Oracle学习笔记

Oracle学习笔记Oracle学习笔记Oracle学习笔记(1) Oracle数据库编程基础文章分类:数据库这段时间出差,一直在搞需求分析和设计,每天都是写文档画UML,都有好几个月没有写代码了,只怕都快忘记了!这是我用Oracle时学习的Oracle编程做的笔记,今天也发上来与大家分享一下,一共有八章。

现在在有时间就学一下EJB3,因为在项目中会用到,等学完了把EJB3的笔记也发上来和大家分享!通过SqlPlus登录Oracle ,sqlplus 用户名/密码@数据库名建表Sql代码1.create table demo(2. id number(8),3. name varchar2(20)4.)插入数据Sql代码1.insert into demo values(1,'zhangshang');2.insert into demo values(2,'lishi');提交Sql代码/doc/fe11207420.html,mit;查询数据字典(table_name='这里的值要大写')Sql代码1.select * from dba_tab_cols a where a.table_name='DEMO';创建视图create or replace:如果该视图存在就替换,如果不存在就创建1.create or replace view myView as select id 编号,name 姓名 from demo;2.select * from myView;创建同义词(同义词相当于表的别名或逻辑名,可以通过该名称来操作相对应的物理表)在分布式Oracle数据库中,标识一个对象需要四部分:主机名、实例名、模式名、对象名。

例如********************,其中模式名是SYSTEM,对象名是auths,PX.orcl是一个数据库链,它指向服务器PX上的实例orcl,我们可以为其指定一个同义词,使所有的用户都可以通过简单的同义词来访问表********************创建公有的同义词Sql代码1.create public synonym syn1 for demo;创建私有的同义词Sql代码1.create synonym syn2 for demo;创建并使用序列创建序列的完整语法:create sequence 序列名 increment by 增量种子数 start with 起始数字maxvalue 最大值;我们可以使用序列的两个属性nextval和currval,其中nextval 是返回下一个可用的序列值,而currval用于获得当前序列的值创建序列的简单方法Sql代码1.create sequence mySeq;使用创建的序列Sql代码1.insert into demo values(mySeq.nextval,'ddd');获得当前序列的值1.select mySeq.currval from dual;删除一条记录Sql代码1.delete from demo where id=2;查询所有记录Sql代码1.select * from demo;格式化日期时间Sql代码1.select to_char(sysdate,'yyyy-MM-dd hh24:mm:ss') 格式化日期 from dual;Oracle学习笔记(2) PLSQL编程基础文章分类:数据库这是第二章的学习笔记,学习完第一章的基础之后,从现在开始要学习Oracle编程了……,希望大家能多给俺一些支持啊!编程时使用的工具是PLSQL Developer 7.1.4Sql代码1.select * from Employee;2.select * from dba_tab_cols t where t.table_name='EMPLOYEE'; Sql代码1.-- 声明部分,用于定义变量2.declareconstant用于定义常量,当定义常量时必须指定它的初始值,且数据不能改变Sql代码1.n_aaa constant number(4,2) :=5.5;boolean 类型的值只能用于sqlplus语句块中,不能用在表字段的数据类型中not null 用于强制初始化变量不能为空,此时必须为变量指定值default用于指定变量或常量的默认值1.v_valid boolean not null default false;2.v_name varchar2(20);为了确保变量使用合适的数据类型和长度,可以使用%type属性定义变量,它会按照数据库列或其它变量来确定新变量的类型和长度Sql代码1.v_job Employee.Job%type;将v_job2定义为与变量v_job的数据类型和长度完全一致Sql代码1.v_job2 v_job%type;复合变量:处理单行单列数据时,用标量变量;处理单行多列时,用PL/SQL 记录;处理单列多行时,用集合;处理多行多列数据时,可以结合使用PL/SQL记录和集合PL/SQL记录(RECORD):方法一:emp_recode_type 是PL/SQL记录类型并包含有三个成员(name,salary,job)Sql代码1.type emp_recode_type is record(2. name /doc/fe11207420.html,%type,3. salary employee.salary%type,4. job employee.job%type5.);emp_recode是记录变量Sql代码1.emp_recode emp_recode_type;方法二:使用表名的%rowtype 属性定义记录变量注意:用%rowtype 属性定义记录变量时,记录成员个数、名称、类型必须与表或视图的列的个数、名称和类型完全相同Sql代码1.emp_recode2 employee%rowtype;集合类型PL/SQL 表(也称索引表,下标可以为负数,下标没有上限和下限,并且元素的个数无限)Sql代码1.--这里的table 实指集合2.type name_table_type is table of /doc/fe11207420.html,%type index by bi nary_integer;3. name_table name_table_type;嵌套表:嵌套表的下标不能为负值,其元素的个数没有限制并可以使用表列的数据类型在使用嵌套表时必须先用create type 语句建立嵌套表类型嵌套表只是比PL/SQL 表少了 index by binary_integerSql代码1.type num_table_type is table of number(4);2.num_table num_table_type;varray(变长数组):varray的元素个数是有限制的,在使用其之前必须先建立varray 类型在此创建的varray只能存放20个varchar2类型的数据注意:嵌套表列数据需要存储在专门的存储表中,而varray数据则与其它列数据一起存放在表字段中Sql代码1.type v_varray_type is varray(20) of varchar2(10);2.n_empno employee.empno%type;Sql代码1.-- 程序开始2.begin执行部分,执行PL/SQL/和SQL语句可以用into将从表人查询出来的值赋给指定的变量将值赋给变量有两种方法,一是用 := ,二是用 into& 符号用于提示用户输入一个值,& 为sqlplus的替代变量Sql代码1.n_empno := &输入你要查询的员工编号:;2.select Name,Job into v_name,v_job from Employee where empno=n_empno;这里的 || 号与Java中的 + 号类似,表示要将两边的字符串连接起来dbms_output是Oracle所提供的系统包,用于输出数据或消息,而put_line是该包所包含的过程,用于输出字符串信息并换行当在CMD中使用dbms_output包时,必须要先将sqlplus 的环境变量serveroutput 设置为 onSql代码1.dbms_output.put_line('你查询的员工是:' || v_name || ' 他的工作是:' || v_job);引用记录变量的成员并赋值(赋值可以用 := 和 into 两种方法)注意:用sele ct……into 语句给记录变量赋值时,select语句中的列名列表的名称和个数、类型必须与记录变量的成员个数、名称、类型完全相同Sql代码1.dbms_output.put_line('你查询的员工是:' || v_name || ' 他的工作是:' || v_job);2.3.emp_/doc/fe11207420.html, := '钱森';4. dbms_output.put_line('引用记录变量的成员并赋值(Recode):' || emp_/doc/fe11207420.html,);5.6. select name,job into emp_/doc/fe11207420.html,,emp_recode2.jobfrom employee where empno=2;7. dbms_output.put_line('引用记录变量的成员并赋值(RowType):' || emp_/doc/fe11207420.html, || ' 的工作是:' || emp_recode2.job);8. -- 使用PL/SQL表(索引表)9. select name into name_table(-50) from employee where empno=1;10. dbms_output.put_line('雇员名:' || name_table(-50));11. -- 使用嵌套表12. -- 必须先设置嵌套表的下标,然后才能对该集合进行赋值13. num_table := num_table_type(1,2,3,4,5);14. num_table(1) := 10;15. num_table(5) := 100;16. dbms_output.put_line('使用嵌套表:' || num_table(1) || ',' || num_table(5));17.18.exception19. -- 异常处理部分20. when NO_DATA_FOUND then dbms_output.put_line('查询不到员工编号为' || n_empno || '的员工!');21. when TOO_MANY_ROWS then dbms_output.put_line('数据完整性错误,员工编号' || n_empno || '重复!');22. when OTHERS then dbms_output.put_line('PL/SQL执行错误!' || sqlerrm);23.-- 程序结束24.end;25./Oracle学习笔记(3) PLSQL程序控制结构文章分类:数据库这是第三章的学习笔记,学习完第二章的编程基础之后,从现在开始要学习Oracle编程了……,希望大家能多给俺一些支持啊!这周六总算是不用加班,可以好好出去玩一下了!今天去武大看樱花了,哈哈,不错!编程时使用的工具是PLSQL Developer 7.1.4Sql代码1.select * from employee;2.select * from dba_tab_cols t where t.table_name='EMPLOYEE';Sql代码1.declare2. n_empno employee.empno%type;3. v_name /doc/fe11207420.html,%type;4. n_salary employee.salary%type;5. v_temp varchar2(30);6. n_temp number(5) := 1;7. -- 自定义异常8. e_exception exception;exception_init 是一个编译时指令,用于将一个内部错误与异常的名称关联。

oracle 笔记

oracle 笔记

oracle 笔记Oracle是一种关系型数据库管理系统 (RDBMS),广泛应用于企业级应用程序中。

以下是一些关于Oracle的常见笔记:1. 安装Oracle:Oracle可以在Windows、Linux和Solaris等操作系统上安装。

安装过程中需要指定数据库的相关信息,如数据库名称、端口号和管理员密码等。

2. 数据库实例:Oracle数据库由一个或多个数据库实例组成。

每个数据库实例包含一个或多个数据文件和日志文件。

数据库实例由SGA (System Global Area)和后台进程组成。

3. 数据库对象:Oracle支持多种数据库对象,如表、视图、索引、序列和触发器等。

这些对象可以存储和管理数据。

4. SQL语言:Oracle使用结构化查询语言 (SQL) 进行数据库操作。

SQL语句可以用于创建、修改和查询数据库中的数据。

5. 表空间:表空间是Oracle中逻辑存储空间的单位。

每个表空间包含一个或多个数据文件,用于存储表和索引数据。

6. 数据备份和恢复:Oracle提供了多种备份和恢复机制,如全备份、增量备份和归档日志等。

这些机制可以保护数据库免受数据损坏和丢失的影响。

7. 性能优化:Oracle提供了多种性能优化工具和技术,如索引、分区和查询优化器。

这些工具可以帮助提高数据库的性能和响应时间。

8. 数据库安全:Oracle提供了多种安全功能,如用户认证、访问控制和数据加密等。

这些功能可以保护数据库免受未经授权的访问和数据泄露的威胁。

9. 远程连接:Oracle支持远程连接,可以从远程计算机访问和管理数据库。

远程连接使用Oracle客户端软件进行配置和连接。

10. 高可用性:Oracle支持多种高可用性解决方案,如数据复制、故障转移和备份服务器等。

这些解决方案可以确保在数据库故障时继续提供服务。

Oracle学习笔记

Oracle学习笔记

断壁残垣---Oracle学习笔记Emitter第一章关系数据库用户解锁:使用system用户登录Sql语句:SELECT username,account_status FROM dba_users;ALTER USER scott ACCOUNT_UNLOCK;//解锁ALTER UESR scott IDENTIFIED BY tiger;//设定密码CONNECT scott/tiger;SELECT * FROM emp;第二章体系结构概述体系结构Oracle数据库从存储结构上可以分为物理存储结构与逻辑存储结构,从实例结构上可以分为内存结构与进程结构。

Oracle的物理存储结构是由存储在磁盘中的操作系统文件所组成的,Oracle在运行时需要使用这些文件。

一般,Oracle数据库在物理上主要由3种类型的文件组成,分别是数据文件(*.dbf)、控制文件(*.ctl)和重做日志文件(*.log)。

数据文件数据文件(Data File)是指存储数据库数据的文件。

数据库中的所有数据最终都保存在数据文件中,例如,表中的记录和索引等。

如果数据文件中的某些数据被频繁访问,则这些数据会被存储在内存的缓冲区中。

读取数据时,Oracle系统会首先从内存的数据缓冲区中查找相关数据信息,如果找不到,则从数据库文件中把数据读取出来,存放到内存的数据缓冲区中,供查询使用;存储数据时,修改后的数据信息,也是先存放在内存的数据缓冲区中,在满足写入条件(例如执行提交操作)时,由Oracle的后台进程DBWn将数据写入数据文件。

SELECT file_name FROM dba_data_files;控制文件控制文件(Control File)是一个很小的二进制文件,用于描述和维护数据库的物理结构。

在Oracle数据库中,控制文件相当重要,它存放有数据库中数据文件和日志文件的信息。

Oracle数据库在启动时需要访问控制文件,在数据库的使用过程中,数据库需要不断更新控制文件,由此可见,一旦控制文件受损,那么数据库将无法正常工作。

Oracle数据库知识点,复习必备资料-3论述

Oracle数据库知识点,复习必备资料-3论述

66RDBMS(relationship database management system关系型(二维表)数据库管理系统)是数据库软件中用来操纵和管理数据库的部分,用于建立,使用和维护数据库。

它对数据进行统一的管理和控制,以保证数据的安全性和完整性。

SQL (Structurde Query Language)数据结构查询语言是用来在关系数据库上执行数据操作,检索及维护所使用的语言,是综合的,通用的关系数据库语言。

大多数数据库都使用相同或者相似的语言来操作和维护数据库。

Table (表)是数据库存储的基本单元,由行和列组成横向为行(Row),也叫记录(Record)纵向为列(column),也叫作字段(Filed)rownum 伪列,从第一记录选rowid 一条记录的物理位置.sqlplus 登录数据库的客户端软件语句:查看当前用户账户: show user查询表结构: desc 表名清除屏幕内容:clear scr设置显示长度:set linesise 150 语句后面后面不用加分号设置列的宽度:column name format a6 此语句中a6表示6个字符,此语句不能设置数字类型列宽column empno format 9999 设置显示格式为9999简写为 col empno for 999 column缩写为col format缩写为for"/"表示执行上一条sql语句。

设置分页显示set pagesize 100 (pagesize可简写为pages,设置为0表示不分页)设置提交方式: set autocommit on/offSQL分类:SQL语句大小写不敏感,数据名大小写敏感。

DDL(data definition language 数据定义语言)创建数据库:create database tarena;创建表结构 create table emp_1212(empno number(10),ename varchar(10),...);复制表结构 create table emp_1313 as select*from emp_1212 where 1<>1;复制表: create table emp_1313 as select*from emp_1212;利用distinct去除表中的重复数据creatc table emp_1313as select distinct empno,ename,salary hiredate,job,bouns,deptno,mgrfrom emp_1212;复制部分表:create table emp_1313 as select empno ,salary*12 year_salfrom emp_1212 where deptno=10;create table emp_count(did,emp_num) as select deptno,count(*)输出数据库当前系统时间 select sysdata from dual; from emp_1212 group by deptno;修改表结构:alter table删除一列 alter table emp_1212 drop column salary;增加一列 alter table emp_1212 add(password char(4));修改表名:rename emp_1212 to emp_1313;修改列名:alter table emp_1212 rename column password to pwd;修改列的数据类型:alter table emp_1212 modify (ename varchar2(10));删除表:drop table emp_1212;清空表结构:truncate约束:constraint1 先create parent table(被引用列满足pk=uk + not null/uk(unique key)),再create child table(定义fk-->parent(c1))2 先insert into parent,再insert into child3 先delete from child,再delete from parent4 先drop child table,再drop parent table.更改表的约束结构:alter table 表名 add constraint 约束名 primary key(列名) (约束类型)同一个用户下的不同表的约束名不能重复同一个用户下的不同表的列名可以重复删除约束:alter table child drop constraint child_c2_fk(约束名);设置约束失效:alter table emp_1212 disable constraint emp_hiloo_mgr_fk;批量加载数据alter table emp_1212 enable constraint emp_hiloo_mgr_fk;主键约束(primary key):实现表中的记录不是null记录而且是唯一记录.一个表中只能有一个主键约束或联合主键约束更改表的主键约束:alter table parent add constraint parent_c1_pk primary key(c1);列级约束:列级主键约束:create table test(c1 number constraint test_c1_pk primary key,c2 number);非空约束(not null):只有列级约束,没有表级约束.insert语句必须插入的列是非空列create table test(c1 number not null);非空约束命名:create table emp_1212(id number(4) primary key,name varchar2(10) constraint emp_1212_name_nn not null);外键约束:用来实现两张表记录的多对一关系.(定义为外键约束的列数据必须被主键列包含,但可以为null,可以手动插入null值)定义外键约束时,父表必须先存在并且定义了PK或者uk约束;create table child (c1 number constraint child_c1_pk primary key,c2 number(2) constraint child_c2_fk references parent(c1));更改表的外键约束:alter table emp_hiloo add constraint emp_hiloo_deptno_fkforeign key(deptno)references dept_hiloo(deptno);级联约束删除:(删除父表连同子表的约束,一起删除)drop table parent cascade constraint purge;(alter table child drop constraint child_c2_fk;)级联删除:on delete cascade/ on delete set null(删除并且设为null值);create table child1 (c1 number constraint child1_c1_pk primary key,c2 number(2) constraint child1_c2_fkreferences parent(c1)on delete cascade);列级检查约束check:create table test(c1 number,c2 number constraint test_c2_ck check (c2 > 100));唯一性约束unique: 可以为null值且多个null值create table test(c1 number(2) constraint test_c1_pk primary key,c2 number(3) constraint test_c2_uk unique not null,(相当于pk约束)c3 number(4) constraint test_c3_uk unique)表级约束:表级主键约束:create table test(c1 number ,c2 number ,constraint test_c1_pk primary key(c1));联合主键约束:create table test(c1 number,c2 number,c3 number,constraint test_c1_c2_pk primary key(c1,c2));表级检查约束check:create table test(c1 number,c2 number ,constraint test_c2_ck check (c2 > 100));表级唯一约束unique:create table student_ning2(id number(4),name varchar2(10) not null,email varchar2(30),age number(2),constraint student_ning2_id_pk primary key(id),constraint student_ning2_email_uk unique(email) );约束总结:alter table 表名 add constraint 约束名 primary key(列名) (约束类型) 在表建立以后追加约束 referencesprimary key 没有null记录,没有重复记录foreign key () references parent(c1);解决多对一关系unique 列的数据必须唯一,被引用列not null 非空check 列里的数据符合条件表达式DML(data manipulation language 数据操作语言) 表中的数据data,row(行)insert 增加一行数据insert into emp_1212 values(值1,值2,值3);指定字段插入,其他列补空值nullinsert into emp_1212(name) values('Tom');将源表中的所有数据插入到新表中 (批量插入数据)insert into emp1313 select * from emp_1212;update 修改行中的某些列的值update emp_1212 set salary =3500,job='Programmer' where empno=1012;update emp_1212 set salary = salary+1000;delete 删除删除表中所有数据 delete from emp_1212delete from emp_1212 where deptno=10;利用rowid删除表中的重复数据delete from emp_1212 where rowid not in (select max(rowid)from emp_1212group by empno,ename,salary);把某个列的值置空 update删除一行 deleteTCL(transaction control language 事务控制语言交易)commit 提交对DML操作rollback 回滚对DML操作savepoint 设置回滚点savepoint Arollback to A (回滚到A,A之后保存的回滚点会自动取消)DQL(data query language 数据查询语言)select查询语法顺序 select from where group by having order by执行顺序 from where group by having select order by表全查询:select*from emp_1212;select name,round(avg(salary)) "avg_sal" from emp_1212;列别名跟在列名后,用空格隔开()列别名本身包含空格,或者希望列别名的大小写敏感,用双引号括起来." 表达一个标识(列名,列别名)用"并列条件查询:select name ,salary from emp_1212 where empno =1001 and deptno =10;或者条件查询:select*from emp_1212 where job='Manager' or job ='Analyst';select*from emp_1212 where job in('Manager','Analyst');select*from emp_1212 where job not in('Manager','Analyst');区间查询:select salary from emp_1212 where salary between 1000 and 5000;select salary from emp_1212 where salary not between 1000 and 5000;模糊匹配查询:select ename from emp_1212 where ename like '_Tom%'( '_'表示一个,'%'表示0个或多个)select后出现的列,凡是没有被组函数包围的列,必须出现在group by短语中分组查询(group by):select deptno ,avg(salary) from emp_1212 group by deptno;查询结果排序 (order by desc/asc) :select salary from emp_1212 order by desc;(缺省值为asc) null 被看做最大来处理having子句(对分组的结果集过滤):select deptno,avg(nvl(salary,0)) avg_sal from emp_1212where deptno is not nullgroup by deptnohaving avg(nvl(salary,0))>5000;判断子句: in , not in (对于not in 来说,集合中一定不能包含null,否则,no rows selected) where exists , where not existswhere,having的比较共同点: 过滤,执行在select之前区别 : where 过滤的是行(记录),可以跟任意一个列名,单行函数,不可以跟组函数,执行在having之前 having 过滤的是组,可以跟组标识,组函数,不能跟单行函数,以及除了组标识之外的列名,执行在where 之后的总结select 用于计算from 源表数据源where 过滤记录group by 分组having 过滤组order by 对select的计算结果排序子查询:可以跟在 from where 后面 (当子查询的返回结果是多条记录,系统会自动去重) select ename from emp_1212where salary =(select min(salary) from emp_1212);在一条sql语句中嵌入一条select语句。

Oracle基础知识学习笔记(自己整理的)

Oracle基础知识学习笔记(自己整理的)

基本概念:数据:描述事物的符号;数据库:数据存放的地方,数据库是由数据和数据库对象组成的;数据库管理系统(DBMS):用于管理数据的计算机软件,使用户能方便的定义和操纵数据,维护数据的安全性和完整性,以及进行多用户下的并发控制和数据库恢复。

关系数据库(RDB):基于关系模型的数据库。

ORACLE数据库的体系结构是由一个实例和若干个数据库文件组成。

SQL语句分为:数据定义语句(DDL):create、drop、alter、truncate(不能回滚)数据操作语句(DML):insert、select、update、delete、merge数据控制语句(DCL):grant、revoke事物控制语句:commit、rollback、savepointORACLE数据库的核心组件:数据字典(DD)动态性能表(DPT)触发器PL/SQL包用户与角色:角色是一些权限的集合,分为dba、connect、resource、exp_full_database、imp_full_database。

用户分为sys、system。

用户权限包括两种:是指执行某一SQL语句或访问另一用户对象的权限。

它分为系统权限和对象权限。

(Dba_roles/dba_roles_privs/dba_sys_privs/dba_tab_pri vs/dba_col_privs/role_role_privs/role_sys_privs/role_ta b_privs)创建用户:Create user username identified by password;修改用户:Alter user username identified by newpassword; 创建角色:Create role rolename identified by password;修改角色:Alter role rolename identified by new password; ORACLE数据库的物理结构:1.数据文件:用于存放所有的数据库数据,若干个数据文件组成表空间;它包括系统数据(数据字典)、用户数据(表、索引、簇等)、undo数据等。

Oracle经典自学笔记

Oracle经典自学笔记

一.验证Oracle差不多安装完成了,首先得确认程序里有这些个选项,有四个选项:Oracle Installation Products、集成治理工具、配置和移植工具(治理员用得比较多)、应用程序开发。

Oracle也能够形成一种层次性的链接(Directory Manager),关于我们来讲用得最多是sqlplus,而OLE 是一种面向对象的技术,利用这种技术可开发可重复使用的软件组件(COM),他是微软提出的,在用VB开发时可能要用,关于我们来讲不须管。

当启动sqlplus时会提示输入用户名和口令,所谓的sqlplus 是Oracle的一个客户端。

Oracle大多数命令都用命令来实现,因此比较难使,就如同unix比windows难使。

口令你输入tiger,建议就用它,因为以后去企业里Oracle 9i确实是用的那个口令。

当你看到SQL>命令符时讲明差不多进入到了Oracle的命令行了。

图形版的sqlplus,命令行的sqlplus,还有一个确实是通过网页访问Oracle的服务,启动sqlplus,端口号是5560,URL 是http://127.0.0.1:5560/isqlplus。

isqlplus特不有用,比如讲你的机器上没有装上Oracle,就能够通过键入不人的IP,然后登陆到他的机器上来做实验,因此也能够安装特定的客户端软件实现。

讲实在的Oracle的那个客户端太难看了,同时要记好多好多的命令,因此专门有一类公司专门为Oracle开发客户端。

有一个比较闻名的客户端叫Toad,因此Oracle还有一个客户端PL/SQL Develplor,那个用的也特不多。

数据库治理时常用Toad (英文蛤蟆的意思),假如有声卡的话,你启动一次它就叫一次。

对我们来讲sqlplus足够使了。

以后有机会我使用一下PL/SQL Develplor,只是那个也不行使,因为你同时必须装上Oracle,还不如isqlplus好呢。

尚学堂马士兵Oracle学习笔记

尚学堂马士兵Oracle学习笔记

02_unlock_user.avi 使用超级管理员登录到数据库上:sqlplus sys/bjsxt as sysdba � 当成 DBA 登录到服务 器上 连上之后 更改 user :alter user scott account unlock; 更改用户 解除锁定
03_table_structures.avi 第二章 SQL 语言 Sql 语言是在数据库地下进行操作的专门的语言,sql 语言本身是一种标准语言,它是一个 国际标准,它定义了套标准 SQL1922, SQL1999,SQL 在大多数数据库上通用,或许有轻微 的改变 包含四大语句: 1. 查询语句 查询语句只有一种就是 select 语句 2. DML 语句 DML 语句包含 Insert,Update,Delete 等常用语句
------
--------------------
------------------
----------
--------------
---------- ---------- 7369 SMITH CLERK 7902 17-12月-80 800 20
7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30 7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30 7566 JONES MANAGER 7839 02-4月 -81 2975 20 7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30 7698 BLAKE MANAGER 7839 01-5月 -81 2850 30 7782 CLARK MANAGER 7839 09-6月 -81 2450 10 7788 SCOTT ANALYST 7566 19-4月 -87 3000 20

Oracle课堂笔记3

Oracle课堂笔记3

Oracle的增删改查CRUD = CREATE + READ + UPDATE +DELETE●insert 增加操作:INSERT INTO table_name (colunms_name) VALUES(columns_values) ;1.插入数据应该与字段的数据相同。

2.数据的大小应该在规定范围内。

3.在value中列出的数据位置必须与列的排列位置对应。

4.字符和日期类型必须包含在单引号里面。

5.插入空值,不指定或使用null。

在oracle的字段中,‘单个空格’=null。

6.如果全部添加,可以不加列名。

PS:select age,dump(age) from test_table ;这个dump显示本列的详细信息。

具体案例:向students里面添加几条数据。

insert into studentsvalues (1 , '汪海洋','男','11-11月-2012',1000,'Hello,World!') ;●update修改操作:UPDATE table_name SET col_name = expr1 WHERE 条件1.可以用新值更新原有表行中的各列。

举例:update students set sex = '女' where name ='郑志春' ;2.where特别注意限制,update和delete的遗失数据不可撤销。

●案例update要求:⏹将所有人薪水改为5000元⏹将姓名为张三的同学薪水改为3000元⏹将李四的薪水在原来的基础上增加1000块钱⏹将没有奖学金的同学改为10元update students set fellowship=10 where fellowship is null ;●delete语句:delete from table_name where 条件。

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