6.Oracle数据库SQL开发之 SELECT、WHERE以及行标识等
欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/49106893
1. 对单表执行SELECT语句
Select语句也称为查询(query).
从customers表中检索如下。
SQL>select customer_id,first_name,last_name,dob,phone from customers;
CUSTOMER_ID FIRST_NAME LAST_NAME DOB PHONE
----------- ---------- ---------- ---------------------
1 John Brown 01-JAN-65 800-555-1211
2 Cynthia Green 05-FEB-68 800-555-1212
3 Steve White 16-MAR-71 800-555-1213
4 Gail Black 800-555-1214
5 Doreen Blue 20-MAY-70
只需要告诉数据库管理系统软件想要得到什么信息即可。
数据库返回的所有行称为结果集(result set)。
结果集中的字符和日期是左对齐的,数字列时右对齐的。
选择所有列,可以用*来替代。如下:
SQL>select * from customers;
CUSTOMER_ID FIRST_NAME LAST_NAME DOB PHONE
----------- ---------- ---------- ---------------------
1 John Brown 01-JAN-65 800-555-1211
2 Cynthia Green 05-FEB-68 800-555-1212
3 Steve White 16-MAR-71 800-555-1213
4 Gail Black 800-555-1214
5 Doreen Blue 20-MAY-70
2. Where过滤
查询中更可以使用WHERE子句来指定想要检索的行。用户可能只对其中很小的一个子集感兴趣,WHERE 可以放在FROM子句后面。
例如:
SQL>select * from customers where customer_id=2;
CUSTOMER_ID FIRST_NAME LAST_NAME DOB PHONE
----------- ---------- ---------- ---------------------
2 Cynthia Green 05-FEB-68 800-555-1212
3. 理解行标识符
数据库中的每一行都有一个唯一的行标识符,称为ROWID。
ROWID是一个18位数字,采用BASE-64编码。
是例如:
SQL> selectrowid,customer_id from customers;
ROWID CUSTOMER_ID
-----------------------------
AAAWdhAAKAAAACHAAA 1
AAAWdhAAKAAAACHAAB 2
AAAWdhAAKAAAACHAAC 3
AAAWdhAAKAAAACHAAD 4
AAAWdhAAKAAAACHAAE 5
使用DESCRIBE命令查看表的结构时,命令的输出结果中并没有ROWID。该列只有在数据库内部使用,ROWID通常称为伪列。
4. 关于行号
另一个伪列是ROWNUM,返回每一行在结果集中的行号。返回的第一行是1,第二行是2,依次类推。
SQL> selectrownum,customer_id,first_name,last_name from customers;
ROWNUM CUSTOMER_ID FIRST_NAME LAST_NAME
--------------------- ---------- ----------
1 1 John Brown
2 2 Cynthia Green
3 3 Steve White
4 4 Gail Black
5 5 Doreen Blue