sql 简单查询,限定查询及排序
SQL(structured Query Language 结构化查询语言)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
SQL语言包含4个部分:
※数据定义语言(DDL),例如:CREATE、DROP、ALTER等语句。
※数据操作语言(DML),例如:INSERT、UPDATE、DELETE语句。
※数据查询语言(DQL),例如:SELECT语句。
※数据控制语言(DCL),例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句。
简单查询
简单的SQL查询语句的语法格式是:
Select *|字段列表别名
From 表名称;
-- 查询全部列 select * from emp; -- 查询指定列 select empno, ename, job from emp; -- 指定列别名 select empno 编号, ename 姓名, job 工作 from emp; select empno as 编号, ename as 姓名, job as 工作 from emp; -- 去重复结果 select job from emp; select distinct job from emp; -- 连接列结果 select '编号是' || empno || '雇员的' || '姓名是:'|| ename || ', 工作是:'|| job from emp; -- 简单的四则运算 select sal*12 年薪 from emp;
限定查询
限定查询的语法格式为
Select{distinct}*|具体的列名 别名
From 表名称
{Where 条件语句};
-- 查询出工资大于1500 的所有员工 select * from emp where sal > 1500; -- 查询每月可以得到奖金的雇员信息 select * from emp where comm is not null; -- 查询没有奖金的职工信息 select * from emp where comm is null; -- 查询出基本工资大于1500,并且可以领取奖金的职工信息 select * from emp where sal > 1500 and comm is not null; -- 查询出基本工资不大于1500,同时不可以领取奖金的职工的信息 select * from emp where sal <= 1500 and comm is null; -- not 可以对条件取反,把条件真变为假,把假变为真 select * from emp where not(sal > 1500 or comm is not null); -- 查询基本工资大于等于1500,但是小于等于3000的职工的全部信息 select * from emp where sal >= 1500 and sal <= 3000; -- between 关键字,sql中提供了一个专门的指定范围的过滤语句 BETWEEN … AND … 格式为:BETWEEN 最小值 AND 最大值 select * from emp where sal between 1500 and 3000; -- 查询出生在1981年1月1日到12月31日的雇员信息 select * from emp where hiredate between date '1981-01-01' and date '1981-12-31'; select * from emp where hiredate between '1-1月-81' and '31-12月-81'; select * from emp where hiredate between '1-1月-1981' and '31-12月-1981'; -- 查询出姓名是SMITH 的雇员信息 select * from emp where ename = 'SMITH'; -- 查询出雇员编号是 7369,7499,7521的雇员的信息 select * from emp where empno = 7369 or empno = 7499 or empno = 7521; -- in 关键字 in(val1, val2, val3 ... valn) select * from emp where empno in (7369, 7499, 7521); -- 查询出雇员编号不是7369,7499,7521的雇员的信息 select * from emp where empno not in(7369, 7499, 7521); -- 查询出姓名为 SMITH,ALLEN,KING的雇员信息 select * from emp where ename in ('SMITH','ALLEN', 'KING'); -- 查询出雇员第二个字母为“L”的雇员信息 select * from emp where ename like '_L%'; -- 查询出雇员姓名以字母“S”开头的雇员信息 select * from emp where ename like 'S%'; -- 查询出雇员姓名包含字母“S”的雇员信息 select * from emp where ename like '%S%'; -- 查询入职年份为81年的雇员信息 select * from emp where hiredate like '%81'; -- 查询工资值中包含数字5的雇员信息 select * from emp where sal like '%5%'; -- 查询所有部门号不是10的雇员信息 select * from emp where deptno <> 10; select * from emp where deptno != 10;
排序
排序的语法格式为
Select {distinct} *|具体的列 别名
From 表名称
{Where 条件}
{Order By 排序字段1,排序字段2 ASC|DESC}
-- 按工资升序对雇员信息进行排序 select * from emp order by sal asc; -- 按工资降序对雇员信息进行排序 select * from emp order by sal desc; -- 检索出部门号为30的雇员信息,并按照工资降序,工资相同则按照入职日期升序排列 select * from emp where deptno = 30 order by sal desc, hiredate asc; select * from emp where deptno = 30 order by sal desc, hiredate; select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where deptno = 30 order by 6 desc, 5 asc; select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where deptno = 30 order by 6 desc, 5; select * from emp where deptno = 30 order by 6 desc,5;
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。