当前位置:文档之家› Oracle笔记

Oracle笔记

Oracle笔记
Oracle笔记

Oracle_day1笔记

一、O racle引言

1、数据:具有描述性,如:字符串、视频、音频、图片

2、数据存储:

a)int i = 10; Student s = new Student(1,”yanxj”,18);缺点:临时数据

b)采用文本形式缺点:数据类型单一、描述的信息含糊、对数据的操作不方便(涉及I/O、并发)、

数据量较小

3、数据库的概念及作用

数据库:用于管理、持久化数据

优点:

1)持久保存数据

2)数据库提供丰富的数据类型

3)提供多用户操作

4)保存数据量较大

5)保存数据安全

6)提供对错误操作的撤销(事务控制)

7)提供数据的移植和备

4、RDBMS 关系型数据库(Relationship DataBase ManagerMent System)

关系型数据库,在保存数据是以”表格”的形式

Table :由行和列构成,保存的是一类数据----java :类

Column:列,对数据的描述----java :属性

Row :行,一条具体的数据----java :一个具体的对象

关系:主键、外键

5、Oracle数据库:Oracle公司提供的一种关系型数据库

8i 9i 10g 11g 12c

常见关系型数据库:

MySQl :Oracle提供

SqlServer :微软

DB2 :IBM

非关系型数据库:Mongo

二、O racle数据库的操作

1、Oracle数据库的安装

a)准备工作:

i.准备一个空的文件夹,用于保存Oracle的安装目录

ii.关闭防火墙

b)安装

2、注意事项:

a)安装结束后,不要更改主机名

b)启动的服务:

i.OracleServiceXE

ii.OracleXETNSListener

3、Oracle数据库的使用:

a)I Sqlplus :

b)S qlplus : cmd-

c)第三方客户端操作软件:【重点掌握】

4、数据库用户:

a)s ys :超级管理员用户

b)s ystem:管理员用户

c)hr :普通用户(测试用户)

5、hr测试用户的解锁

a)i sqlplus中:以管理员身份登录,按照提示解锁

b)在cmd窗口:以管理员身份登录,输入命令:alter user hr account unlock;

6、hr用户下表格介绍:

a)S QL :结构化查询语言,用于操作数据库的命令(增删改查)

b)显示当前用户下所有的表名: select table_name from user_tables;

Employees :员工表

Departments:部门表

Locations :部门的地理位置

Jobs:工种

三、O racle单表的基本查询操作

1、语法:select :指定查询的内容

from :指定查询的数据源(表名)

2、查询表中所有字段的内容

a)语法:select * from 表名

b)*:通配符,通配内容:指定表的所有字段

*可读性差,运行效率低,* 可以使用在测试中,编码中尽量避免*

3、查询部分字段的内容

a)语法:select 字段名1,字段名2,…字段名n from 表名

b)

4 列做运算

i. 数字类型:+ - * /

ii. 字符串:拼接||

5 、别名:作用,提高sql的可读性

a)as :使用时,as可以省略

b)

6、排序

a)语法:select …. from …order by 排序的字段ASC|DESC

ASC :升序(默认)

DESC:降序

四、条件查询WHERE

语法:select …from…where 查询条件

1、等值(=)、不等值(> >= < <= != )

2、谓词

and 并且:连接的两个条件必须同时满足,数据才可以显示

or 或者:只要满足一个条件,数据就可以显示

3、in操作:处理零散的数据

4、null值的处理:is [not] null [不]为空

5、between…and 在….之间等效于:>= and <=

6、模糊查询like

统配符:% 通配0---多个字符

%A :以’A’结尾

%A% :含’A’

A% : 以’A’开头

_ :占位,一个’_’占一个位置

_A% 第二个字母为’A’

_ _ _ _ _ _ :由6个字母构成

五、O racle中的函数

1、单行函数:一条数据函数会执行一次

a)s ysdate 获得当前的时间

b)m od(n,m) 求余数

c)sys_guid() :Oracle数据库生成UUID的一种方式

select sys_guid() from dual;

d)l ength() :求长度

e)t o_char(date,’字符串格式’) : 指定的日期格式化显示

f)to_date(‘字符串日期’,’日期的格式’) : 把指定的字符串转换为日期

g)add_months(date,n) : 返回在日期date基础上再加n个月后新的日期。

2、组函数:作用在一组数据上,具有共性的数据进行统计

a)count()

i.count(*) :统计所有的数据总条数

ii.count(字段名) :统计给定字段不为空的数据条数

b)max() min() avg() sum()

小结:

1、RDBMS 概念

2、单表的基本查询操作(1、* 2、部分字段

3、列做运算

4、别名

5、排序)

3、条件查询(1、比较 2 、and or 3、in

4、between..and

5、null

6、like)

4、函数(单行函数组函数)

作业:

1、chap1 练习1~15

2、单行函数1~5

3、Java部分:

a)定义一个学生类(学号、姓名、学分、生日),完成封装

b)创建一个List集合,创建4个学生对象,放在集合中

c)遍历(至少使用2中遍历方式)

Oracle_day2笔记

一、分组查询

1、分组:把具有共性的数据进行归类,使用组函数再次进行处理。

2、分组的语法:select…from…group by (字段:分组的依据)

3、例子:

a)确定分组依据:需求中”各个、每个”

b)结合分组的语法及组函数书写完整sql

4、分组的规范:select子句、order by

1)只有在group by后跟的字段,才可以出现在select之后

2)没有在group by后出现的字段,可以配合组函数出现在select之后

3)在group by后出现单行函数,在select子句后如果要显示,必须使用相同

的函数

5、注意事项:

a)如果在group by后有多个字段:先按照第一个字段进行分组,在按照第二个

字段进行组内分组

6、having关键字:过滤,分组后,采用组函数进行过滤

7、where和having的区别:

a)语法:where使用在from之后,对原始的数据进行过滤;having使用在group

by之后,对分组后的数据再次过滤

b)having后可以跟单个的字段,where后不能直接使用组函数进行过滤

c)如果where和having过滤的效果一样,此时优先使用where

小结:对所有查询关键字的总结

语法顺序:

select…from…where…group by…having…order by…

执行顺序:

from :确定数据源

where:原始数据过滤

group by :对原始过滤后的数据进行分组

having:对分组后的数据再次过滤

select:计算得出结果

order by : 对结果进行排序

二、子查询

1、概念:在原来完整的select语句上,又嵌套了select子句

2、伪列:数据表中没有的列,在查询时可以构造出来(针对Oracle数据库,任何表在

查询时都可以显示)

a)rowid :在数据库中,唯一标识一行数据(数据库内部使用)

b)rownum:对查询数据进行编号,依次从1,2,3……

3、子查询的结果是一个值:一行一列

处理的方案:把子查询的结果当做一个值,进行比较运算(= !=)

4、子查询的结果为多个值:结果为一列多行

处理方式:把子查询的结果做为集合,使用in运算

5、子查询的结果为多行多列(分页)

处理方式:把子查询的结果当做一张临时表处理不排序的分页操作:例1

不排序的分页操作:例2

排序的分页例1

排序的分页例2

总结:

1、分组查询

a)分组查询的语法(确定分组的依据)

b)确定select(order by)后的内容(三个规范)

c)having关键字

2、子查询

a)伪列rownum rowid

b)子查询语法:

i.子查询结果为一个值、多个值

ii.分页(不排序:3步骤排序:4步骤) 作业:

1、chap1 组函数1—9

2、chap2 分页练习1-3(三遍) 子查询1 2 4 5(三遍)

3、选做题:chap2 :3 6

4、Java题目:java结课考试的最后一道编程题(题目如下)

(Oracle数据库管理)玩转实战教程学习笔记最全版

(O管理)玩转实战教程(韩顺平)学习笔记

韩顺平—玩转oracle视频教程笔记 一:Oracle认证,与其它数据库比较,安装 oracle的卸载 1.停止所有与ORACLE相关的服务。 2. 使用OUI(Oracle Universal Installer)卸载Oracle软件。 “开始”->“程序”->“Oracle-OraDb110g_home1|Oracle installation product|Universal installer. 3.删除注册表内容。运行regedit命令,删除下面内容:HKEY_LOCAL_MACHINE|SOFTWARE|ORACLE注册表键,删除此键。 HKEY_LOCAL_MACHINE|SYSTEM|CurrentControlSet|Services,删除Services键下所有以oracle为首的键。 HKEY_LOCAL_MACHINE|SYSTEM|CurrentControlSet|Services|Eventlog|Application,删除此键下所有以oracle为首的键。 HKEY_CLASSES_ROOT,删除此键下所有以Ora,Oracle,Orcl,EnumOra 为前缀的键。 HKEY_CURRENT_USER|Software| Microsoft|Windows|CurrentVersion|Explorer|MenuOrder|Start Menu|Programs,删除此键下所有以oracle为首的键。 HKEY_LOCAL_MACHINE|SOFTWARE|ODBC|ODBCINST.INI注册表键,删除了

oracle函数

许多软件公司都理解开发不依赖于特定数据库类型(例如Oracle、SQL Server、DB2)的应用程序的重要性,它可以让客户们选择自己习惯的平台。一般来说,软件开发人员都能够识别出他们的负责数据库维护的客户,和必须使用现有平台和个性化的客户。 关于Oracle和SQL Server之间的区别,已经有很多篇文章从企业的角度和数据库管理员的角度出发描写了两者之间的一般差别。在这篇文章里面,我将会从应用程序的角度向你描述SQL erver 和oracle平台之间的区别,并且将会讨论开发不依赖于数据库环境的应用程序的几种可能的方法。与此同时,我不会再论讨对于应用程序来说,两个平台之间显而易见的区别,例如表的分割和索引。 定义通用接口和语言有很少的几种通用语言和接口可以让应用程序不依赖于数据库,想来也可以以同样的方式应用在关系型数据库上面: ANSI是美国国家标准局定义的,这是一家志愿者成员的组织(用私人基金运转),他们在有关设备和程序等广泛领域内开发了国家承认的标准。在数据库领域, ANSI定义了编写SQL命令的标准,假设命令可以运行在任何的数据库上,而不需要更改命令的语法。 ODBC是开放数据库连接(ODBC)接口,微软定义的,它可以让应用程序访问数据库管理系统(DBMS)中的数据,使用SQL作为访问数据的标准。 ODBC允许最大的互联性,这意味着一个单个的应用程序可以访问不同的数据库管理系统。然后,应用程序终端用户可以添加开放数据库连接(ODBC)数据库驱动来将应用程序与他们所选择的数据库管理系统链接上。 OLE DB 是ODBC的继承者,是一组允许例如基于VB、C++、Access等任何可以连接到类似SQL Server、Oracle、DB2、MySQL等后台的“前台”的软件组件。在许多种情况下,OLE DB组件都比原有的ODBC提供了好得多的性能。 JDBC(Java数据库连接)应用程序接口是Java编程语言和广泛范围的数据库,SQL数据库和其他表列数据源(例如电子表格或者普通文本文件)之间,进行不依赖于数据库的连接的行业标准。JDBD应用程序接口为基于SQL的数据库访问提供了调用级别的应用程序接口。真实世界中的通用接口不幸的是,并不是所有数据库级别的命令都是ANSI,每个数据库平台都有自己的扩展功能。对于ANSI或者通用接口,一般来说都代表着几本功能,因此也可能意味着丧失了性能方面的竞争力。对于小型数据库和小型应用程序来说,要维护对数据库的通用访问是简单的,但是当数据库和/或应用程序变得越来越大,越来越复杂,你就不得不向代码中添加功能。 SQL Server和Oracle的常用函数对比 ---------数学函数 1.绝对值 S:select abs(-1) value O:select abs(-1) value from dual 2.取整(大) S:select ceiling(-1.001) value O:select ceil(-1.001) value from dual

审计数据转换笔记

目录 一、Oracle课堂笔记 (3) 第一章:Oracle 9i数据库概述 (3) 第二章:Oracle 9i数据库的安装与卸载 (4) 第三章:Oracle 9i数据库的启动与关闭 (4) 第四章:创建数据库 (5) 第五章:配臵访问数据库 (6) 第六章:管理数据库表 (6) 第7章 Oracle数据库的导入导出 (7) 第8章 PL/SQL语言 (9) 实例一 (10) 实例二 (10) 二、SQL Server2000课堂笔记 (10) 第一章:关系数据库基础 (11) 第二章:SQL Server 2000 基础 (12) 第三章:数据库的创建与管理 (12) 第四章:T-SQL 语言基础 (12) 第五章:基本表的创建与管理 (14)

第七章:实现数据完整性 (14) 三、SQL Server2000习题库 (16) 第一章:书本例题(第六章) (16) 第二章:课后习题 (22) 第三章:课间练习 (32) 第四章:单科考试题 (33) 四、数据采集转换 (41) 第一章:课堂笔记 (41) 1、用excel自身的功能导入SQL Server数据 (41) 2、将SQL Server里的表导入AO系统 (42) 3、把设有密码的access的密码取消的方法 (42) 4、金蝶.ais文件变成.mdb文件的处理 (42) 5、SQL Server数据采集方法 (43) 6、业务数据的采集与分析 (44) Ⅰ业务数据一(旌县医院) (44) Ⅱ业务数据二(空调费) (46) 第二章:十一套数据 (47) 0标准数据(2003年) (48) 1真实数据(2004年) (49) 2通用数据(2007年) (50)

Oracle 常见函数(一)——数值函数

Oracle常见数值函数 ----***特别说明***: x 可以是纯的数值,也可以是数值型表达式/* ABS(x)返回x绝对值 eg. */ selectabs(100),abs(-100) from dual; /* sign(x)判断x的正负,正数返回1,负数返回-1,0返回0; eg. */ selectsign(100),sign(-100),sign(0) from dual;

/* round(x[,n])对x进行四舍五入,保留n位小数,其中n采用其整数部分; 没有n时默认四舍五入到整数位,n为负数时,四舍五入保留小数点左边n位(补零), eg. */ selectround(5555.6666, 2.1), round(5555.6666, -2.6), round(5555.6666) from dual; /* trunc(x)对x进行直接截取,保留n位小数,其中n采用其整数部分; 没有n时默认截取到整数位,n为负数时,截取保留小数点左边n位(补零), eg. */ selecttrunc(5555.66666,2.1), trunc(5555.66666,-2.6), trunc(5555.033333) from dual; /* ceil(x)对x进行向上取整,返回不小于x的最小整数(可以是整数x本身)。

eg. */ selectceil(3.1), ceil(2.8+1.3), ceil(0) from dual; /* floor(x)对x进行向下取整,返回不大于x的最大整数(可以是整数x本身)。eg. */ selectfloor(3.1), floor(2.8+1.3), floor(0) from dual; /* mod(x,y)求x除以y的余数,x,y为数字型表达式。 eg. */ selectmod(23,8),mod(24,8) from dual;

oracle笔记(3)

1.用insert语句进行行数据的迁移 Insert into 表名(列,列) select 列,列from emp where 条件 2.用update更新数据(使用子查询):希望员工scott的岗位,工资,补助与smith员工一样? update emp set (job,sal,comm)=(select job,sal,comm. From emp where ename=?SMITH?) where ename=?SCOTT?; 3.事务 (1)锁 (2)提交事务 (3)回退事务(一开始就做保存点(savepoint)) (4)事务的几个重要操作 1)设置保存点:savepoint a 2)取消部分事务:rollback to a 3)取消全部事务:rollback (5)只读事务:set transaction read only(当前用户能看到之前的操作,若其他用户进行更 新,该用户之后的操作都不能看到更新) (6)字符函数 (1)lower(char):将字符串转化为小写的格式 (2)upper(char): 将字符串转化为大写的格式 (3)length(char):返回字符串的长度 (4)substr(char,m,n):取字符串的子串,从m开始取,取n个 (5)例:以首字符大写的方式显示所有的员工的姓名: (1)完成首字母大写:select upper(substr(ename,1,1)) from emp; (2)完成后面字母小写:select lower(substr(ename,2,length(ename)-1)) from emp; (3)合并:select upper(substr(ename,1,1)) || lower(substr(ename,2,length(ename)-1)) from emp; (6)replace(char1,search_string,replace_string) (7)instr(char1,char2,[,n[,m]])—取子串在字符串的位置 (8)例:显示所有员工的姓名,用”我是A”替换所有”A”:select replace(ename,?A?,? 我是A?) from emp; (7)数学函数 (1)round(n,[m]):用于四舍五入 (2)trunc(n,[m]):用于截取数字 (3)mod(m,n):取模 (4)floor(n):返回<=n的最大整数 (5)ceil(n):返回>=n的最小整数 (6)例:显示在一个月为30天的情况所有员工的日薪金,忽略余数:select floor(sal/30),ename from emp; (8)日期函数 (1)sysdate (2)add_months(d,n) (3)last_day(d):返回指定日期所在月份的最后一天 例:返回在八个月前雇佣的员工(已经入职8个月多的员工):select * from emp where sysdate>add_months(hiredate,300); 例:对于每个员工,显示其加入公司的天数:select trunk(sysdate-hiredate) “入职天

ORACLE笔记

1.Oracle 工具:sqlplus Sqlplus / as sysdba Shutdown immediate(关闭数据库) Startup(启动数据库) 注意:数据库开启才可以进行操作 Select username,account_status from dba_users;(查询数据库中所有的用户名称与用户状态) Alter user scott identified by tiger account unlock;(scott用户解锁) Sqlplus scott/tiger(使用SCOTT 密码为tiger登陆ORACLE数据库) Connect scott/tiger (在SQL>中直接使用SCOTT用户连接数据库) Show all;(看所有变量) Set sqlprompt “_user>”(设置sqlplus环境下面的提示符用自身用户显示) 注意:如要变量下次重启生效必须把变量写入 /u01/app/oracle/product/10.2.0/db_1/sqlplus/admin/glogin.sql中 Host(回到系统) Help index(查看所有命令) Help+命令(类似于LINUX中的MAN,查看命令的格式与用法) Disconnect(关闭SQLPLUS工具但是不离开数据库) Describe emp(查看EMP表) Define(定义变量,常用与写脚本用) 如:DEFINE _EDITOR =”vi” (CHAR) (定义VI编辑器用于保存最后一条执行的SQL语句) Save /u01/app/oracle/aa.sql (保存SQL语句) Get /u01/app/oracle/aa.sql (调用保存的SQL语句) 2.select(select 查询语句是ORACLE中最常用的语句) DML语句包括(insert 写入,update改变,delect删除,merge两张表同步) 注意:merge常用在ETL(数据仓库)底下 DDL数据定义语句包括(create创建对象,alter修改,drop删除对象,rename改名,truncate 删除整个表) TCL事务处理语句(commit提交立刻生效,rollback回滚,savepoint保存点,savepoint(保存点) DCL权限语句(grant赋予权限,revoke(收回权限) ORACLE的表称之为堆表(keep table) SELECT (1) writing basic SQL select statemanes 1. selecting all columns SCOTT>select * from dept; SCOTT>select dname,deptno,loc from dept; Basic SELECT Statement SELECT *|{[DISTINCT] column|expression [alias],...} FROM table;

MLDN魔乐科技Oracle课堂笔记

MLDN魔乐科技_Oracle课堂笔记 1.sqlplusw命令 (窗口形式),sqlplusw不支持编辑,一般在编辑器(记事本)中编辑好了后拷贝进去执行,或用ed命令; 2.desc desc [tablename];查看表结构 3.show user 查看当前用户 4.select table_name from tabs 显示当前用户下的表名; 5.set linesize set linesize [number]; 6.set pagesize set pagesize [number];

7.ed ed命令用来从sqlplusw中打开编辑器来编辑文件(文本文件); 8.@ 执行sql文件@D:\a.txt;@d:\a;(a文件的扩展名为.sql) 9.conn conn username/pwd@实例名; 10.sql标准,其功能:DML(数据操作语言),DDL(数据定义语言),DCL(数据控制语言) 11.别名 Oracle中指定列别名;(不要指定为中文); 12.distinct 去除重复记录; 13.|| 字符串连接符; select "我的名字是:" || name from t_user; 14.NOT NULL/IS NULL 选择列值不为空的记录where collumname IS NOT NULL;相反IS NULL; 15.BETWEEN…AND… WHERE COLUMENAME BETWEEN...AND...; 等价于>=,<=,如果是在时间之前,则需将时间''起来;

16.大小写 oracle中查询值是大小写区分的,但关键字不区分; 17.In FieldName in (值1,值2,值3,...值n);NOT IN; 18.Like 在使用Like时常用的通配符:%,匹配任意长度内容,_,匹配一个长度内容; 例:select * from emp where ENAME Like '_M%';表示第二个字母为M的名字. 19.>,<,>=,<=,<>,!=用法 20.order by Order by语句,放在SQL语句最后;desc(从大到小)/asc(从小到大)(默认) 21.单行函数 字符/数值/日期/转换/通用函数; (1).字符:UPPER()变大写,LOWER()变小写,INITCAP()将单词第一个字母大写; 字符长度LENGTH(),字符串截取SUBSTR(),字符串替换REPLACE() 其中substr()的第二个参数即起始位置索引为0或1效果都是从第一个字符开始,负数是从右边开始; (2).数值:四舍五入ROUND(),截取TRUNC(),求模MOD(); ROUND(23.45,2),TRUNC(23.45,-1),MOD(10,3); (3).日期:MONTHS_BETWEEN(),两个日期之间的月数;MONTHS_BETWEEN(DATE1,DATE2) ADD_MONTHS(),下月的今天; NEXT_DAY(),下一个的今天日期; LAST_DAY(), 给定日期的最后一天日期; (4).转换:TO_CHAR(),TO_NUMBER(),TO_DA TE();

Oracle函数详解(经典)

Oracle常用函数/过程说明主要介绍Oracle的系统函数、过程和包。 SQL常用函数: 数值函数: ABS Purpose 返回绝对值 Returns the absolute value of n. Example SELECT ABS(-15) "Absolute" FROM DUAL; Absolute ---------- 15 CEIL Purpose 取最小整数 Returns smallest integer greater than or equal to n. Example SELECT CEIL(15.7) "Ceiling" FROM DUAL;

Ceiling ---------- 16 * MOD Syntax MOD(m,n) Purpose 取余 Returns remainder of m divided by n. Returns m if n is 0. Example SELECT MOD(11,4) "Modulus" FROM DUAL; Modulus ---------- 3 * ROUND Syntax ROUND(n[,m]) Purpose 取四舍五入信息 Returns n rounded to m places right of the decimal point; if m is omitted, to 0 places. m can be negative to round off digits left of the decimal point. m must be an integer.

学习oracle数据库的总结(图文整理)

1、在开发环境中连接到数据库,进行基本的select查询操作; 2、熟悉plsql的使用; 3、熟悉sqlplus相关命令(登录、查询、导入导出等) 登录sqlplus: 第一:使用dos窗口登录sqlplus Sqlplus 用户名/密码@数据库实例名 Sqlplus system/密码@数据库实例名as sysdba 第二:使用oracle自带的一个sqlplus登录,提供界面,显得更简单一些。 显示当前用户名:show user; 创建一个用户:create user 用户名identified by 密码; 给用户赋予登录的权限:grant connect to 用户名;(此时才可以使用这个用户来登录这个数据库。)给其赋予dba的权限。 修改用户的密码:alter user 用户名identified by 新密码; 查询: Select * from t_user; Select id from t_user; Select name from t_user; Select birthday from t_user; Select id,name from t_user; 导入导出: 导出表: (注意,导出表的exp命令不是在sqlplus下使用的,是在dos窗口下使用的命令。) exp userid=test/sa@test tables=(qx) file=d:\e1223.dmp exp userid=test/sa@test tables=(t_user,qx) file=f:\test.dmp 导出方案: Exp userid=test/sa@test owner=test file=f:\test2.dmp 导出数据库: Exp userid=test/sa@test full=y inctype=complete file=f:\all.dmp 导入表: 下面以一个例子来说明: 看下面的图,我的用户名test,密码sa,数据库实例名test,所有的表都在这里 现在我执行导出表JD的操作:exp userid=test/sa@test tables=(jd) file=f:\jd.dmp 在我的f盘下就出现了这么一个.dmp文件

Oracle课堂笔记4

●Oracle 复杂表查询 ?数据分组:-max,min,avg,sum,count ?如何显示所有员工中最高工资和最低工资? select max(sal) from emp ; (有多个结果也只显示一个) select min(sal) from emp ; select avg(sal) from emp ; (有空值null则不参与运算) select sum(sal)/count(*) from emp ; (count计算行数) ?统计有多少员工? select count(*) from emp ;(字段亦可,空值不参与运算) ?显示工资最高的员工的名字和工作岗位? (我们可以使用子查询来完成1.先查询最大工资是多少2.查找谁的工资是最大工资) select ename , job from emp where sal = (select max(sal) from emp) ; (SQL语句默认从右往左执行) ?显示工资高于平均工资的员工信息? select ename , job from emp where sal > (select avg(sal) from emp) ; ?group by和having子句: group by对结果进行分组统计, having进行限制(过滤)分组显示结果,通常与group by 同时 出现。 ?如何显示每个部门的平均工资和最高工资?

select avg(sal),max(sal),deptno from emp group by deptno ; ?先是每个部门每个岗位的平均工资和最低工资? select avg(sal),max(sal) ,deptno ,job from emp group by deptno,job order by deptno ; ?显示部门平均工资低于2000的部门和平均工资? select avg(sal),deptno from emp group by deptno having avg(sal)<2000 ;(having不支持别名) ●注意事项: ? 1.分组函数(avg)只能出现在选择列表、having、order by 子句中。 ? 2.如果select中同时出现,顺序是:group by、having、 order by,顺序不能出错。 ? 3.在选择列中,如果有列,表达式,分组函数,那么这些 列和表达式必须有一个出现在group by中,否则会出错。 多表查询:在实际开发中不可避免存在对两张或多张表的复杂查询。 1.我们看看多表查询的原理: select * from emp,dept ; 2.如何实现多表查询: select emp.ename,emp.sal,dept.dname from emp,dept

ORACLE常用函数和一些项目中常用的SQL语句

Oracle笔记 实现中英文转换 Alter session set nls_language=‘ADMIN’ 从已知表中复制数据和结构 Create table test as select * from dept; 从已知表中复制数据和结构,但是不包括数据 Create table test as select * from dept where 1=2 插入数据 Insert into test select * from dept 二、运算符 +——*/可以在select 语句中使用 ||连接两个字段,select deptno ||dname from dept 比较运算付:> >= = !=< <= 逻辑运算符:not ,or 集合运算符:intersect,union,union all,minus, 使用ord er by 的时候必须使用位置序号,不能使用列名 Select *from emp intersect select * from emp where deptno=10; Select *from emp minus select * from emp where deptno=10; ---不包括重复行 Select *from emp where deptno=10 union select * from emp where deptno in(10,20);----包括重复行 Select *from emp where deptno=10 union all select * from emp where deptno in(10,20); 三、常用ORACLE函数

oracle学习笔记

●PLSQL控制台输出语句 SET serveroutput ON; --打开控制台输出服务 dbms_output.put_line('values2='||var_val); --输出语句 ●PLSQL动态变量 var_str := '&input'; ●创建表空间和用户 --创建表空间 CREATE TABLESPACE "BCPBS" LOGGING DATAFILE 'D:\app\E430\oradata\orcl\BCPBS_01.ora' SIZE 2048M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED, 'D:\app\E430\oradata\orcl\BCPBS_02.ora' SIZE 2048M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ; --建立用户 CREATE USER "BCPBS" PROFILE "DEFAULT" IDENTIFIED BY "bcpbs123" DEFAULT TABLESPACE "BCPBS" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK; GRANT "CONNECT" TO "BCPBS"; GRANT "DBA" TO "BCPBS"; GRANT "RESOURCE" TO "BCPBS"; ●删除表空间和用户 drop user bcpbs cascade ; drop tablespace BCPBS including contents and datafiles cascade constraints ; ●自定义函数 CREATE OR REPLACE FUNCTION fun_level_value(level_value number) RETURN number IS return_value number:=null; BEGIN CASE level_value WHEN 0 THEN return_value:='0'; WHEN 1 THEN return_value:='1'; WHEN 2 THEN return_value:='2'; WHEN 3 THEN return_value:='3'; WHEN 6 THEN return_value:='8'; ELSE

oracle学习心得体会

oracle学习心得 一、sqlserver的理解 sqlserver服务器就像一栋大楼,大楼里的机房就像服务器的数据库,机房里的电脑如同数据库里的表 1、登录用户可以登录服务器——可以进大楼 2、登录用户成为数据库用户才能进指定的数据库——进入大楼的人给了某个机房的钥匙 才能进入机房 3、登录用户有权限使用表——进入机房的人有电脑的密码才能使用电脑 二、oracle的理解 oracle服务器(全局数据库)就像一个商场,商场的每一家公司是表空间,公司的业务是表 1、数据库由多个表空间组成——商场里有多家公司组成 2、表空间由段组成——公司要有自己的经营业务,可以只有一个业务,就是一个表空 间中只有一个段,可以有多个业务,就是一个表空间有多个段 3、段由区组成——单个业务的细分类别。例如有家公司经营三个业务,卖书,卖家电,

卖衣服,则每个业务就是一个段。而每个业务又有细分,比如卖书的话要进行分类了。计算机区,人文区,小说区等,每一区都要放上书架存放书籍,则书架就是oracle块,存放数据的 三、数据库,表空间,用户(指定默认表空间),表统统由管理员管理 四、在oem中管理数据库的步骤 1、创建 1)存储——表空间——创建表空间(tomspace)(类似于在sql中创建数据库, 通常可以省略,使用默认表空间为users,,临时表空间为temp) 2)首先展开安全性——创建新用户(tom,指定表空间)(类似于在sql中指定 数据库用户) 3)创建表——指定方案(用户)和表空间(列名不要带<>) 4)设置约束 5)输入信息:方案——用户名——表——右击——查看/编辑目录… 2、修改 1)方案——用户名——表 2)修改表结构,添加约束

韩顺平2011玩转oracle10g视频教学课堂笔记(完整版)

顺平j2ee系列教程--玩转oracle10g学习笔记 引言: 数据保存问题? 可使用文件保存和数据库保存。 使用文件保存数据存在几个缺点: 1、文本的安全性问题; 2、文件不利于查询和对数据的管理; 3、文件不利于存放海量数据; 4、文件在程序中控制不方便。 为解决数据保存问题,专家们设计出更加利于管理数据的东东--数据库(本质就是一个软件),它能更有效的管理数据。数据库是衡量一个程序员水平的重要指标。 数据库 1、数据库的本质就是一款软件,这个软件专门用于管理和维护数据; 2、数据存放在数据库中。 数据库服务器、数据库和表的关系 所谓安装数据库服务器,只是在机器上装了一个数据库管理程序,这个管理程序可以管理多个数据库,一般开发人员会针对每个应用创建一个数据库。 为了保存应用中实体的数据,一般会在数据库创建多个表,以保存程序中实体的数据。 数据库服务器、数据库和表的关系如图所示:

为什么选择oracle--性能优越 概述:目前主流数据库包括 微软: sql server和access 瑞典MySql: AB公司mysql ibm公司: db2(处理海量) 美国Sybase公司: Sybase ibm公司: informix 美国oracle公司: oracle 做项目时应当如何选择数据库? 1、标的(项目预算); 2、功能的要求; 3、并发数(多少人用); 4、安全、稳定性。 5、操作系统(unix[solaris,freeBSD,aix,hp unix]/linux/window) oracle数据库的认证 oca(oracle certified associate)初级认证 ocp(oracle certified professional)中级认证 ocm(oracle certified master)高级认证 oracle10g安装步骤: 1、安装文件 2、把10201_database_win32.zip文件copy到没有中文的路径下 3、检查服务选项,确定本机没有安装过oracle数据库,如果有则卸载 4、将压缩包解压后,双击setup.exe文件进行安装。 说明:建议大家自己建立一个文件目录,比如d:/hsporacle/oracle,然后把数据库安装到

oracle中常用函数大全

oracle中常用函数大全 1、数值型常用函数 函数返回值样例显示 ceil(n) 大于或等于数值n的最小整数select ceil(10.6) from dual; 11 floor(n) 小于等于数值n的最大整数select ceil(10.6) from dual; 10 mod(m,n) m除以n的余数,若n=0,则返回m select mod(7,5) from dual; 2 power(m,n) m的n次方select power(3,2) from dual; 9 round(n,m) 将n四舍五入,保留小数点后m位select round(1234.5678,2) from dual; 1234.57 sign(n) 若n=0,则返回0,否则,n>0,则返回1,n<0,则返回-1 select sign(12) from dual; 1 sqrt(n) n的平方根select sqrt(25) from dual ; 5 2、常用字符函数 initcap(char) 把每个字符串的第一个字符换成大写select initicap('mr.ecop') from dual; Mr.Ecop lower(char) 整个字符串换成小写select lower('MR.ecop') from dual; mr.ecop replace(char,str1,str2) 字符串中所有str1换成str2 select replace('Scott','s','Boy') from dual; Boycott substr(char,m,n) 取出从m字符开始的n个字符的子串select substr('ABCDEF',2,2) from dual; CD length(char) 求字符串的长度select length('ACD') from dual; 3 || 并置运算符select 'ABCD'||'EFGH' from dual; ABCDEFGH 3、日期型函数 sysdate当前日期和时间select sysdate from dual;

Oracle学习笔记

Oracle的四个主要用户 1.超级管理员sys/change_on_install 2.普通管理员system/manager 3.普通用户scott/tiger 4.大数据用户sh/sh 简单查询 1.查询表结构 DESC 表名 2.简单查询SELECT [DISTINCT] *|[字段 [别名]] [,字段 [别名]] … FROM 表名 [别名] (1)查询时也可以使用四则运算,如:SELECT (字段*x)+y FROM 表名 (2)可以使用“||”连接字段与字符串,如: select '工作与工资:' || job || sal 工作工资 from emp 执行结果: 3.限定查询SELECT [DISTINCT] *|[字段 [别名]] [,字段 [别名]] … FROM 表名 [别名] [WHERE 条件(s)] (1)Where字句后可以增加多个条件,最常见的条件就是最基本关系运算:>、<、>=、<=、!=(<>)、BE TWEEN…AND、LIKE、IN(指定范围)、IS NULL(为空)、AND(且)、OR(或)、NOT(非)。 (2)多个条件可以使用AND与OR连接。 例如:select * from emp where sal>1300 and sal<4000 (3)范围判断BE TWEEN…AND:BETWEEN 最小值 AND 最大值(大于等于最小值,小于等于最大值),BE TWEEN…AND 对数字、日期都可以使用!!! 例如:select * from emp where sal between 1300 and 4000 例如:select * from emp where hiredate between '01-1月-1981' and '31-12月-1981' (4)判断为空IS (NOT) NULL 例如:select * from emp where comm is null 例如:select * from emp where comm is not null 例如:select * from emp where not comm is null (5)指定范围的判断(NOT) IN 例如:select * from emp where empno in(7369,7566,7799)

Oracle常用函数及使用案例(珍藏版)

Oracle常用函数及使用案例(珍藏版) 一:sql函数: lower(char):将字符串转化为小写的格式。 upper(char):将字符串转化为大写的格式。 length(char):返回字符串的长度。 substr(char,m,n):取字符串的字串。 案例1.将所有员工的名字按小写的方式显示 select lower(ename),sal from emp; 案例2.将所有员工的名字按大写的方式显示。 select upper(ename),sal from emp; 案例3.显示正好为五个字符的的员工的姓名。 select * from emp where length(ename)=5; 案例4.显示所有员工姓名的前三个字符。 select substr(ename,1,3) from emp;//从名字的第一个字符开始取,向后取三个字符。 案例5.以首字母为大写的方式显示所有员工的姓名。 (1)首字母大写:select upper(substr(ename,1,1)) from emp; (2)完成后面字母小写。select lower(substr(ename,2,length(ename)-1)) from emp; (3)合并select upper(substr(ename,1,1))||lower(substr(ename,2,length(ename)-1)) from emp; 案例6.以首字母为小写的方式显示所有员工的姓名。(需要有较高的灵活度,细心分析和清晰思路) (1)首字母小写:select upper(substr(ename,1,1)) from emp; (2)完成后面字母大写。select lower(substr(ename,2,length(ename)-1)) from emp; (3)合并select lower(substr(ename,1,1))||upper(substr(ename,2,length(ename)-1)) from emp; 案例7.函数(替换):replace(char1,search_string,replace_string); 显示所有员工的姓名,用“我要替换A”替代所有“A”。 select replace(ename,'A','我是老鼠')from emp; 案例8.以首字母为小写的方式显示所有员工的姓名。 select replace(ename,substr(ename,1,1),lower(substr(ename,1,1)))from emp; 案例9.以首字母为大写的方式显示所有员工的姓名。 Select replace(ename,substr(ename,2,length(ename)-1),lower(substr(ename,2,length(ename) -1)))from emp; 二:数学函数:(在财务中用的比较多) ronud(sal)用于四舍五默认取整; ronud(sal,1)用于四舍五留一位小数。 trunc(sal)取整,忽略小数。截去小数部分。 trunc(sal,1)截取;小数点留一位,之后的右边的省去。 trunc(sal,-1)截取;只留整数,个位数取零。 floor(sal)向下最接近取整;比如1.1值为1.

Oracle数据库期末复习知识点整理

基础知识 表3.2 Oracle数据类型

表3.3 XSB的表结构

操作表 创建表 CREATE TABLE [schema.] table_name ( column_namedatatype [DEFAULT expression] [column_constraint][,…n] [,…n] ) [PCTFREE integer] [PCTUSED integer] [INITRANS integer] [MAXTRANS integer] [TABLESPACE tablespace_name] [STORGE storage_clause] [CLUSTER cluster_name(cluster_column,…n)] [ENABLE | DISABLE ] [AS subquery] 【例】使用CRETE TABLE命令为XSCJ数据库建立表XSB,表结构参照表3.3。 打开SQL*Plus工具,以system方案连接数据库,输入以下语句: CREATE TABLE XSB ( XH char(6) NOT NULL PRIMARY KEY, XM char(8) NOT NULL, XB char(2) DEFAULT '1' NOT NULL, CSSJ date NOT NULL, ZY char(12) NULL, ZXF number(2) NULL, BZ varchar2(200) NULL ); 修改表 ALTER TABLE [schema.] table_name [ ADD(column_namedatatype [DEFAULT expression][column_constraint],…n) ] /*增加新列*/ [ MODIFY([ datatype ] [ DEFAULT expression ] [column_constraint],…n) ] /*修改已有列的属性*/ [ STORAGE storage_clause ] *修改存储特征*/ [ DROP drop_clause ] /*删除列或约束条件*/ 【例】使用ALTER TABLE语句修改XSCJ数据库中的表。

相关主题
文本预览
相关文档 最新文档