首页 ORACLE数据库开发培训

ORACLE数据库开发培训

举报
开通vip

ORACLE数据库开发培训nullORACLE数据库开发基础ORACLE数据库开发基础培训人: 陈仰灵 时 间: 2011 年 7 月 14 日null介绍 姓名:陈仰灵 项目:IMIS项目组 联系方式:chenyl@gillion.com.cn 数据库开发基础数据库开发基础本次培训内容: 基本概念 SQL语言 SQL开发初步 开发环境介绍 基本概念基本概念表 数据类型 表约束 索引 I. 表:字段、记录、列、主键、外键I. 表:字段、记录、列、主键、外键表EMP表DEPTEMPNO ENAME DEP_NO 7369 SMIT...

ORACLE数据库开发培训
nullORACLE数据库开发基础ORACLE数据库开发基础 培训 焊锡培训资料ppt免费下载焊接培训教程 ppt 下载特设培训下载班长管理培训下载培训时间表下载 人: 陈仰灵 时 间: 2011 年 7 月 14 日null介绍 姓名:陈仰灵 项目:IMIS项目组 联系方式:chenyl@gillion.com.cn 数据库开发基础数据库开发基础本次培训内容: 基本概念 SQL语言 SQL开发初步 开发环境介绍 基本概念基本概念表 数据类型 表约束 索引 I. 表:字段、记录、列、主键、外键I. 表:字段、记录、列、主键、外键表EMP表DEPTEMPNO ENAME DEP_NO 7369 SMITH 20 7499 ALLEN 30记录列(字段)主键表名:EMP外键表:数据库最基本的组件。在逻辑上是存储数据的基本单元。由行(记录)与列(字段)组成II. 数据类型II. 数据类型数据类型用于给特定的数据提供规则。 基本数据类型包括: 字符串 数字 日期和时间值.字符串定长字符串: CHAR (n) 变长字符串: VARCHAR/VARCHAR2(n).字符串.数字型NUMBER(n,m) INTEGER SMALLINT FLOAT(p) DOUBLE PRECISION(p) .数字型.日期和时间值.日期和时间值DATE(YEAR,MONTH,DAY) TIME(HOUR,MINUTE,SECOND) INTERVAL TIMESTAMP 类型转化: TO_TIMESTAMP(SYSDATE,'YYYY-MM-DD HH24:MI:SS')III.表约束III.表约束用于限定数据业务规则 常见的表约束: 空值NULL 约束 默认值DEFAULT 外键约束FOREIGN KEY 唯一性约束 (可以通过创建唯一索引UNIQUE INDEX确保唯一性) IV.索引IV.索引主要用于加快查询效率 逻辑上看,常见的索引类型 : .普通单列索引 .组合索引 .唯一索引 .函数索引null例子:箱信息表 DOC_BL_UNIT null例子:箱信息表 DOC_BL_UNIT 关系数据库标准语言SQL关系数据库标准语言SQLSQL:Structured Query Language 结构化查询语言 功能:查询、操纵、定义、控制 特点:1、一体化; 2、两种使用方式,统一的语法结构; 方式一、联机交互使用方式; 方式二、嵌入式。 3、高度非过程化; 4、语言简洁,易学易用。SQL命令的种类SQL命令的种类DDL(Data Definition Language):数据定义语 言 DML(Data Manipulation Language):数据操纵语言 DQL(Data Query Language):数据查询语言 DCL(Data Control Language):数据控制语言 事务性控制命令DML,数据操纵语言DML,数据操纵语言用于在关系数据库对象中操纵数据 INSERT UPDATE DELETE DQL,数据查询语言 对数据库中的信息寻找和定位 SELECT数据查询语句数据查询语句语句结构 操作符 多表查询 数据集之间的操作 .结构SELECT [ * | all | column1,column2 ] FROM table1 [ ,table2 ] [ WHERE condition ] [ GROUP BY column1 ] [ ORDER BY column2(asc,desc) ]按列取值相等的原则进行分组按列值进行排序.结构null 例1:SELECT * FROM products_tbl WHERE cost < 5 例2:SELECT prod_desc,cost FROM products_tbl WHERE prod_id = ‘119’ 例3:多表查询 SELECT employee_tbl.emp_name, employee_pay_tbl.position FROM employee_tbl, employee_pay_tbl WHERE employee_tbl.emp_id = employee_pay_tbl.emp_id .操作符.操作符定义:操作符是保留的字或字符,主要用于比 较和算术运算。 分类:比较操作符,逻辑操作符和算术运算符。 1、比较操作符 包括:=,<>, >, <, <=, >=。 注意比较双方的数据类型。 2、算术运算符 包括:+,-,*,/等。 与数学运算规则一致。 3、逻辑操作符3、逻辑操作符IS NULL(是否为空) BETWEEN(在某两个值之间) IN(一系列值中) LIKE(相似值的比较) EXISTS(是否存在符合条件的数据) ALL/ANY(一组数据的所有/其中的任何一个) AND/OR(逻辑与/或)IS NULL / IS NOT NULLIS NULL / IS NOT NULLWHERE salary IS NULL 工资为空值。 例: SELECT emp_id, emp_name FROM employee_tbl WHERE emp_phone IS NULLBETWEENBETWEENWHERE salary BETWEEN 200 and 300 工资在200到300之间,包括200和300。 IN WHERE salary IN (200,300,400) 工资必须是200,300,400之中的值。LIKELIKE使用匹配符将一个值同其相似的值比较。 匹配符包括:- 代表一个字符。 % 代表多个字符。 如: WHERE salary LIKE ‘-00’ 查找‘00’作为后两位数的值。 WHERE salary LIKE ‘200%’ 查找‘200’作为前三位数的值。EXISTSEXISTS查询在指定表中是否存在一行符合某种条件的数据。 WHERE EXISTS (SELECT employee_id FROM employee_tbl WHERE employee_id = ‘3333’)ALL/ANYALL/ANY与某个数据集中所有数据 / 任何一个进行比较。 WHERE salary > all (SELECT salary FROM employee_tbl WHERE city = ‘INDIAN’) AND/ORAND/ORAND连接的条件必须都满足。 OR连接的条件至少满足一个。 如:SELECT * FROM products_tbl WHERE cost > 10 and cost < 30 如:SELECT * FROM products_tbl WHERE prod_id = ‘7725’ or prod_id = ‘2345’ 例子例子.Order by / group by /having SELECT E.* FROM EMP E ORDER BY E.DEPTNO SELECT E.DEPTNO,SUM(E.SAL) FROM EMP E GROUP BY E.DEPTNO SELECT E.DEPTNO,COUNT(*) FROM EMP E GROUP BY E.DEPTNO HAVING COUNT(*)>3 SELECT E.DEPTNO,COUNT(*) FROM EMP E GROUP BY E.DEPTNO ORDER BY E.DEPTNO例子例子.“in” “=” “EXISTS” SELECT E.EMPNO,E.ENAME FROM EMP E WHERE E.DEPTNO IN (SELECT D.DEPTNO FROM DEPT D WHERE D.DNAME='SALES') SELECT E.EMPNO,E.ENAME FROM EMP E WHERE E.DEPTNO=(SELECT D.DEPTNO FROM DEPT D WHERE D.DNAME='SALES') SELECT E.EMPNO,E.ENAME FROM EMP E WHERE EXISTS(SELECT 1 FROM DEPT D WHERE D.DNAME='SALES' AND D.DEPTNO=E.DEPTNO)例子例子.“not in” “NOT EXISTS” SELECT E.EMPNO,E.ENAME,E.DEPTNO FROM EMP E WHERE E.DEPTNO NOT IN (SELECT D.DEPTNO FROM DEPT D WHERE D.DNAME='SALES') .最不可用 SELECT E.EMPNO,E.ENAME,E.DEPTNO FROM EMP E WHERE E.DEPTNO<>(SELECT D.DEPTNO FROM DEPT D WHERE D.DNAME='SALES') .推荐写法 SELECT E.EMPNO,E.ENAME,E.DEPTNO FROM EMP E WHERE NOT EXISTS(SELECT 1 FROM DEPT D WHERE D.DNAME='SALES' AND D.DEPTNO=E.DEPTNO).表连接-多表数据查询.表连接-多表数据查询常见的表连接: 1、等值连接、 2、左连接LEFT JOIN / (+) 3、全连接FULL JOINnull.等值连接 SELECT E.EMPNO,E.ENAME,D.DEPTNO,D.DNAME FROM EMP E JOIN DEPT D ON E.DEPTNO=D.DEPTNO WHERE E.EMPNO='7902' SELECT E.EMPNO,E.ENAME,D.DEPTNO,D.DNAME FROM EMP E,DEPT D WHERE E.DEPTNO=D.DEPTNO AND E.EMPNO='7902' null.左连接 SELECT E.EMPNO,E.ENAME,D.DEPTNO,D.DNAME FROM EMP E LEFT JOIN DEPT D ON E.DEPTNO=D.DEPTNO WHERE E.EMPNO='7934' SELECT E.EMPNO,E.ENAME,D.DEPTNO,D.DNAME FROM EMP E,DEPT D WHERE E.DEPTNO=D.DEPTNO(+) AND E.EMPNO='7934' null.全连接 SELECT E.EMPNO,E.ENAME,D.DEPTNO,D.DNAME FROM EMP E FULL JOIN DEPT D ON E.DEPTNO=D.DEPTNO 相当于: SELECT E.EMPNO,E.ENAME,D.DEPTNO,D.DNAME FROM EMP E LEFT JOIN DEPT D ON E.DEPTNO=D.DEPTNO UNION SELECT E.EMPNO,E.ENAME,D.DEPTNO,D.DNAME FROM DEPT D LEFT JOIN EMP E ON E.DEPTNO=D.DEPTNO .数据集之间的操作.数据集之间的操作.基本的一些操作符: 合集 UNION ALL / UNION 差集 MINUS 交集 INTERSECTnull--合集 UNION ALL SELECT E.EMPNO,E.ENAME,D.DEPTNO,D.DNAME FROM EMP E,DEPT D WHERE E.DEPTNO=D.DEPTNO AND E.EMPNO='7369' UNION ALL SELECT E.EMPNO,E.ENAME,D.DEPTNO,D.DNAME FROM EMP E,DEPT D WHERE E.DEPTNO=D.DEPTNO AND E.EMPNO='7369' null--合集 UNION SELECT E.EMPNO,E.ENAME,D.DEPTNO,D.DNAME FROM EMP E,DEPT D WHERE E.DEPTNO=D.DEPTNO AND E.EMPNO='7369' UNION SELECT E.EMPNO,E.ENAME,D.DEPTNO,D.DNAME FROM EMP E,DEPT D WHERE E.DEPTNO=D.DEPTNO AND E.EMPNO='7369' null--差集 SELECT E.EMPNO,E.ENAME,D.DEPTNO,D.DNAME FROM EMP E,DEPT D WHERE E.DEPTNO=D.DEPTNO AND E.EMPNO IN ('7369','7499') MINUS SELECT E.EMPNO,E.ENAME,D.DEPTNO,D.DNAME FROM EMP E,DEPT D WHERE E.DEPTNO=D.DEPTNO AND E.EMPNO='7499'null--交集 SELECT E.EMPNO,E.ENAME,D.DEPTNO,D.DNAME FROM EMP E,DEPT D WHERE E.DEPTNO=D.DEPTNO AND E.EMPNO IN ('7369','7499') INTERSECT SELECT E.EMPNO,E.ENAME,D.DEPTNO,D.DNAME FROM EMP E,DEPT D WHERE E.DEPTNO=D.DEPTNO AND E.EMPNO='7499'数据库更新语句数据库更新语句INSERT 给表新增数据 UPDATE 更新已存在的数据 DELETE 删除表中的数据INSERT 给表新增数据INSERT 给表新增数据语法: INSERT INTO table_name VALUES(value1,value2,…...) 例: products_tbl:prod_id varchar(10) prod_desc varchar(25) cost number(6,2) 输入数据: INSERT INTO products_tbl VALUES(‘7725’,’LEATHER’,26.99) UPDATE 更新已存在的数据UPDATE 更新已存在的数据语法: UPDATE table_name SET column_name = ‘value’ [WHERE condition] 例:UPDATE products_tbl SET prod_id = ‘1001’ WHERE prod_desc = ‘coat’ DELETE 删除表中的数据DELETE 删除表中的数据语法: DELETE FROM table_name [WHERE condition] 例:DELETE FROM products_tbl WHERE prod_ID = ‘1001’ null --INSERT INSERT INTO SAL_GRADE(GRADE) VALUES('7') SELECT * FROM SAL_GRADE --UPDATE UPDATE SAL_GRADE S SET S.SAL_TO='10000' WHERE S.GRADE='5' --DELETE DELETE FROM SAL_GRADE S WHERE S.GRADE='5'SQL数据定义语句SQL数据定义语句数据定义功能包括:基表、索引的定义。 一、创建与删除基表 二、索引的建立与删除DDL,数据定义语言DDL,数据定义语言用户创建或重新构建数据库的语言 CREATE INDEX ALTER INDEX DROP INDEX CREATE TABLE ALTER TABLE DROP TABLE一、创建与删除基表一、创建与删除基表创建基表语法: CREATE TABLE table_name (col_name col_properties constraint …… ) table_name 表名 col_name 列名 创建临时表: CREATE TABLE # table_name (col_name col_properties constraint …… ) null删除一张表就是删除一张表定义及其所有与之相关连的数据、索引、触发器、约束和许可。 语法: DROP TABLE databasename.table_name 例: DROP TABLE pubs.dbo.authors2null修改表结构语法: ALTER TABLE table_name [modify][col_name col_properties] [add][col_name col_properties] [drop][col_name col_properties] 例:ALTER TABLE employee_tbl modify(emp_id varchar(10))例:创建一雇员表(编号/C,姓名/C,住所/C,电话/N)。例:创建一雇员表(编号/C,姓名/C,住所/C,电话/N)。CREATE TABLE employee_tbl (emp_id char(9) not null, emp_name varchar(40) not null, emp_city varchar(15) not null, emp_phone number(10) null)二、索引的建立与删除二、索引的建立与删除语法: CREATE [UNIQUE] [CLUSTER] INDEX index_name ON table_name(clo_name 升/降序,…...) ASC:升序,DESC:降序 UNIQUE 每一个索引只对应唯一的数据记录; CLUSTER 聚簇索引,是指索引项的顺序与表中记录的物理顺序一致的索引组织。 null例:为学生-课程数据库中的student, couse, sc 3个表建立索引。其中student表按学号升序建立唯一索引; couse表按课程号升序建立唯一索引; sc 表按学号升序和课程号降序建唯一索引。 CREATE UNIQUE INDEX stusno ON student(sno) CREATE UNIQUE INDEX coucno ON couse(cno) CREATE UNIQUE INDEX scno ON sc(sno ASC,cno DESC)null删除索引语法: DROP INDEX 例:删除student表的stusname索引 DROP INDEX stusnamenull.表 create table EMP ( EMPNO NUMBER(4) not null, ENAME VARCHAR2(10), JOB VARCHAR2(9), MGR NUMBER(4), HIREDATE DATE, SAL NUMBER(7,2), COMM NUMBER(7,2), DEPTNO NUMBER(2) ) tablespace SYSTEM --表空间 pctfree 10 --表存储参数 pctused 40 initrans 1 maxtrans 255 storage ( initial 64K minextents 1 maxextents unlimited );null.主键、外键 -- primary key alter table EMP add constraint PK_EMP primary key (EMPNO) using index tablespace SYSTEM pctfree 10 initrans 2 maxtrans 255 storage ( initial 64K minextents 1 maxextents unlimited ); -- foreign key alter table EMP add constraint FK_DEPTNO foreign key (DEPTNO) references DEPT (DEPTNO);null.索引 create index IX_EMP_DEPTNO on EMP(DEPTNO) tablespace SYSTEM --表空间 pctfree 10 initrans 2 maxtrans 255 storage ( initial 64K minextents 1 maxextents unlimited ) ;null.事务控制 .用户权限分配SQL数据控制语句.事务性控制命令.事务性控制命令用户管理数据库的事务命令 COMMIT用于保护数据库的事务 ROLLBACK用于撤消数据库的事务 SAVEPOINT创建一组事务中的撤消点 SET TRANSACTION给事务命名.用户权限分配.用户权限分配用于创建与用户访问相关的对象,也控制着用户的权限分配 ALTER PASSWORD改变口令 GRANT为用户授予特权 REVOKE从用户处收回特权 null授权: 将对指定操作对象的指定操作权限授予指定的用户。GRANT <权限>[,<权限>]… [ON<对象类型> <对象名>] TO <用户>[, <用户>]… [WITH GRANT OPTION];权限: SELECT,INSERT,UPDATE,DELETE;ALTER,INDEX;CREATE 对象类型:TABLE,DATABASE 对象:属性列,视图,基本表,数据库null例1:把查询GRANT SELECstudent表权限授给用户U1. T ON TABLE student TO U1;例2:把查询sc表权限授给所有用户. GRANT SELECT ON TABLE SC TO PUBLIC;例3:把对表SC的INSERT权限授给用户U2,并允许他转授. GRANT INSERT ON TABLE SC TO U2 WITH GRANT OPTION; GRANT INSERT ON TABLE SC TO U3nullREVOKE <权限>[,<权限>]… [ON<对象类型> <对象名>] FROM <用户>[, <用户>]…;例4:把所有用户查询SC表权限收回. REVOKE SELECT ON TABLE SC FROM PUBLIC;收回权限例5:把用户U1修改student表的sno字段的权限收回. REVOKE UPDATE(sno) ON TABLE student FROM U1;null.COMMIT/ROLLBACK开发时注意点 1、程序里面是否一定要commit 2、日常操作的注意点 DELETE FROM SAL_GRADE S WHERE S.GRADE='5‘nullSQL过程语言 函数FUNCTION 存储过程PROCEDURE 视图VIEW 库函数SQL开发初步.SQL过程语言.SQL过程语言基本结构 结构语言 .基本结构.基本结构DECLARE /* 声明部分: 在此声明PL/SQL用到的变量,类型及游标,以及局部的存储过程和函数 */ BEGIN /* 执行部分: 过程及SQL 语句 , 即程序的主要部分 */ EXCEPTION /* 执行异常部分: 错误处理 */ END; 注:主体部分被包含在BEGIN-END中,是必需部分。 .结构语言.结构语言判断分支语句1: IF condition THEN Sequence_of_statements; END IF; IF condition THEN Sequence_of_statement1; ELSE Sequence_of_statement2; END IF; IF condition1 THEN Sequence_of_statement1; ELSIF condition2 THEN Sequence_of_statement2; ELSIF condition3 THEN Sequence_of_statement3; END IF;.结构语言.结构语言判断语句2: CASE WHEN condition1 THEN Sequence_of_statements1; WHEN condition2 THEN Sequence_of_statements2; ELSE Sequence_of_statements3; END CASE; CASE variable WHEN value1 THEN Sequence_of_statements1; WHEN value2 THEN Sequence_of_statements2; ELSE Sequence_of_statements3; END CASE; .结构语言.结构语言.循环语句 FOR counter IN lower_bound..higher_bound LOOP Sequence_of_statements; END LOOP; WHILE condition LOOP Sequence_of_statements; END LOOP; 异常处理异常处理EXCEPTION 常见异常 NO_DATA_FOUND TOO_MANY_ROWS DUP_VAL_ON_INDEX VALUE_ERROR STORAGE_ERROR ZERO_DIVIDE CURSOR_ALREADY_OPEN TIMEOUT_ON_RESOURCE CASE_NOT_FOUND OTHERS 异常处理异常处理异常处理 BEGIN Sequence of statements; Exception   When exception1 then   Sequence of statements;   When exception2 then   Sequence of statements;   When others then Sequence of statements; END;异常处理异常处理OTHERS异常 OTHERS处理器应该是异常处理块中的最后的异常处理器,因为它是用来捕获除了别的异常处理器处理以外的所有的Oracle异常,所以在程序的最外层使用一个OTHERS处理器的话,将可以确保所有的错误都会被检测到。 例子例子BEGIN FOR i IN 1..200 LOOP CASE WHEN MOD(i,5)=0 THEN INSERT INTO BONUS(COMM)VALUES(i); WHEN MOD(i,5)=1 THEN NULL; ELSE NULL; END CASE; END LOOP; END;存储函数存储函数存储函数 CREATE FUNCTION 函数名 (参数说明1,参数说明2, 。。。) RETURN 类型 IS [局部说明] BEGIN 执行语句; END[函数名]; Variable := 函数(参数1,参数2,…参数N);存储函数例子存储函数例子CREATE OR REPLACE FUNCTION FN_GET_DEPNAME ( V_DEPTNO IN EMP.DEPTNO%TYPE ) RETURN VARCHAR2 AS V_DNAME DEPT.DNAME%TYPE; BEGIN BEGIN SELECT D.DNAME INTO V_DNAME FROM DEPT D WHERE D.DEPTNO=V_DEPTNO; EXCEPTION WHEN NO_DATA_FOUND THEN V_DNAME:=NULL; END; RETURN V_DNAME; END; 存储过程存储过程存储过程: CREATE PROCEDURE 过程名 (参数说明1,参数说明2, 。。。) IS [局部说明] BEGIN 执行语句; END [过程名]; [EXEC] 过程名(参数1,参数2…参数N);存储过程例子存储过程例子 CREATE OR REPLACE PROCEDURE SP_TEST_GET_EMP_INFO ( V_EMPNO IN EMP.EMPNO%TYPE, V_CURSOR OUT sys_refcursor ) AS BEGIN OPEN V_CURSOR FOR SELECT E.EMPNO,E.ENAME,E.DEPTNO,FN_GET_DEPNAME(E.DEPTNO) FROM EMP E WHERE E.EMPNO=V_EMPNO; END;二、视 图二、视 图视图的定义 视图的查询 视图的更新 删除视图视图的定义视图的定义什么是视图? 视图是存储在数据库中的预先定义好的查询,具有表的外观,可以象表一样对其进行存取,但不占据物理存储空间。 视图的特点: 视图的存在依赖于生成视图的表; 视图能用作数据库安全的一种形式; 利用视图维护综合数据。 创建视图 创建视图基本语法: CREATE VIEW view_name AS SELECT STATEMENT [WITH CHECK OPTION] 1、从单表/多表中创建视图 2、从视图中创建视图1、从单独的表中创建视图1、从单独的表中创建视图语法: CREATE VIEW view_name AS SELECT * |COL1[,COL2,…] FROM table_name WHERE expression 例: CREATE VIEW emp _ view AS SELECT emp_id,emp_name,phone FROM employee_tbl从多表中创建视图从多表中创建视图语法: CREATE VIEW VIEW_NAME AS SELECT * |COL1[,COL2,….] FROM TABLE_NAME1,TABLE_NAME2,… WHERE EXPRESSION2、从视图中创建视图2、从视图中创建视图语法:CREATE VIEW2 AS SELECT * FROM VIEW1 注意:不要创建层次太深的视图; 例:由上例视图employee_summary CREAT subsummary AS SELECT * FROM employee_summary视图的查询视图的查询对视图的查询与对基本表查询一样; 系统执行视图查询时是把它转换成等价的对基本表的查询。 例: SELECT emp_id, position FROM employee_summary WHERE pay_rate > 15.视图例子.视图例子CREATE VIEW VW_TEST_GET_EMP_INFO AS SELECT E.EMPNO,E.ENAME,D.DEPTNO,D.DNAME FROM EMP E,DEPT D WHERE E.DEPTNO=D.DEPTNO ; select * from vw_test_get_emp_info V WHERE V.EMPNO='7782'.库函数.库函数 函数通常是列名或表达式相连系的命令。 1、统计函数 2、字符函数 3、算术函数 1、统计函数1、统计函数统计函数:用于提供统计信息,如:累加、总和、平均值。 主要的统计函数: COUNT:统计行数或不为NULL的列数。 SUM:求和。 MAX:求最大值。 MIN:求最小值。 AVG:求平均值。COUNTCOUNT语法: COUNT[(*)|(DISTINCT|ALL|]COLUMN NAME) 注意:DISTINCT统计唯一的行; DISTINCT不能用于COUNT(*),只能用 于COUNT(column_name)举例:举例:SELECT COUNT(*) FROM EMPLOYEE_TBL 统计雇员表中所有行数 SELECT COUNT(EMP_ID) FROM EMPLOYEE_TBL 统计所有雇员身份证号 SELECT COUNT(DISTINCT SALARY) FROM EMPLOYEE_PAY_TBL 统计唯一行数SUM:仅用于数字类型。SUM:仅用于数字类型。语法: SUM( [DISTINCT] COLUMN NAME) 举例: SELECT SUM (SALARY) FROM EMPLOYEE_PAY_TBL 计算工资总和 SELECT SUM (DISTINCT SALARY) FROM EMPLOYEE_PAY_TBL 计算没有重复工资总和AVG:确定一组数据的平均值AVG:确定一组数据的平均值语法: AVG([DISTINCT] COLUMN NAME) 举例: SELECT AVG(SALARY) FROM EMPLOYEE_PAY_TBL 计算工资的平均值 SELECT AVG(DISTINCT SALARY) FROM EMPLOYEE_PAY_TBL 计算唯一的工资平均值MAX和MINMAX和MIN语法: MAX( [DISTINCT] COLUMN NAME ) MIN ( [DISTINCT] COLUMN NAME ) 举例: SELECT MAX(SALARY) FROM EMPLOYEE_PAY_TBL 计算最高的工资 SELECT MAX(DISTINCT SALARY) FROM EMPLOYEE_PAY_TBL 计算最高的工资例:表DTUDENT_TBL例:表DTUDENT_TBL数学平均值 总成绩最高值 语文成绩最低值 数学成绩总和 表中的数据行数null1. SELECT AVG(maths) FROM STUDENT_TBL 2. SELECT MAX(total) FROM STUDENT_TBL 3. SELECT MIN(comp) FROM STUDENT_TBL 4. SELECT SUM(maths) FROM STUDENT_TBL 5. SELECT COUNT(*) FROM STUDENT_TBL2、字符串函数2、字符串函数UPPER/LOWER(character string):将指定字符串中的小/大写字母换成大/小写字母。 REPLACE [L/R]TRIM L/RPAD INSTR TO_CHAR LENGTH SUBSTR(colunm name,startposition,length) 从指定字符串中取字符。例:例:SELECT UPPER(CITY) FROM EMPLOYEE_TBL SELECT LOWER (CITY) FROM EMPLOYEE_TBL SELECT SUBSTRING(EMP_ID,1,3) FROM EMPLOYEE_TBL SELECT SUBSTRING(EMP_ID,5,3) FROM EMPLOYEE_TBL3、算术函数3、算术函数ABS(绝对值)、SIN、COS、TAN、 EXP(指数)、SQRT(开方)、 POWER(幂) 语法:函数名(表达式) 例:SELECT SQRT(MATHS) * 10 FROM STUDENT_TBL4、日期函数4、日期函数ADD_MONTHS( , ) 加月份后的日期 CURRENT_DATE/SYSDATE CURRENT_TIMESTAMP LAST_DAY 本月最后一天 TO_DATE 日期转换 NEXT_DAY( ,) 指定日期的下星期某天的日期 MONTHS_BETWEEN 两个日期之间的时间差(月份) null 疑问时间TESTTEST雇员表(EMP)请在各自的开发环境中测试以下步骤,并将写出相关语句。 (建表所用的表空间、存储参数、命名 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 皆可以根据各自项目的情况设定) TESTTEST部门表(DEPT)薪酬等级表( SAL_GRADE )TESTTEST相关表说明:雇员表(EMP)、部门表(DEPT)、薪酬等级表( SAL_GRADE ) (见上图) 其中, 雇员表(EMP)中的雇员号 EMPNO 是雇员表的唯一标识,且必须有值 部门表(DEPT)中的部门号DEPTNO是部门表的唯一标识,且必须有值 薪酬等级表(SAL_GRADE)中的GRADE是薪酬等级表的唯一标识,且必须有值 薪酬等级表( SAL_GRADE )中的起薪SAL_FROM和SAL_TO默认分别是1000、2000 表间关系:雇员表(EMP)中的DEPTNO与部门表(DEPT)的DEPTNO关联 雇员表(EMP)中的薪资SAL对应薪酬等级表( SAL_GRADE )中的范围等级 TESTTEST1、建表(根据上述信息建立相关表、键、索引,写出相关语句) 2、根据要求写出下列查询语句: (1)查询在此工作距离当前时间已经超过30年的雇员信息 (雇佣时间HIREDATE) (2)查询其部门所在地LOC不在NEW YORK的所有雇员信息 (且雇员有所属部门) 3、做一个功能函数 名称:FN_TEST_GET_GRADE 功能描述:需要根据雇员的薪资金额判断其等级 注意点:如果薪资低于等级所设置的最低薪则返回为0, 如果薪资高于等级所设置的最高薪则返回10 TESTTEST4、做一个报表视图 名称:VW_TEST_GET_EMP_GRADE_INFO 描述:利用上面的函数FN_TEST_GET_GRADE ,做出下列报表视图(如图) 5、将上面视图转换成存储过程形式 名称:SP_TEST_GET_EMP_GRADE_INFO 功能说明:雇员输入自己的名字,就可以查询对应的信息(显示格式如图) 提示:可以用cursor来接收返回的数据集 nullThank You!
本文档为【ORACLE数据库开发培训】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_560066
暂无简介~
格式:ppt
大小:798KB
软件:PowerPoint
页数:0
分类:互联网
上传时间:2011-08-15
浏览量:31