单表查询
查询:用户根据不同的方式从数据库表中获取自己所需要的数据
是数据库操作中非常重要且非常频繁的
1、创建新库test3
2、在test3库中创建emp(雇员表)
Emp(雇员编号empno
雇员名称ename
雇员的职位job
雇员入职日期hiredate
雇员月薪sal
雇员津贴comm
雇员部门编号deptno)
3、给表插入数据
一、单表查询
1、查询所有字段
语法:select 字段名1,字段名2。。。。。。 from 表名
例如:查询雇员表中雇员姓名、编号、领导号、入职时间、薪资、奖金、部门编号
2、使用通配符*查询所有字段
语法:select * from 表名
3、查询指定字段
语法:select 字段名1,字段名2。。。。。。 from 表名
例如:查询雇员表中雇员姓名、职位、部门号、薪资
4、去重distinct的使用
语法:select distinct 字段名1,字段名2.。。。。。 from 表名
例如:查询雇员的部门号
查询雇员在哪几个部门
Distinct使用到多个字段上
例如:查询雇员部门号及职位
注意:distinct使用到多个字段上,只有多个字段的值都相同才去重!
5、查询中使用算术运算符
+ - * /(div) %(mod)
例如:查询雇员的年薪
6、给字段起别名
语法: select 字段名1 [as] 别名,字段名2.。。。。。from 表名
例如:查询雇员的年薪,别名为yearsal
注意:如果别名中有空格特殊符号 需要使用单引号括起来
例如:查询雇员的年薪,别名为yearsal&年薪 或者yearsal 年薪
二、对查询结果排序
升序 默认的排序方式 asc
降序 desc
1、在单个字段中排序
语法:select 查询内容 from 表名 order by 字段 asc|desc
例如:查询雇员信息按雇员薪资升序排序
2、在多个字段中使用排序
语法:select 查询内容 from 表名 order by 字段名1 asc|desc,字段名2 asc|desc
例如:查询雇员信息,先按照雇员薪资升序排序,如果薪资相同则按照入职日期降序排序
注意:排序可以使用别名
例如:查询雇员年薪,按照年薪降序排序
三、条件查询
条件查询:是用户按照一定条件查询,查询满足条件的部分记录
语法:select 查询内容 from 表 where 条件
1、比较运算符的使用
= > < >= <= !=
例如:查询部门号为20的雇员信息 列入
例如:查询薪资大于等于3000的雇员信息
例如:查询薪资小于3000的雇员的雇员名称、薪资、职位
注意:mysql默认的是不区分大小写,如果需要区分大小写,则可以使用binary关键字。
2、[not] between and的使用 包括边界
可以查询某区间范围的记录
例如:查询薪资在1200-3000之间的雇员信息
例如:查询薪资不在1200-3000之间的雇员姓名、薪资
3、[not] in
表示在指定集合中
语法:select 查询内容 from 表名 where 字段名 in(值1,值2,。。。。。。)
例如:查询雇员姓名是smith、scott、king的雇员信息
4、is null 或者is not null
判断某个字段是否为空
例如:查询雇员中,有津贴的雇员信息
查询雇员中,没有津贴的雇员信息
5、模糊查询
可以查询以xx结尾 包含xx 第几个是x
语法:select 查询内容 from 表名 where 字段名 like