- 在数据库之中如果要进行查询使用的就是SQL-DML语法操作,定义查询的复杂度,本次先使用单张数据表(
emp
)进行查询,单张表如下(固定的语法组成采用大写字母,可更换部分采用小写字母):
② select [distinct] *|列名称 [别名],列名称 [别名],...|数据计算
① from 数据表 [别名]
from
子句确定要查询的数据来源;distinct
:消除重复数据行的显示;- “
*
”:表示杳询该表中所有的数据列的内容;
1 . 案例:查询所有雇员的详细信息(雇员表的所有行和列的内容)
select *
from emp;
2 . 案例:查询所有雇员的编号、姓名、基本月工资,现在肯定不能够使用“*
”,因为使用 *
表示所有列
select empno,ename,sal
from emp;
3. 查询每个雇员的编号、姓名、职位、年收入.
这一过程肯定要进行数学计算,那么一旦要进行数学计算,要考虑先乘除后加减
select empno,ename,job,sal*12
from emp;
- 现在的确是出现了查询结果,但是发现这个查询结果里面在显示列上不好看
- 所以这个时候为了让列信息显示的更加清楚,建议为列设置一个别名:
income
(表示年收入)
select empno,ename,job,sal*12 income
from emp;
- 实际上别名可以使用任何的文字(包括中文):,但建议还是使用英文。
select empno 编号,ename 姓名,job 职位,sal*12 年薪
from emp;
4. 查t每个雇员的编号、姓名、职位、年收入(每个月有200元的饭食补贴、100元的电话补贴、200元的路途补贴、年底可以领到15月薪)
select empno,ename,job,sal*15+(200+100+200)*12 income
from emp;
5. 查询所有的职位信息(职位是 job
字段)
select job from emp;
- 很明显职位的信息一定是重复的,因为一个职位一定会有多个雇员。可以在
select
子句上追加有一个“distinct
”标记:消除重复的数据
- 但是对于
distinct
操作需要注意一个问题:它进行重复数据消除的时候指的是所有的数据列重复的时候才允许消除。如下就消除不了:
- 在之前所进行查询都是查询了数据表中的存在的数据列,实际上也可以直接进行常量的查询。
但是如果要想带有常量查询时,请一定要记住以下原则:
- 如果是字符串则字符串一定要使用单引号(
'
)声明,例如:'hello world;'
- 如果是数字则可以直接编写,例如:
10;
- 如果现在要为常量追加别名,别名不是常量,可以直接编写,不需要追加单引号:
- 在简单查询里面,如果有很多的常量,则可以将常量与列的内容进行组合,使用“||”进行字符串连接处理
6 . 案例:字符串连接
select '雇员姓名:' || ename || ',职位:' || job info
from emp;
- 一旦使用了进行了连接处理之后,那么这些返回的内容就只有一列的数据信息返回
- 总结:
- 简单查询指的就是数据通过一张数据表获得,简单查询里面只有两个基本子句:select 、from;
- from子句优先于 select子句执行,以确定数据的来源,select子句控制的只是显示的数据列。