Oracle入门第二天(上)——基本查询SQL

时间:2022-02-11 11:33:40

一、SQL概述

  起源于标准不再赘述,主要分为DDL,DML,DCL

  ORACLE的数据类型:

数据类型

描述

VARCHAR2(size)

可变长字符数据。VARCHAR2(n)数据类型用于定义可变长度的字符串,其中,n用于指定字符串的最大长度,n的值必须是正整数且不超过32767。

CHAR(size)

定长字符数据。CHAR(n)数据类型用于定义固定长度的字符串,其中,n用于指定字符串的最大长度,n的值必须是正整数且不超过32767。

NUMBER(p,s)

可变长数值数据。NUMBER(precision,scale)数据类型用于定义固定长度的整数和浮点数,其中,precision表示精度,用于指定数字的总位数;scale表示标度,用于指定小数点后的数字位数,默认值为0,即没有小数位数。

DATE

日期型数据。DATE数据类型用于定义日期时间类型的数据,其数据长度为固定7个字节,分别描述年、月、日、时、分、秒。

LONG

可变长字符数据,最大可达到2G。LONG数据类型在其它的数据库系统中常被称为备注类型,它主要用于存储大量的可以在稍后返回的文本内容。

TIMESTAMP

TIMESTAMP数据类型也用于定义日期时间数据,但与DATE仅显示日期不同,TIMESTAMP类型数据还可以显示时间和上下午标记,如“11-9月-2007 11:09:32.213 AM”。

CLOB

字符数据,最大可达到4G。

RAW和LONG RAW

裸二进制数据。LONG RAW数据类型在其它数据库系统中常被称为大二进制类型(BLOB),它可以用来存储图形、声音视频数据,尽管关系型数据库管理系统最初不是为它们而设计的,但是多媒体数据可以存储在BLOB或LONG RAW类型的字段内。

BLOB

二进制数据,最大可达到4G。

BFILE

存储外部文件的二进制数据,最大可达到4G。

ROWID

行地址,十六进制串,表示行在所在的表中唯一的行地址,该数据类型主要用于返回ROWID伪列,常用在可以将表中的每一条记录都加以唯一标识的场合。

  相关介绍,参考MySQL章节http://www.cnblogs.com/jiangbei/p/6696202.html

二、基本查询SELECT语句

    先以SCOTT登录SQL Developer(在工具中直接打开即可,无需安装)

  1.查询所有列——使用 *

select * from employees;

  // 注意分号

    也可以通过ed打开编辑器,这样可以直接在编辑器中进行换行和保存等操作,直接通过 / 进行调用(里面的SQL无需分号)

    Oracle入门第二天(上)——基本查询SQL

  2.查询部分列

select LAST_NAME,EMAIL from employees;

  // 列支持基本运算,包括加减乘除等,这里不再赘述,参考MySQL章节

  别名      

    支持别名——直接在列名后空一格,或者使用AS alias_name,也可以用双引号以便控制别名可以为特殊字符等AS “alias_name”

SELECT LAST_NAME AS "name" FROM employees;

  连接符

    连接符: 把列与列,列与字符连接在一起。 用 ‘||’表示。 可以用来‘合成’列

SELECT LAST_NAME||' job is '||JOB_ID FROM employees;

  Oracle入门第二天(上)——基本查询SQL

  // 字符串可以是 SELECT 列表中的一个字符,数字,日期。 日期和字符只能在单引号中出现。 每当返回一行时,字符串被输出一次。

  去重——同样支持DESTINCT关键字

 SELECT DISTINCT department_id from employees;

  SQL和SQL PLUS

  Oracle入门第二天(上)——基本查询SQL

三、过滤和排序

  过滤——使用where

SELECT SALARY FROM employees WHERE SALARY > 5000

  这里需要注意日期格式的字符串必须使用指定格式:默认的日期格式是 DD-MON月-RR

SELECT * FROM employees WHERE hire_date = '7-6月-1994';

  欲使用正常的yyyy-mm-dd的形式,参考下节的单行函数:to_char()

  其他比较运算符:  这些都与MySQL类似(例如LIKE同样支持ESCAPE进行转义),参见相关随笔

  Oracle入门第二天(上)——基本查询SQL

  其他逻辑运算符:

  Oracle入门第二天(上)——基本查询SQL

  排序——使用order by

SELECT * FROM employees ORDER BY salary asc,last_name desc;

  支持多列排序:当salary相同时,按照last_name排序

  支持指定升降序,ASC 升序(默认),降序 DESC