SQL select 及相关操作
SQL是用于访问和处理数据库的标准的计算机语言,我们所使用的的是Oracle SQL
一个数据库通常包含一个或多个表,每个表有一个名字表示,下图即为一个名为“emp”的表,接下来的操作都将基于以下的表进行
SQL select 及相关操作
下述为select语法,注意:SQL对大小写不敏感
- SELECT 列名称 FROM 表名称 - select * from 表名称
- SQL支持数学表达式 如
select ename,sal+300 from emp
- SQL可以使用" || "字段合并 如
select ename || job as comployee from emp
- SQL 可以使用 select distinct 语句 删除重复字段 如
select distinct job from emp
- SQL可以使用 select where 子句 进行条件删除 如
select * from emp where sal = 800 select * from emp where comm is null //is 只能跟null一起使用
操作符 | 描述 |
---|---|
= | 等于 |
<> | 不等于 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
BETWEEN | 在某个范围内 |
LIKE | 搜索某种模式 |
左列运算符可以在Where子句中使用:
在进行条件之筛选时,注意使用单引号引用文本值,而数值不需要符号引用,如
select * from emp where job = 'SALESMAN'
在进行日期的比较时,必须使用单引号围绕,注意Date的特殊存储形式,如:
select * from emp where hiredate = '20/2月/81'
- SQL支持特殊的比较运算符:between…and… ,in,like(模糊搜索)如:
select * from emp where sal between 1000 and 1500 select * from emp where job in ('CLERK','SALESMAN') select * from emp where ename like '%S%'
【通配符】
在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。SQL 通配符必须与 LIKE 运算符一起使用。
在SQL中,可使用
通配符 描述 % 替代一个或多个字符 _ 仅替代一个字符
- SQL支持使用ESCAPE标识符和'@'配合使用 实现对“%”和“_”的查找,如
select * from emp where ename like 'MAN@_%' escape '@'
- SQL支持使用逻辑运算符:AND、OR和NOT,如:
select * from emp where job = 'SALESMAN' AND hiredate = '20/2月/81'
优先级顺序:算术运算符 > 连接运算符 > 比较运算符 > 特殊比较运算符 > not > and > or ()级别最高
【例题】
select ename,job,sal from emp where sal > 2000 AND job ='MANAGER' OR job ='SALESMAN' select ename,job,sal from emp where sal > 2000 AND (job ='MANAGER' OR job ='SALESMAN') select Deptno,job,sal from emp where sal between 3000 and 5000 select ename,hiredate,job from emp where hiredate between '01-1月-81' and '31-12月-81' AND job like 'SALES%' select ename,job,Deptno from emp where deptno in (10,20) AND (job='SALESMAN' OR job = 'MANAGER')
- SQL支持使用ORDER BY语句进行排序,语法结构如下
-
- 可以按照列名、表达式、列别名、结果集的列序号排序
- ASC: 升序,默认值 DESC: 降序
- ORDER BY 子句必须写在SELECT语句的最后
- 多关键字排序,直接在by写多关键字,用逗号隔开
- 排序也可以按列序号替代
如:
select ename,job,sal from emp order by sal select ename,job,sal from emp order by Job,sal DESC