ToB企服应用市场:ToB评测及商务社交产业平台

标题: 数据库中基于单表的简单查询 [打印本页]

作者: 一给    时间: 昨天 20:19
标题: 数据库中基于单表的简单查询
1.基于单表的简单查询

1.1 语法

   select 列名1 别名1,列名2 别名2,…… from 表名;
  示例:----使用的是test数据库中的emp雇员表
1.2 用法


   select concat('雇员编号为',empno,'的雇员,姓名为',ename,'职位为',job) from emp;
  
例:查询雇员表中姓名和年薪?
   select ename,(sal+comm)*12 年薪 from emp; select ename,(sal+ifnull(comm,0))*12 年薪 from emp; -- 使用ifnull()
  提示:在mysql中,null与任何值进行四则运算,结果都为null

例:查询所有职位?
   select distinct job from emp; select ename job from emp;-- 有重复的行(记录)才可以去掉
  小结:
投影:从源表选择列(字段、属性)
2、限定查询

语法:
   select 字段名1 别名1,字段名2 别名2,…… from 表名 where 条件;
  2.1 关系运算符

> >= <

示例:
例:查询工资大于1500元雇员信息?
   select * from emp where sal>1500;
  示例:
例:查询雇员编号不是7369的雇员信息?
   select * from emp where empno != 7369;
  例:查询姓名是smith的雇员编号,姓名,工资,入职时间?
   select empno,ename,sal,hiredate from emp where ename='smith';
  提示:
字符型常量在使用时需要家定界符 "" ''
2.2 null或not null

   null空值:尚未确定的值,不确定的值
  例如:查询尚未确定奖金的雇员信息?
   select * from emp where comm is null; select * from emp where comm is not null;
  2.3 and

例如:查询基本工资大于1000,而且可以获取奖金的雇员姓名,工资和奖金。
   select ename,sal,comm from emp where sal>1000 and comm is not null;
  2.4 or

例如:查询从事贩卖工作,或工资大于2000的雇员信息?
   select * from emp where job ="seleman" or sal>=2000;
  2.5 not

例如:查询从事非贩卖工作,而且工资小于1500的雇员编号,姓名,职位,工资和入职时间。
   select empno,ename,job,sal,hiredate from emp where (sal<1500)job!="salesman";
  留意:
(优先级)not>and
2.6 between...and...在...与...之间(包含临界值)

   select * from emp where sal>1500 and sal<3000 select * from emp where sal between 1500 and 3000; --包含临界值 select * from emp where sal between 1501 and 2999;
  查询1981年入职的雇员编号,姓名,入职时间,所在部门编号?
select empno,ename,hiredate,deptno from emp where hiredate between"1981-01-01" and "1981-12-31"; select empno,ename,hiredate,deptno from emp where hiredate>="1981-01-01" and hiredate<="1981-12-31";
留意:日期必须使用单撇号或双撇号括起来
2.7 in或not in---属于或不属于

例如:查询编号为7369 7499 7788的雇员信息
   select * form emp where empno=7369 or empno=7499 or empno=7788; select * from emp where empno in(7369,7499,7788);
  例如:查询姓名为Smith,allen,king的雇员编号,姓名,入职时间
   select empon,ename,hiredate from emp where ename in ('Smith','allen','king');
  2.8 likesq

用来进行模糊查询,需要结合通配符一起使用。
常用的通配符:
%匹配恣意长度字符。
_只能匹配单个字符。
例如:查询雇员姓名以s开头的雇员信息。
   select * from emp where ename like 's%';
  例如:查询雇员姓名中包含m的雇员信息。
   select * from emp where ename like '%m%';
  例如:查询从事贩卖工作,而且姓名长度为4个字符的雇员信息。
   select * from emp where job='salesman'and ename like '____';
  例如:查询1981年入职的雇员编号,姓名,入职时间,所在部门编号。
   select * from emp where hiredate like '1981%';
  3.排序

3.1语法

语法
   select 列名1,列名2,... from 表名 where 条件 order by 排序字段1[asc丨desc],排序字段2[asc丨desc]...;(升降)
  例如:查询所有雇员信息,按照工资由低到高的排序。
   select * from emp order by sal;
  例如:查询部门10的雇员信息。按照工资由高到低进行排序,如果工资类似,按入职时间由早到晚进行排序。
   select * from emp where depton=10 order by sal desc,hiredate;
  越晚的日期越大,越早的日期越小。
例如:查询雇员编号,姓名,年薪,按年薪由高到低排序。
   select empno,ename,(sal+ifnull(comm,0))*12 年薪 from emp order by 年薪 desc;
  

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4