--创建一个accout账户表
CREATE TABLE account(
id NUMBER(9) NOT NULL,
recommender_id NUMBER(9),
login_name VARCHAR2(30) NOT NULL,
login_passwd VARCHAR2(8) NOT NULL,
status CHAR(1) NOT NULL,
create_date DATE DEFAULT SYSDATE,
pause_date DATE,
close_date DATE,
real_name VARCHAR2(20) NOT NULL,
idcard_no CHAR(18) NOT NULL,
birthdate DATE,
gender CHAR(1) NOT NULL,
occupation VARCHAR2(50),
telephone VARCHAR2(15) NOT NULL,
email VARCHAR2(50),
mailaddress VARCHAR2(50),
zipcode CHAR(6),
qq VARCHAR2(15),
last_login_time DATE,
last_login_ip VARCHAR2(15)
);
--表重命名
RENAME account TO t_account;
--增加一列
desc t_account;
ALTER TABLE t_account ADD(bak VARCHAR2(50));
desc t_account;
--修改默认值
ALTER TABLE t_account MODIFY(bak VARCHAR2(40) DEFAULT 'login');
desc t_account;
--删除
ALTER TABLE t_account DROP(bak);
desc t_account;
--插入数据
INSERT INTO t_account(id,login_name,login_passwd,status,create_date,real_name,gender,idcard_no,telephone)
VALUES(1,'souvc','','',TO_DATE('2016-01-28','yyyy-mm-dd'),'daliu','F','',''); SELECT * FROM t_account ;
--更新表数据
UPDATE t_account
SET login_passwd=''
WHERE id=1; SELECT * FROM t_account ;
--删除表数据
DELETE FROM t_account
WHERE id=1;
SELECT * FROM t_account ;
--"||"在数据库中是连接字符串,相当于java中的"+"
--注意和java中的"||"区分。
--例如:
--java中 "hello"+"world" ==> "helloworld"
--DB中 ‘hello’||'world' ==> 'helloworld'
--oracle中 CONCAT('hello','world') ==>'helloworld'
--'think'||'in'||'java' CONCAT(CONCAT('think','in'),'java');
--快速入门SELECT
SELECT * FROM t_account;
SELECT * FROM emp_souvc; --指定查询表中的某几列
SELECT id,status FROM t_account; --只查询特定的列的值
SELECT id,job FROM emp_souvc; --虚表
--DUAL:虚表,没有这么一个表,只为了满足 --SELECT的语法要求。
--我们常用虚表来测试表达式的结果。
--在数据库中,我们想测试某个表达式的结果只能
--使用SELECT语句来实现。
SELECT 'hello'||'world' FROM DUAL SELECT id||':'||job FROM emp_souvc; SELECT CONCAT(CONCAT(id,':'),job)
FROM emp_souvc;
--LENGTH函数
SELECT id,LENGTH(job) FROM emp_souvc;
desc emp_souvc;
--UPPER,LOWER,INITCAP函数
SELECT
UPPER(id),
LOWER(job),
INITCAP(NAME)
FROM emp_souvc;
--TRIM,RTRIM 函数
--参数中from前面只能是单一字符
--若没有from以及前面的字符,则是去除空白
SELECT TRIM('e' from 'eeeeeliteeeeee')
FROM DUAL; SELECT RTRIM('eeeeliteeeee','e')
FROM DUAL;
--LPAD,LPAD补齐函数
--显示20个字符,不够左边不若干空格
--AAAAA
SELECT LPAD(id,20,'$')
FROM emp_souvc; SELECT LPAD('aaaaAAAAAA',5,'$')
FROM DUAL; --作用:要求显示20个字符,若sal的值不足长度,则
--补充若干个'$',以达到20个字符 SELECT RPAD('aaaaAAAAAA',5,'$')
FROM DUAL;
--INSTR函数
SELECT
INSTR('Doctor Who Who Who', 'Who',9,2)
FROM DUAL;
--时间函数的用法
SELECT SYSTIMESTAMP FROM DUAL; --TO_DATE函数的用法
SELECT
TO_DATE( '2008-08-12 22:45:33','yyyy-mm-dd hh24:mi:ss')
FROM
DUAL; --TO_CHAR函数的用法
--在日期格式字符串中,出现的非关键字符或符号的其他字符时,需要使用双引号。
SELECT
TO_CHAR(sysdate, 'yyyy"年"mm"月"dd"日" hh:mi:ss' )
FROM dual; --两个日期可以进行减法操作,差为相差的天数。
SELECT sysdate-BIRTH,id
FROM emp_souvc; --MONTHS_BETWEEN函数
SELECT id,
MONTHS_BETWEEN(SYSDATE, BIRTH)
FROM emp_souvc; --NEXT_DAY函数
--获取距离当前时间最近的周4,若给定的当前时间恰巧是周4,则表示的是下周的周4
SELECT NEXT_DAY(SYSDATE,5)
FROM dual;
--处理空值的函数
--任何值都不能等于null
SELECT *
FROM emp_souvc
WHERE gender IS NOT NULL; --NVL函数的作用:将null替换为给定值
SELECT name,NVL(gender,'M')
FROM emp_souvc; SELECT id,job,NVL(gender,0)
FROM emp_souvc;

有点类似java这种函数吧:

public Object nvl(Object e1,Object e2){
if(e1==null){
return e2;
}else{
return e1;
}
}
SELECT id,SALARY+NVL(SALARY,0)
FROM emp_souvc; SELECT SALARY,NVL2(SALARY,'有奖金','没奖金')
FROM emp_souvc;

oracle学习笔记系列------oracle 基本操作之基本函数的用法的更多相关文章

  1. oracle学习笔记系列------oracle 基本操作之表的增删改查

    --创建一个表 CREATE TABLE employee_souvc( id ), name ), gender ), birth DATE, salary ,), job ), deptno ) ...

  2. oracle学习笔记系列------oracle操作例子的专用表

    CREATE TABLE dept( deptno ), dname ) , loc ) ) ; CREATE TABLE emp( empno ), ename ), job ), mgr ), h ...

  3. 吴裕雄--天生自然 oracle学习笔记:oracle理论学习详解及各种简单操作例子

    1. 数据库的发展过程 层次模型 -->网状模型 -->关系模型 -->对象关系模型 2. 关于数据库的概念 DB:数据库(存储信息的仓库) DBMS:数据库管理系统(用于管理数据库 ...

  4. 6. oracle学习入门系列之六 模式

    oracle学习入门系列之六 模式 上篇咱们学习记录了ORACLE数据库中的数据库结构.内存结构和进程等.篇幅 蛤蟆感觉偏多了.这次要休整下,每次笔记不宜太多,不然与书籍有何差别. 我们要保证的是每次 ...

  5. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  6. 7.oracle学习门户系列七---网络管理和配置

    oracle学习门户系列七 网络管理和配置 们学习了模式和用户.包含模式定义以及模式的作用. 这篇我么来看下ORACLE数据库中的网络管理和配置.只是这篇好像和上篇没有继承啊.这怎么看? Ok,事实上 ...

  7. oracle学习笔记第一天

    oracle学习笔记第一天 --oracle学习的第一天 --一.几个基础的关键字   1.select select (挑选) 挑选出显示的--列--(可以多列,用“,”隔开,*表示所有列),为一条 ...

  8. Oracle学习笔记——点滴汇总

    Oracle学习笔记——点滴汇总 http://www.botangdb.com/ Oracle GI = Grid Infrastructure = ASM + Cluster

  9. Oracle学习笔记之四sp1,Oracle 11g的常用函数

    从Oracle学习笔记之四,SQL语言入门中摘出来的,独立成一章节 3.1 字符类函数 ASCII(c)和CHR(i)    分别用于返回一个字符的ASCII码和返回给定ASCII值所对应的字符. C ...

随机推荐

  1. 解决SqlPlus前台程序出现中文乱码的问题

    在使用sqlplus的过程中,常常会遇到某一台机器在访问oracle数据库时中文显示乱码的问题,实际上这是因为客户端字符集和服务器字符集不一致导致的.在实际使用中,服务器字符集,客户端字符集和操作系统 ...

  2. 算法:冒泡排序(python版)

    1.将n个元素从大到小排序后,选择第k个大的元素 #!/usr/bin/env python #coding -*- utf:8 -*- #冒泡排序选第k个元素 import random impor ...

  3. 算法:求幂(python版)

    分别用迭代方法和递归方法实现求幂迭代方法的时间复杂度为O(n),空间复杂度为O(1)递归方法1的时间复杂度为O(logn),空间复杂度为O(logn)递归方法2的时间复杂度为O(n),空间复杂度为O( ...

  4. 我们的相识,总是那么巧。-------eclipse中搭建maven项目

    一.我们就来谈下eclipse中搭建maven web工程的步骤!虽然就是一个简单的例子,但是过程是很艰辛的. 首先我们看一下eclipse的封面,下面就是刚打开的华丽封面哦 其次我安装了eclips ...

  5. Nuget很慢,我们该怎么办

    在VS中给项目添加程序已经采用NuGet 十分方便 不过很多时候速度很慢,一直显示“正在检索信息” 其实直接使用程序包管理控制台,速度就会好很多 如果命令不太会写,安装包名不是确认,可以先登录 htt ...

  6. Ionic 今天发布了Windows 桌面版的IDE Ionic Lab

    Ionic简介: Ionic 是一个强大的 HTML5 应用程序开发框架,号称 Advanced HTML5 Hybrid Mobile AppFramework 是 AngularJS 移动端解决方 ...

  7. CSS尺寸单位 % px em rem 详解

    在CSS中,尺寸单位分为两类:相对长度单位和绝对长度单位.相对长度单位按照不同的参考元素,又可以分为字体相对单位和视窗相对单位.字体相对单位有:em.ex.ch.rem:视窗相对单位有:vw.vh.v ...

  8. ASP.NET使用jQuery AJAX实现MD5加密实例

    一个asp.net ajax例子,使用jquery,实现md5加密.在.NET 4.0,Visual Studio 2010上成功运行. 效果体验:http://tool.keleyi.com/t/m ...

  9. windows 安装 go语言

    下载地址:http://www.cnblogs.com/osfipin/p/4856839.html. 官方教程说明: Windows 对于Windows用户,Go项目提供两种安装选项(从源码安装除外 ...

  10. SAP用户权限解剖及自修改

    通常BASIS会使用PFCG做权限管理,时你保存时会产生一个系统外的profile name,记得SU01时用户有profile 和role两栏位吗?它们的关系如何呢? 首先明白几个概念.1.acti ...