查询语句 select [单表操作]

Posted cao-yin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了查询语句 select [单表操作]相关的知识,希望对你有一定的参考价值。

---SQL单表简单查询
1、单表操作&别名的使用

1  --查询表的所有数据:select * from 表名;通配符*代表所有
2  select * from emp;

技术分享图片

1 --查询表中指定字段的值:select 字段名1,字段名2,... from 表名;
2  select empno,ename,job,sal,hiredate,comm from emp;

技术分享图片

1 --查询结果中的字段使用别名:作用[方便查看查询结果]
2      --在字段名后使用关键字 字段名 as "别名"
3      --注意:as关键字可以缺省不写,别名中没有特殊的字符双引号也可以缺省
4  --方式-1
5  select empno 员工编号 from empno;
6  --方式-2
7  select empno "员工编号",ename "员工姓名" from emp;
8  --方式-3
9  select empno as "员工编号",ename as "员工姓名",job as "工作职位" from emp;

技术分享图片
2、单表查询连接符 & 去除重复 & 排序 & 字段逻辑运算

1  --连接符 SQL语句中的连接符 || ,使用在select 和 from 之间,拼接好的连接在结果集中作为一个新的字段显示,可使用别名优化字段显示。
2      --select ‘字符-1‘|| 字段名-1||‘字符-2‘|| 字段名-2 from 表名;
3  select 职工编号为:|| empno || ,的名字是|| ename as "信息表" from emp;

技术分享图片

1  -- 去除重复 distinct [规则:按行去除,多行数据完全相同取其一]
2  select distinct job from emp;--[工种]
3  select distinct job,mgr from emp;

技术分享图片

1 --排序 order by [默认升序:asc(可省略不写),降序:desc]
2  --单字段排序
3  select * from emp order by empno desc;--[按照职工编号降序]
4  select ename,job,sal,comm from emp order by sal desc;
5  --多字段排序
6  --select * from 表名 order by 字段名1 ,字段名2...;
7  --[先按字段名1进行排序,字段名1相同的在安字段名2进行排序...]
8  select * from emp order by empno,ename;
1  --字段的逻辑运算
2  select ename,job,comm,sal,sal+1000 as "所有人的薪水+1000",sal + comm "薪水+奖金" from emp;

技术分享图片
3、单表查询&单条件where子句
--select 字段名,字段名,...from表名 where 筛选条件
--单筛选条件
--使用运算符进行筛选 =,>,>=,<,<=,<> 单个条件中
--注意:如果条件中的值为字符,必须使用单引号括起来

 1 --查询所有的员工的工资信息
 2 select empno,ename,sal+comm as 薪资 from emp
 3 --查询SMITH的个人信息
 4 select * from emp where ename=SMITH
 5 --查询SMITH的薪资信息,逻辑运算符=
 6 select empno,ename,sal,sal+comm from emp where ename=SMITH
 7 --查询工资大于1000的员工信息,逻辑符>
 8 select * from emp where sal>2000
 9 --查询工资不等于3000的员工信息
10 select * from emp where sal<>3000 order  by sal

小练习-1

技术分享图片
 1 --查看工资等于1250的员工信息
 2 select *from emp where sal=1250
 3 --查看工作等于CLERK的员工信息
 4 select * from emp where job=CLERK
 5 --查看工资大于1250的员工姓名和工作
 6 select ename,job from emp where sal>1250
 7 --查看工资大于等于2000的员工信息
 8 select * from emp where sal>=2000;
 9 --查看工资小于等于2000的员工信息;
10 select * from emp where sal<=2000;
11 --查看工资不等于1500的员工信息
12 select * from emp where sal<>1500;
13 --查看入职日期在81年后的员工信息
14 --注意:oracle默认的日期格式为 日-月-年,示例‘03-1月-1981‘
15 select * from emp order by hiredate
16 select * from emp where hiredate>=01-1月-1981 order by hiredate
View Code

4、where子句关键字
--多条件筛选(where子句关键字:and,or,like,is null,is not,in,betwwen and )

1 --查询工资在2000-3000之间的员工信息
2  --使用and关键字,多条件同时成立
3 select * from emp where sal>=2000 and sal<3000;
4  --使用between and 【闭区间】
5 select * from emp where sal between 2000 and 3000;
1 --查询工作为SALESMAN,ANALYST,MANAGER的员工信息
2  --使用or 关键字进行或条件的筛选查询
3 select * from emp where job=SALESMAN or job=ANALYST or job=MANAGER order by job;
4 --使用in关键字也可以进行筛选,但in中的内容只能为一个字段
5 select * from emp where job in(SALESMAN,ANALYST,MANAGER);

模糊查询:like
--查询姓名中包含S的,以S开头的,S结尾的,第二个字符A的

 1 -- % 号表示任意多个的任意字符
 2 --select * from 表名 where 字段名 like ‘%字符%‘:查询包含指定字符的数据
 3 select * from emp where ename like %S%;--包含S
 4 
 5 --select * from 表名 where 字段名 like ‘字符%‘:查询以指定字符开头的数据
 6 select * from emp where ename like S%;--以S开头
 7 
 8 --select * from 表名 where 字段名 like ‘%字符‘:查询包含指定字符结尾的数据
 9 select * from emp where ename like %S;--以S结尾
10 
11 --select * from 表名 where 字段名 like ‘_字符%‘:查询指定位置为指定字符的数据
12  -- _表示一个任意字符
13 select * from emp where ename like _A%;--第二个字符A的

特殊情况:escape:

select * from emp where ename like %\\_% escape ;--名字包含_
1 --查询有奖金的员工信息
2  --is null 字段值为null
3  --select * from 表名 where 字段名 is null;=>字段值为null
4  --select * from 表名 where 字段名 is not null;=>字段值不为null
5  --多个条件使用and关键字进行连接
6 select * from emp where comm is not null and comm>0;

 










以上是关于查询语句 select [单表操作]的主要内容,如果未能解决你的问题,请参考以下文章

单表查询

单表查询

SQL数据查询之——单表查询

python — 表的操作

java进阶|MySQL数据库系列文章之单表操作SQL语句

Oracle的单表查询语句