Oracle数据库基础应用.ppt
第一章,数据类型,目标,了解 Oracle数据类型,建立Oracle数据库对象的基本步骤。理解数据类型在数据库设计中的地位及使用方法。掌握Oracle常用的数据类型、常用的函数,熟练使用数据类型、约束等创建基本的数据库表,同时深入理解创建同义词、序列的现实意义,同时掌握创建对象需要满足的前提条件(比如:权限的限制)。,概述、专业术语,本章主要介绍Oracle数据库三方面的知识数据类型oracle数据库各种内置函数 在Oracle数据库应用中常用的对象内容 通过本章的学习充分掌握Oracle高层次应用必须的基础知识,为高层次应用打下良好的基础 术语词汇表定义在此章节中使用的术语,Oracle SQL数据类型,Oracle的数据类型主要有:标量类型(Scalar)复合类型(Composite)参照类型(Reference)LOB类型(Large Object)本章在数据类型方面主要掌握基本数据类型:标量数据类型,标量数据类型,Oracle内置函数,主要的函数分类有:数字函数字符函数日期函数转换函数集合函数分组函数等,数字函数,数字函数的输入参数和返回值都是数字型,select ABS(-100)from dual;,ABS(n)返回数字n的绝对值,select FLOOR(15.1)from dual;,FLOOR(n)返回小于等于数字n的最大整数,select CEIL(10.3)from dual;,CEIL(n)返回大于等于数字n的最小整数,数字函数,select MOD(10,3)from dual;,MOD(m,n)返回两个数字相除后的余数,select POWER(-2,3)from dual;,POWER(m,n)返回数字m的n次幂,select ROUND(99.989,2)from dual;,ROUND(n,m)执行四舍五入运算,m为要保留的小数位数,数字函数,select SIN(0.3)from dual;,SIN(n)返回数字n的正弦值(以弧度表示角),select COS(0.5)from dual;,COS(n)返回数字n的余弦值,select LOG(2,8)from dual;,LOG(m,n)返回数字m为底的数字n的对数,字符函数,字符函数输入的参数是字符类型,返回值是数字类型或字符类型,select ASCII(a)from dual;,ASCII(char)返回字符串首字符的ASCII码值,select CHR(56)from dual;,CHR(n)将ASCII码值转为字符,select CONCAT(Good,morning)from dual;,CONCAT(char1,char2)将两个字符串连接,字符函数,select LENGTH(wish)from dual;,LENGTH(char)返回字符串的长度,select LOWER(SQL)from dual;,LOWER(char)将字符串转为小写,select UPPER(sql)from dual;,UPPER(char)将字符串转为大写,字符函数,select SUBSTR(good,1,2)from dual;,SUBSTR(char,m,n)返回字符串中指定位置的子串,select INSTR(wish,s)from dual;,INSTR(char1,char2,n,m)返回子串在字符串中的位置,select TRIM(sql)from dual;,TRIM(char)将字符串左右空格清除,日期和时间函数,select SYSDATE from dual;,SYSDATE 返回系统当前日期,select CURRENT_DATE from dual;,CURRENT_DATE 返回当前会话时区所对应的日期时间,select EXTRACT(year from sysdate)from dual;,EXTRACT 从日期时间值中取得特定数据,日期和时间函数,select ADD_MONTHS(sysdate,1)from dual;,ADD_MONTHS(d,n)返回特定日期时间d加上n个月后的日期时间,select NEXT_DAY(sysdate,星期一)from dual;,NEXT_DAY(d,char)返回指定日期后的第一个指定工作日所对应的日期,select LAST_DAY(sysdate)from dual;,LAST_DAY(d)返回特定日期所在月份最后一天,转换函数,转换函数:将数值从一种数据类型转换为另一种数据类型,select TO_CHAR(n星期一)from dual;,TO_CHAR(char)将NCHAR,NVARCHAR2等转换成数据库字符集数据,select TO_CHAR(sysdate,yyyy-mm-dd)from dual;,TO_CHAR(date,fmt)将日期按指定的日期时间格式转换成字符串,select TO_DATE(2006-09-21,yyyy-mm-dd)from dual;,TO_DATE(char,fmt)将字符串按指定的格式转换成日期时间数据,分组函数,分组函数:执行数据的统计或汇总操作,计算雇员表中雇员的平均工资select AVG(sal)from emp;,AVG(ALL|DISTINCT|EXPR)计算平均值,计算雇员表中雇员的总人数select COUNT(*)from emp;,COUNT(ALL|DISTINCT|EXPR)计算记录的总计行数,分组函数,找出最高工资select MAX(sal)from emp;,MAX(ALL|DISTINCT|EXPR)取得列或表达式的最大值,找出最低工资select MIN(sal)from emp;,MIN(ALL|DISTINCT|EXPR)取得列或表达式的最小值,计算工资总额select SUM(sal)from emp;,SUM(ALL|DISTINCT|EXPR)取得列或表达式的值的总和,其它重要的常用函数,NVL(expr1,expr2):将空转换为实际值。如果expr1是null,则返回expr2,否则返回expr1。注意expr1和expr2类型要匹配,select NVL(sal,10000.00)from emp;,sequence序列号,sequence:自动增长的序列号create sequence 定义,CREATE SEQUENCE empseq-自定义的序列名INCREMENT BY 1-每次加几个,即递增的间隔START WITH 1-从1开始计数 NOMAXVALUE-不设置最大值 NOCYCLE-一直累加,不循环 CACHE 10;,sequence序列号,sequence序列用法CURRVAL:返回 sequence的当前值 NEXTVAL:增加sequence的值,然后返回 sequence 值 在DML中使用序列,INSERT INTO emp VALUES(empseq.nextval,LEWIS,CLERK,7902,SYSDATE,1200,NULL,20);SELECT empseq.currval FROM DUAL;,sequence序列号,使用ALTER SEQUENCE修改序列,ALTER SEQUENCE empseq INCREMENT BY 10 MAXVALUE 10000 CYCLE-到10000后从头开始 NOCACHE;,使用 DROP SEQUENCE删除序列,DROP SEQUENCE empseq,同义词,同义词:是数据库对象,允许给Oracle表取不同的名字,可以大大简化数据库的操作,提高数据库的安全。同义词分为私有同义词和公有同义词。创建同义词语法:,Create public synonym 同义词名 for object,其中object可以是:表(table)、视图(view)、快照(snapshot)、序列(sequence)、过程(procedure)、函数(function)、包(package)、对象类型(object type),同义词,创建私有同义词,create synonym TTC for B.T_trade_current;,通过同义词访问数据表,select*from TTC,delete*from TTC,删除同义词,建立符合完整性约束表,约束主键约束(PRIMARY KEY)外键约束(FOREIGN KEY)唯一约束(UNIQUE)检查约束(CHECK)默认约束(DEFAULT)非空约束(NOT NULL),建立符合完整性约束表,-1.建立部门表Create table dept(deptno number(5)primary key,-主键dname varchar2(20)unique not null,-唯一,非空dnum number(7)check(enum 0)-检查)-2.建立员工表 Create table emp(Empno number(6)primary key,Ename varcahr2(30)not null,Sal number(10,2)check(sal800)Deptno number(5),Constraint fk-deptno foreign key(deptno)References dept(deptno)-外键),总结,牢记Oracle数据库常用数据类型牢记Oracle常用的内置函数数字函数字符函数日期时间函数转换函数熟练使用数据库的基本对象,如序列号、同义词,包括对象的创建、使用、删除等。,