使用SELECT语句检索数据

时间:2023-03-09 16:20:51
使用SELECT语句检索数据

使用SELECT语句检索数据
select指令适用于SQL数据库
SELECT 语句用于从数据库中选取数据。(指令不分大小写,选择的值除名字和一些有特殊意义的字符可不分大小写,from结束时一定要加;)

1.用法
select column_name from table_name;
1
select 标识选择那些列
from 标识从哪个表中选择

实例
SQL> select * from dept ;

DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
1
2
3
4
5
6
7
8
查询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
1
2
3
4
5
6
7
8
9
10
11
查询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
1
2
3
4
5
6
7
8
9
10
11
12
因为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
1
2
3
4
5
6
7
8
9
10
11
12
nvl(,)函数用于规定如何处理nvll值,给null赋一个值

4.定义列别名
给列重新定义个列别名(除数字外,其他字符需加" ")

select column_name as "column"
from table_name;
1
2
给列定义别名时需在原有的列名后加 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
1
2
3
4
5
6
7
8
9
10
11
12
把表格内容用短语的形式输出

6.去重distinct
distinct去除列重复的值

SQL> select distinct job,deptno
2 from emp;

JOB DEPTNO
--------- ----------
MANAGER 20
PRESIDENT 10
CLERK 10
SALESMAN 30
ANALYST 20
1
2
3
4
5
6
7
8
9
10
查看某列的信息去除重复的值

本文只适用于学习oracle数据库的初期阶段
---------------------