怎样在SQL语句中使用列的别名?
以上三名查询的结果都是一样的,只是第一句的结果和后面两句稍有不同,注意三名的区别,以明确别名的使用。
(注意:如果别名是两个以上的单词,要用双引号将其引起来,而单个单词则不用。)
连接运算符的使用。
连接运算符由两个竖线(||)表示,它把一个或者多个列或字符串连接在一起。
使用Distinct去掉重复的行。
使用条件以对查询的结果进行限定
利用BETWEEN…AND…对查询结果进行限定
(注意:在WHERE子句中的字符串是区分大小写的,在WHERE子句中字符和日期型数据要用单引号括起来,但数字型不用,日期型数据默认的格式,在Oracle9i之前的版本中为“DD-MON-YY”,在Oracle9i中为“DD-MON-RR”。)
使用IN比较运算符进行查询列的限定
也就是说,从JOB列中挑选出IN列表中的值。
使用LIKE比较运算符进行模糊查询
EMPNO ENAME SAL JOB
---------- ---------- ---------- ---------
7499 ALLEN 1600 SALESMAN
7521 WARD 1250 SALESMAN
7654 MARTIN 1250 SALESMAN
7844 TURNER 1500 SALESMAN
LIKE运算符可以进行通配查询。
LIKE运算符可以使用以下两个通配符“%”和“_”。其中:
“%”代表零个或多个字符。
“_”代表 一个且只能是一个字符
使用ORDER BY子名对查询结果进行排序
EMPNO ENAME SAL
---------- ---------- ----------
7844 TURNER 1500
7499 ALLEN 1600
7782 CLARK 2450
7698 BLAKE 2850
(注:ORDER BY子句默认的排序顺序为升序,也就是由小到大)
如果想要改变ORDER BY的默认排序顺序,将其改变为由大到小,则需要在后面加“DESC”;如下所示。
EMPNO ENAME SAL
---------- ---------- ----------
7839 KING 5000
7788 SCOTT 3000
7902 FORD 3000
7566 JONES 2975
结果按SAL由大到小排列
在ORDER BY子句中使用别名或者表达式
在ORDER BY中使用别名和表达式,只需要在 ORDER BY后面加入相应的别名和表达式即可。如下所示:
Select empno AS “Employee Number”
Ename name from emp;
Select empno AS EmployeeNB
Ename name from emp;
Select empno EmployeeNB
Ename name from emp;
以上三名查询的结果都是一样的,只是第一句的结果和后面两句稍有不同,注意三名的区别,以明确别名的使用。
(注意:如果别名是两个以上的单词,要用双引号将其引起来,而单个单词则不用。)
连接运算符的使用。
SQL> select ename ||' annual salay is '|| sal "Employee's Salary" from emp;
以下是查询结果
Employee's Salary
--------------------------------
SMITH annual salay is 800
ALLEN annual salay is 1600
WARD annual salay is 1250
JONES annual salay is 2975
MARTIN annual salay is 1250
查询语句的意思是,将ename 和sal用annual salay is 连接起来,再将结果以别名“Employee’s salafy”命名。
连接运算符由两个竖线(||)表示,它把一个或者多个列或字符串连接在一起。
使用Distinct去掉重复的行。
SQL> select distinct deptno from emp;
DEPTNO
----------
10
20
30
(注:Distinct加在Select后面)
使用条件以对查询的结果进行限定
SQL> select empno,ename,sal from emp
2 where sal>1500;
EMPNO ENAME SAL
---------- ---------- ----------
7499 ALLEN 1600
7566 JONES 2975
7698 BLAKE 2850
查询工资大于1500的数。
利用BETWEEN…AND…对查询结果进行限定
SQL> select empno ,ename,sal from emp
2 where sal between 1500 and 2000;
EMPNO ENAME SAL
---------- ---------- ----------
7499 ALLEN 1600
7844 TURNER 1500
(注意:在WHERE子句中的字符串是区分大小写的,在WHERE子句中字符和日期型数据要用单引号括起来,但数字型不用,日期型数据默认的格式,在Oracle9i之前的版本中为“DD-MON-YY”,在Oracle9i中为“DD-MON-RR”。)
使用IN比较运算符进行查询列的限定
SQL>
1 select empno ,ename,sal ,job
2 from emp
3* where job in ('CLERK')
EMPNO ENAME SAL JOB
---------- ---------- ---------- ---------
7369 SMITH 800 CLERK
7876 ADAMS 1100 CLERK
7900 JAMES 950 CLERK
7934 MILLER 1300 CLERK
只要某一记录的JOB列的值等于IN列表中的值,该记录就会显示出来。
也就是说,从JOB列中挑选出IN列表中的值。
使用LIKE比较运算符进行模糊查询
SQL> select empno,ename,sal,job
2 from emp
3 where job like 'SAL%';
EMPNO ENAME SAL JOB
---------- ---------- ---------- ---------
7499 ALLEN 1600 SALESMAN
7521 WARD 1250 SALESMAN
7654 MARTIN 1250 SALESMAN
7844 TURNER 1500 SALESMAN
LIKE运算符可以进行通配查询。
LIKE运算符可以使用以下两个通配符“%”和“_”。其中:
“%”代表零个或多个字符。
“_”代表 一个且只能是一个字符
使用ORDER BY子名对查询结果进行排序
SQL> select empno, ename,sal
2 from emp
3 where sal>=1500
4 order by sal;
EMPNO ENAME SAL
---------- ---------- ----------
7844 TURNER 1500
7499 ALLEN 1600
7782 CLARK 2450
7698 BLAKE 2850
(注:ORDER BY子句默认的排序顺序为升序,也就是由小到大)
如果想要改变ORDER BY的默认排序顺序,将其改变为由大到小,则需要在后面加“DESC”;如下所示。
SQL>
1 select empno, ename,sal
2 from emp
3 where sal>=1500
4* order by sal desc
EMPNO ENAME SAL
---------- ---------- ----------
7839 KING 5000
7788 SCOTT 3000
7902 FORD 3000
7566 JONES 2975
结果按SAL由大到小排列
在ORDER BY子句中使用别名或者表达式
在ORDER BY中使用别名和表达式,只需要在 ORDER BY后面加入相应的别名和表达式即可。如下所示: