SELECT 字段名列表 FROM 表名列表 [WHERE 检索条件] [ORDER BY 排序条件]
前2项是必须的,后2项可以省略。
用"*"代替字段列表,表示选择所有列。注意:在程序中可以通过字段名取值, 如不太清楚字段名时,也可以用序号来取字段的数据。
SQL>select
* 2from
STUFF; STDI STDNAME BUSINESS LEAD YMD SALARY COMMISSION DE ---- -------- ---------- ---- ---------- ---------- ---------- -- 7360 张妃 班组长 7902 80.12.17 1800 20 7499 关玉 销售 7698 81.02.20 2600 3000 30 7521 刘蓓 销售 7698 81.02.22 2250 5000 30 7566 江叁讲 科长 7839 81.04.02 2975 20 7654 李斯硼 销售 7698 81.09.28 2250 14000 30 9698 邓笑评 科长 7839 81.05.01 3850 30 7782 孙荃 科长 7839 81.06.09 3450 10 7788 周语 主任 7566 87.06.13 3000 20 7839 鲁素 总经理 81.11.17 9000 10 7844 曹草 销售 7698 81.09.08 2500 3000 30 7876 诸葛靓 班组长 7788 87.03.13 2100 20 7902 穆归营 主任 7566 81.01.03 3000 20 7934 花牧岚 班组长 7782 82.01.03 2300 10 已选择13行。
各字段名之间用","隔开,也可用表达式代替表中并不存在的字段。
SQL>select
STDNAME,substr(YMD,1,2) 2from
STUFF; STDNAME SUBS -------- ---- 张妃 80 关玉 81 刘蓓 81 江叁讲 81 李斯硼 81 邓笑评 81 孙荃 81 周语 87 鲁素 81 曹草 81 诸葛靓 87 穆归营 81 花牧岚 82 已选择13行。
对于很长的字段名,或用表达式作字段名时,一般要指定别名。字段名的别名用as来 指定。注意:1. "as"省略也是正确的。2. 在sql*plus中显示的字段名可能被截取,程序 中一定要用字段名或其别名的全称。
SQL>select
STDNAME as 姓名,substr(YMD,1,2) as 入厂年份 2from
STUFF; 姓名 入厂 -------- ---- 张妃 80 关玉 81 刘蓓 81 江叁讲 81 李斯硼 81 邓笑评 81 孙荃 81 周语 87 鲁素 81 曹草 81 诸葛靓 87 穆归营 81 花牧岚 82 已选择13行。
字符串的连接是用"||",这是运算符号而不是函数。
SQL>select
'my id is ' || STDID,'my name is ' || STDNAME as myname 2from
stuff; 'MYIDIS'||STD MYNAME ------------- ------------------- my id is 7360 my name is 张妃 my id is 7499 my name is 关玉 my id is 7521 my name is 刘蓓 my id is 7566 my name is 江叁讲 my id is 7654 my name is 李斯硼 my id is 9698 my name is 邓笑评 my id is 7782 my name is 孙荃 my id is 7788 my name is 周语 my id is 7839 my name is 鲁素 my id is 7844 my name is 曹草 my id is 7876 my name is 诸葛靓 my id is 7902 my name is 穆归营 my id is 7934 my name is 花牧岚 已选择13行。
有时不需要任何表的参与,例如,取数据库中的系统时间等。这时,FROM后面 的表名用'DUAL'。
SQL>select
SYSDATE 2from
DUAL; SYSDATE ---------- 07-8月 -03