`
leonranri
  • 浏览: 4192 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论
  • oyprunner: 楼主在吗? 我最近胃很不舒服,特别是吃了饭后那会而很不舒服 现 ...
    胃镜的感受

oracle10g学习笔记之 SQL语言基础

阅读更多
一、语言的分类

1、DDL(Data Definition Language 数据定义语言)
  * CREATE(创建)
      CREATE TABLE、CREATE INDEX
  * ALTER(更改)
      ALTER TABLE、ALTER PROCEDURE
  * DROP(删除)
      DROP TABLE、DROP INDEX

2、DML(Data Manipulation Language 数据操作语言)
  * SELECT(检索数据行)
  * UPDATE(更改表数据)
  * DELETE(删除表中数据行)
  * INSERT(增加表中数据行)

3、DCL(Data Control Language 数据控制语言)
  * GRANT(将权限/角色赋予用户或其他角色)
      将表(TABLE_NAME)的查询权限赋予用户(USER_NAME)
      GRANT SELECT ON TABLE_NAME TO USER_NAME
  * REVOKE(从用户或数据库角色回收权限)
      REVOKE SELECT ON TABLE_NAME FROM USER_NAME

二、常用的系统函数
   在下面会出现DUAL表,这个表是指当没有目标表的时候,通常用在SELECT语句中,它是 Oracle中的一个实际存在的表,任何用户都可以读取
1、字符函数
  * LENGTH()   返回字符长度 包括空格
      SELECT LENGTH('ABCDE') FROM DUAL; 结果:5
  * LENGTHB()  返回字节长度 包括空格
      SELECT LENGTHB('ABCDE汉') FROM DUAL; 结果:7
  * LTRIM()  去掉字符左边空格
      SELECT LTRIM(' ABCDE') FROM DUAL;
      SELECT LENGTH(LTRIM(' ABCDE')) FROM DUAL;
  * RTRIM()  去掉字符右边空格
      SELECT RTRIM('ABCDE ') FROM DUAL;
  * TRIM()  去掉字符左右空格
      SELECT TRIM(' ABCDE ') FROM DUAL;
  * SUBSTR(str,index,len)  截取字符串,从下标index开始,截取长度为len的字符串.
      当下标取0或1的时候,结果一致
      SELECT SUBSTR('ABCD',2,3) FROM DUAL; 结果:BCD
  * SUBSTR(str,index)  和上面的函数差一个参数,但意义完全不同
    当index为正数时 从下标index开始截取,直到字符结尾为止
      SELECT SUBSTR('ABCD',2) FROM DUAL; 结果:BCD
    当index为负数时 从字符结尾开始,向字符起始位置截取index个字符
      SELECT SUBSTR('ABCD',-2) FROM DUAL;结果: CD
  * REPLACE(str,old-str,new-str)  替换字符串中的字符
      SELECT REPLACE('ABCDE','AB','汉字') FROM DUAL; 结果:汉字CDE

2、日期函数
(1)SYSDATE
     SELECT SYSDATE FROM DUAL;
(2)CURRENT_DATE
     SELECT CURRENT_DATE FROM DUAL;
(3)NEXT_DAY(date,week)  返回指定日期date的下一个周几,如果今天为周二,week指定为星期三,那么结果是第二天的日期;如果week指定为周二之前的日期,如周一,那么结果为下周的日期
      SELECT NEXT_DAY(SYSDATE,'星期二') FROM DUAL;

PS:如果想对显示的日期进行格式化,进行下面操作:
   ALTER SESSION SET NLS_DATE_FORMAT='DD-MM-YYYY HH:MI:SS';(在oracle中MI表示分钟)
当退出会话,这种格式化会自动消失

3、转换函数
(1)TO_CHAR(expression,format)  将对应的表达式转换成格式化的字符
     SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD') FROM DUAL;
     SELECT TO_CHAR(10,99.99) FROM DUAL;
(2)TO_DATE(str,format)  将字符串转换成格式化的日期
     SELECT TO_DATE('20091211','YYYYMMDD') FROM DUAL;
(3)TO_NUMBER(str,format)  将字符串转换成相应的数字
     SELECT TO_NUMBER('1400','9999.99') FROM DUAL;

4、聚集函数
(1)MAX(expression)  返回最大值
     SELECT MAX(SAL) FROM EMP;//返回EMP表中字段SAL所有值中的最大值
(2)MIN(expression) 返回最小值
     SELECT MIN(SAL) FROM EMP;//返回EMP表中字段SAL所有值中的最小值
(3)AVG(expression) 返回平均值
     SELECT AVG(SAL) FROM EMP;//返回EMP表中字段SAL所有值的平均值
(4)COUNT(expression) 返回个数
     SELECT COUNT(*) FROM EMP;//返回EMP表中的行数
(5)SUM(expression) 返回所有非空数值的综合
    SELECT SUM(SAL) FROM EMP;//返回EMP表中字段SAL中所有值的和

5、其他函数
(1)NVL(expression,replacevalue)  如果表达式为空,则返回replacevalue
     SELECT A1,NVL(A2,'空值') FROM TAB_NAME;
(2)DECODE(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)
      含义如下:
    IF 条件=值1 THEN  RETURN(翻译值1)
  ELSIF 条件=值2 THEN  RETURN(翻译值2)
  ......
  ELSIF 条件=值n THEN  RETURN(翻译值n)
  ELSE RETURN(缺省值)
  END IF
    /** 判断表DEPT中字段LOC,如果值为NEW YORK,则返回纽约,反之则返回不是纽约,DECODE后跟的是不是纽约是为了显示结果时更加清晰而加的注释    */
    SELECT DECODE(LOC,'NEW YORK','纽约','不是纽约')是不是纽约 FROM DEPT;

三、常用的语句
   
1、GROUP BY 子句
    主要作用是汇总信息,使用分组函数将多组数据集合在一起
    SELECT JOB,SUM(SAL)工资 FROM EMP GROUP BY JOB;
    PS:当使用GROUP BY语句时,SELECT后的字段,必须出现在GROUP BY后面,除非它是以分组函数的形式存在。就像上面语句中SAL字段就是以分组函数的形式出现的。
    举个例子:
    SELECT ENAME,JOB, SUM(SAL)工资 FROM EMP GROUP BY JOB;
    结果:第 1 行出现错误:ORA-00979: 不是 GROUP BY 表达式
    如果想要避免这个错误,有两种方法:
    (1) SELECT COUNT(ENAME),JOB, SUM(SAL)工资 FROM EMP GROUP BY JOB;
    (2) SELECT ENAME,JOB, SUM(SAL)工资 FROM EMP GROUP BY ENAME,JOB;


分享到:
评论

相关推荐

    成功之路:Oracle11g学习笔记.pdf

    在介绍Oracle系统管理的知识以后,将介绍与开发相关的内容(如PL/SQL基础知识、存储过程、函数、包等),并介绍数据库性能调整,《成功之路:Oracle 11g学习笔记》重点介绍SQL语句调优。SQL语句调优是《成功之路:Oracle...

    Oracle 10g 学习笔记

    │ ORACLE学习笔记(二)SQLPLUS基础 - lvhuiqing的专栏 - CSDN博客.mht.lnk │ oracle技巧.txt │ ORACLE的索引和约束详解 - Oracle10g - 沪城篱笆.mht │ oracle里常用命令 - Oracle - 51CTO技术论坛_中国领先的IT...

    Oracle 10g sql 学习笔记

    Oracle 10g SQL 学习笔记涵盖了Oracle数据库的基础知识,包括版本信息、数据库系统特点、关系型数据库结构、SQL语言、操作环境以及常见的数据库操作。以下是对这些知识点的详细说明: 1. **Oracle 9i基础知识**: ...

    成功之路Oracle11g学习笔记

    《成功之路Oracle11g学习笔记》是一本专为初学者设计的Oracle数据库学习资源,旨在帮助读者系统地掌握Oracle11g的基础知识。Oracle11g是Oracle公司推出的一个重要版本,它提供了许多增强的功能和优化,使得数据库...

    Oracle11g学习笔记

    这篇学习笔记将带你深入理解Oracle11g的核心概念和技术,帮助你踏上数据库管理的成功之路。 首先,Oracle11g的基础部分涵盖了数据库安装、配置与管理。在安装过程中,你需要了解如何选择合适的安装选项,如企业版或...

    成功之路 Oracle 11g 中文学习笔记

    成功之路 Oracle 11g 中文学习笔记 专为开发人员编写,先引导开发新手熟悉Oracle环境,然后进入数据库开发,并要掌握项目开发的一些技巧。开发技巧展示是本书一大特色(这一点很值得资深的开发人员借鉴)! 本书共24...

    成功之路:Oracle_11g学习笔记17

    本学习笔记以第17章构筑高速运行的SQL语句为例,详细探讨了Oracle数据库性能调整的相关知识点。 首先,需要明确数据库性能调整的概念和范围。数据库性能调整是通过一系列的方法和技术,改善数据库运行效率和响应...

    ORACLE10G学习笔记

    ORACLE10G学习笔记 包括基础知识 SQl基本语句 安全备份与恢复

    韩顺平j2ee-玩转oracle10g学习笔记

    《韩顺平j2ee-玩转oracle10g学习笔记》是一份全面记录了韩顺平老师关于Oracle 10g数据库系统教学内容的文档。Oracle 10g是Oracle公司推出的一个重要版本,它在数据库管理、性能优化、安全性、可扩展性和灾难恢复等...

    我的Oracle 11g OCP学习笔记

    本学习笔记详细记录了作者在准备Oracle 11g OCP认证过程中的学习心得和实践经验,对于希望深入理解Oracle数据库管理和优化的读者来说,是一份宝贵的资料。 Oracle 11g包含了许多重要的特性和改进,例如: 1. **...

    Oracle SQLServer数据库 学习笔记

    这篇学习笔记将深入探讨这两个系统的概念、特性和应用。 一、Oracle数据库系统 Oracle数据库是由甲骨文公司开发的一款强大、高性能的数据库解决方案。其主要特点包括: 1. **分布式数据库**:Oracle支持多节点的...

    Oracle 11g学习笔记

    本学习笔记将深入探讨Oracle 11g的关键特性和技术,帮助读者掌握其核心知识。 一、Oracle 11g概述 Oracle 11g是Oracle公司推出的数据库版本,主要特点是提升了性能、可用性和安全性。它提供了众多新功能,如自动...

    Oracle10g学习笔记整理

    本知识点主要整理了Oracle10g学习笔记,涉及登录操作、常用命令、SQL语言基础、数据表的创建和管理、用户权限操作等方面。 首先,介绍如何登录Oracle数据库。登录的方法多样,可以使用sqlplus工具,通过不同格式的...

    oracle11g学习笔记

    在学习Oracle 11g的过程中,了解并掌握其基本概念、安装、用户管理、权限和角色、数据对象以及管理工具的使用至关重要。 首先,安装过程虽然在此略过,但在实际操作中,Oracle 11g的安装包括下载安装包、配置环境...

    成功之路:ORACLE11g学习笔记].赵振平.高清版

    电子工业出版社。一本书轻松学会ORACLE 11g。高效的SQL语句,大神实用笔记,拿来就可以做项目

    精通 ORACLE SQL高级编程 学习笔记

    精通Oracle SQL【第2版】ORACLE SQL高级编程【第二版】学习笔记

    oracle10g学习笔记

    ### Oracle 10g 学习笔记:深入理解与配置要点 #### 一、Oracle 10g系统架构与配置参数 Oracle 10g作为一款成熟的关系型数据库管理系统,其内部架构主要由共享内存区域(SGA)和程序全局区(PGA)组成。在学习与...

    最牛逼的Oracle 11g OCP学习笔记

    总结,"最牛逼的Oracle 11g OCP学习笔记"涵盖了Oracle数据库的各个方面,从基础到高级,从理论到实践,为成为合格的Oracle数据库管理员提供了全面的学习路径。通过深入学习和实践,不仅可以获取OCP认证,还能在实际...

Global site tag (gtag.js) - Google Analytics