Oracle入门第二天(上)——基本查询SQL
一、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无需分号)
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;
// 字符串可以是 SELECT 列表中的一个字符,数字,日期。 日期和字符只能在单引号中出现。 每当返回一行时,字符串被输出一次。
去重——同样支持DESTINCT关键字
SELECT DISTINCT department_id from employees;
SQL和SQL PLUS
三、过滤和排序
过滤——使用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进行转义),参见相关随笔
其他逻辑运算符:
排序——使用order by
SELECT * FROM employees ORDER BY salary asc,last_name desc;
支持多列排序:当salary相同时,按照last_name排序
支持指定升降序,ASC 升序(默认),降序 DESC