例 1-1
SQL> select * from emp;例 1-1 结果
这里的 * 号表示所有的列,它与在select 之后列出所有的列名是一样的。查询语句以分号( ; )结束。emp(employee)是一个员工表。
在平时的使用过程中我们需要的往往只是一张表中的某一条或者某几条数据而已,但上面查询的结果可能看起来比较乱。如果我们指向知道若干个特定列的信息,使用select 语句很容易就可以做到。就好比我们去菜市场买东西,不会把真个市场的东西买完。例如:
买 白菜,猪肉
从 菜市场;
下面我们举个例子:
公司的会计在每次发放工资时,她可能需要确定每个员工的工号(empno)、名字(ename)和工资(sal)。可以使用下面的语句来实现她的要求,例1-2。
例1-2
SQL> SELECT empno,ename,sal FROM emp;
--注意,这里关键字SELECT、FROM,在oracle大小写是没有区分的例1-2 结果
在查询语句中选择指定的列就是关系数据库中所称的投影(Project)
当然,在select关键字后面,你可以选择任意的列然后用逗号隔开,而且也可以根据需要来指定显示的顺序。(一般是按照select后面列名从左到右排序),例1-3
例1-3
SQL>select sal,ename,empno from emp;
例1-3 结果
oracle中规定,组成SQL的关键字是不能缩写的,也就是说,你在查询语句中不能将 select写成sel或者selec等,不能把from写成fro或者fr,也不能把关键字分开书写,即关键字必须原样书写。
当然,可以用大写,或小写,或大小写混写来书写SQL语句,如例1-4
例1-4
SQL>select Sal,EName,EMPNO From Emp;
例1-4 结果
注意:虽然使用没什么问题,但是oracle还是推荐 关键字 使用大写,其他用小写。
我们也许会发现,我们在上面的例子中,sql语句都是一句话写成的,其实我们可以将SQL语句放在多行上,方便我们的阅读。(语句简单的时候看不出,当查询的内容较多时,分行书写的优势就出来了。),如例1-5
例1-5
SQL> SELECT sal,ename,empno 2 FROM emp;
注意:完整的SQL命令叫做语句(statement),玫瑰关键字和后面跟着的选项叫字句(clause),例如,“SELECT * FROM emp;"叫语句,而”SELECT *”叫子句,“FROM emp”也叫子句。
例1-6
SQL> SELECT empno,ename,sal 2 eptno,job 3 FROM emp;
例 1-6 结果
从例1-6的语句中我们可以很容易的看出:第一行和第二行为SELECT子句,第三行为FROM子句。例1-6的查询结果显示了emp表中每个员工的工号(empmo),名字(ename)、工资(sal)、部门号(deptno)和职位(job)。
在文章一开始的时候,已经看到了由于字符集的不同,使日期型的显示有些问题。为了解决这个问题可以使用里1-7的SQL语句。
例1-7
SQL> alter session 2 set NLS_DATE_LANGUAGE = 'AMERICAN';
例1-7 结果
为了使显示跟家清晰,可以使用例1-8和例1-9的SQL*PLUS格式化语句
例1-8
SQL> col hiredate for a15
SQL> col ENAME FOR A8注意:如果对以上SQL*PLUS命令不太理解的话,请不要紧张,后面会慢慢解释
SQL*PLUS默认的列表标题结果显示是:
字符和日期数据为左对齐;
而数字型数据为右对齐。
可以使用例1-10的例子来验证以上的结论。
例1-10
SQL> SELECT empno,ename,sal, 2 hiredate,job 3 FROM emp;
例1-10 结果
无语,写完文章后,保存发布,图没了,非常无语。重新再编辑一边,也发现一些语句的错误,已经改正