使用SELECT语句检索数据
select指令适用于SQL数据库
SELECT 语句用于从数据库中选取数据。(指令不分大小写,选择的值除名字和一些有特殊意义的字符可不分大小写,from结束时一定要加;)
1.用法
select column_name from table_name;
select 标识选择那些列
from 标识从哪个表中选择
实例
SQL> select * from dept ;
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
查询dept表中每一行的信息(这里的*是每一列的意思)
2.算数表达式
使用算术运算符可以创建包含数字和日期数据的表达式(优先级和数学一样,先乘除后加减,有括号先算括号)
操作符 | 描述 |
---|---|
+ | 加号 |
- | 减号 |
* | 乘号 |
/ | 分号 |
实例
SQL> select sal,sal+2000,ename
2 from emp;
SAL SAL+2000 ENAME
---------- ---------- ----------
800 2800 SMITH
1600 3600 ALLEN
1250 3250 WARD
2975 4975 JONES
1250 3250 MARTIN
2850 4850 BLAKE
查询emp表中sal,sal+2000,ename的信息
3.空值null
null是一个未知的值,不是0也不是空格(运算时加null是没有结果的)
实例
SQL> select ename,sal,12*sal+comm
2 from emp;
ENAME SAL 12*SAL+COMM
---------- ---------- -----------
SMITH 800
ALLEN 1600 19500
WARD 1250 15500
JONES 2975
MARTIN 1250 16400
BLAKE 2850
CLARK 2450
因为null的未知所以不会输出(若是想计算null这里我们用一个函数nvl( ,)去给nul一个值)
SQL> select ename,sal,12*sal+ nvl(comm,0)
2 from emp;
ENAME SAL 12*SAL+NVL(COMM,0)
---------- ---------- ------------------
SMITH 800 9600
ALLEN 1600 19500
WARD 1250 15500
JONES 2975 35700
MARTIN 1250 16400
BLAKE 2850 34200
CLARK 2450 29400
nvl(,)函数用于规定如何处理nvll值,给null赋一个值
4.定义列别名
给列重新定义个列别名(除数字外,其他字符需加" ")
select column_name as "column"
from table_name;
给列定义别名时需在原有的列名后加 as ""或者直接空格加新的列名(只是临时定义,不是永久保存)
5. || 连接符
|| 把列与列连接起来,除数字以外字符需要加’’(||前后都要加空格)
SQL> select 'my name is ' || ename
2 from emp;
'MYNAMEIS'||ENAME
---------------------
my name is SMITH
my name is ALLEN
my name is WARD
my name is JONES
my name is MARTIN
my name is BLAKE
my name is CLARK
把表格内容用短语的形式输出
6.去重distinct
distinct去除列重复的值
SQL> select distinct job,deptno
2 from emp;
JOB DEPTNO
--------- ----------
MANAGER 20
PRESIDENT 10
CLERK 10
SALESMAN 30
ANALYST 20
查看某列的信息去除重复的值