Oracle数据库函数

数据库设计过程

选择数据库

  • Oracle 大规模的访问
  • MySQL 小规模的访问
  • SQL server 运行速率较慢

需求分析

  • 收集用户的信息要求、处理要求、安全性与完整性要求。
  • 自顶向下的分析方法,structured analysis (SA方法)
  • 逐层分解的方式分析系统
    • 数据流图(看懂)、ER图、数据字典

概念结构设计

  • 将需求分析得到的用户需求抽象为
  • 设计概念结构的四类方法:自顶向下、自底向上、逐步扩张、混合策略
  • 混合策略:将自顶向下和自底向上相结合,用自顶向下的策略设计一个全局概念结构的框架,以它为骨架集成自底向上策略中设计各局部概念结构。

视图的集成

  • 属性冲突
  • 命名冲突
  • 机构冲突

数据模型的优化

  • Oracle
  • win10 装12C

数据库的实施

  • 用DDL定义数据库结构
  • 组织数据入库
  • 编制与调试应用程序

数据库的运行与维护

Oracle服务器

  • 数据库及其实例

实例名

  • 大写英文字母,不能包含特殊字符。

内存结构

  • 块缓冲区、重做日志缓冲区、共享池、固定SGA、大池、Java池

oracle的使用

安装及连接

  • 不要安装实例方案
  • 创建过程中需要关闭防火墙
  • 启动数据库方式:
    • dos命令:sqlplus 用户名/密码
    • 超级管理员::sqlplus 用户名/密码 as sysdba
    • sqlplus:主机字符串SQLPLUS.EXE
    • dos命令与图形化操作的转换:
  • 查看当前帐号:show user
  • 连接数据库:conn 用户名/密码
  • 加锁、解锁:alter user 用户名 account lock|unlock
  • 断开数据库:disc
  • set linesize 500
  • 设置页面大小:set pagesize 20

编辑缓冲区

  • run:执行缓冲区并显示缓冲区内容
  • /:不显示缓冲区内容
  • list显示缓冲区
  • 修改密码:password 用户名
  • 密码失效:alter user 用户名 PASSWORD expire

文件操作

创建脚本文件
  • save d:\abc.sql
  • select ename,sal from emp;
  • save 文件 append
  • save 文件 replace
载入sql脚本文件
  • 装载:get 文件.sql 展示脚本文件的内容
  • 装载:get 文件.sql nolist 不显示缓冲区内容
  • 脚本文件的装载+执行:start 文件.sql 装载并且执行或者@文件名.sql
  • 如果是.sql结尾的文件,可以不写后缀名,但如果是其他格式,需要写。
注释
  • 单行:--或者remark只能放在头
  • 多行:/**/
清除屏幕
  • clear screen
  • 清除屏幕缓冲区:快捷键SHIFT+DELETE
Clear  SCR
CLEA  SCR
CLE   SCR
CLE  SCREE
CLE   SCRE
帮助指令
help   命令
环境变量的设置与显示
show --显示
set --设置
其他
autocommit:是否自动提交DML语句

autocommit on/off

COLSEP:设置列之间的间隔符。
feedback:显示反馈信息的最低行数,默认值是6。
heading:是否显示列标题。
time:命令提示符前面显示时间。
timing:显示执行slq语句的时间。
环境变量的备份

store set 文件

arraysize:设置从数据库中提取的行数,默认值是15。

SQL语句

1. 查询
SELECT 列名 FROM 表名;
  • 查询所有信息
SELECT empno,ename,job,mg FROM emp;
SELECT * FROM emp;
2. 算术运算符

+,-,*,/

3. 空值:无效的,未定义的。空值不是0
4. 连接
  • ||列与列之间的合并,列与字符串的合并。
5. 去重
  • DISTINCT:只能放在第一列的前面。
6. 排序
SELECT  列名1  【as】  列别名1, 列名2 【as】   列别名2,。。。。  
FROM 表名
ORDER   BY  排序列名1  【ASC】|DESC,  排序列名2 【ASC】|DESC,….;

7. 过滤查询
SELECT 列名1 [as] 列别名1, 列名2 [as] 列别名2,。。。。  
FROM 表名
WHERE 条件
ORDER BY 排序列名1 [ASC]|[DESC], 排序列名2 [ASC]|[DESC],….;
8. 比较运算符
=
>
<
>=
<=
<> ,!=
BETWEEN   AND
IN
9. 模式匹配(LKIE语句)
LIKE 
%: 任意个数的任意字符
_: 表示一个字符
10. 逻辑运算符
AND, OR, NOT
11. 函数
    1. 单行函数:字符、数值、日期、转换、通用
    1. 多行函数:
12. 字符函数
    1. 大小写控制函数(LOWER、upper、initcap)
    1. 字符控制函数(concat、substr、length、instr、lpad、rpad、trim)
  • 数值(round、trunc、mod)
12. 日期 (sysdate)
  • 日期的算术计算:
    • 日期+(-)数字=日期
    • 日期-日期=天数
MONTHS_BETWEEN (date1, date2)
  • 用于计算date1和date2之间有几个月。
SELECT MONTHS_BETWEEN(to_date('2014-1-10','yyyy-mm-dd'), to_date('2014-3-21','yyyy-mm-dd')) MONTHS
ADD_MONTHS(date, integer)
  • ADD_MONTHS返回日期日期加上INT月份。 date参数可以是datetime值或可以隐式转换为DATE的任何值。 INT参数可以是整数或可以隐式转换为整数的任何值。如果始终是该月的最后一天,或者如果结果月份有更多的日期,或者结果月份是日期的月份组成部分的更多日期,则结果是结果月份的最后一天。结果与日期具有相同的日期组件。
SELECT TO_CHAR(
     ADD_MONTHS(hire_date,1),
     'DD-MON-YYYY') "Next month"
     FROM employees 
     WHERE last_name = 'Baer';
Next Month
-----------
07-JUL-1994
NEXT_DAY(date, char)
  • 返回date后面的第一个由char描述的日期,返回值为date类型。char描述的日期必须是Monday, Tuesday, Wednesday, Thirsday, Friday, Saturday, Sunday中的一个。
  • Example: Returns the date of the next Tuesday after February 2, 2001
SELECT NEXT_DAY('02-FEB-2001','TUESDAY') "NEXT DAY"
     FROM DUAL;

NEXT DAY
-----------
06-FEB-2001
LAST_DAY(date)
  • 返回date所在月的最后一天,date是日期类型,返回值也是date类型。
  • Example: The following statement determines how many days are left in the current month.
SELECT SYSDATE,
   LAST_DAY(SYSDATE) "Last",
   LAST_DAY(SYSDATE) - SYSDATE "Days Left"
   FROM DUAL;
 
SYSDATE   Last       Days Left
--------- --------- ----------
30-MAY-01 31-MAY-01          1
  • Example: The following example adds 5 months to the hire date of each employee to give an evaluation date:
SELECT last_name, hire_date, TO_CHAR(
   ADD_MONTHS(LAST_DAY(hire_date), 5)) "Eval Date"
   FROM employees;

LAST_NAME                 HIRE_DATE Eval Date
------------------------- --------- ---------
King                      17-JUN-87 30-NOV-87
Kochhar                   21-SEP-89 28-FEB-90
De Haan                   13-JAN-93 30-JUN-93
Hunold                    03-JAN-90 30-JUN-90
Ernst                     21-MAY-91 31-OCT-91
Austin                    25-JUN-97 30-NOV-97
Pataballa                 05-FEB-98 31-JUL-98
Lorentz                   07-FEB-99 31-JUL-99
. . .
EXTRACT
  • 语法结构:
    在这里插入图片描述
转换函数
  • TO_CHAR
  • TO_DATE
  • TO_NUMBER(expr [, fmt [, 'nlsparam' ] ]):
通用
NVL(expr1, expr2)
  • 如果expr1非空,返回expr1,如果expr1为空,返回expr2
DECODE(expr, search,result[, search, result ]...[, default ])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值