单表查询数据记录
简单数据查询
约定 field是字段,table_name是数据库的表名
1、查询所有字段数据
select field1,field2,field3,...,fieldn
from table_name;
2、使用通配符 * 查询所有字段数据
select * from table_name;
3、查询指定字段数据
select field2,field4,field1 from table_name;
提示:在查询指定字段和查询所有字段的时候select后的查询的字段的位置是可以根据实际需求调整
避免重复数据查询----distinct
约定 field是字段,table_name是数据库的表名
实现查询不同的数据
select distinct field1,field3
from table_name;
实现数学四则运算数据查询
运算符 | 描述 |
+ | 加法 |
- | 减法 |
* | 乘法 |
/(DIV) | 除法 |
%(MOD) | 求余 |
约定 field是字段,table_name是数据库的表名
field2为公司员工的名字
field4为double数据类型的月薪,doule(10,2)则 表示双精度浮点型,总长度是*10,*小数点后保留两位小数
查询字段filed2字段的的年薪
select filed2,field4*12
from table_name;
查询字段并修改字段名
select field2,field4*12 as otherfield
from table_name;
注意:因为select语句仅仅是查询语句,as后面的新字段仅仅也是在语义上更直观的妥协,并不是真的修改table_name表里的字段
desc table_name;或者select * from table_name;后发现表里的数据并没有发生改变
设置显示格式的数据查询
介绍前先学个单词:concat n. 合并多个数组;合并多个字符串
约定 field是字段,table_name是数据库的表名
field2为公司员工的名字
field4为double数据类型的月薪,doule(10,2)则 表示双精度浮点型,总长度是*10,*小数点后保留两位小数
特殊定制格式的数据查询
select concat(filed2,'雇员的年薪为:',sal*12) as otherfield
from table_name;
条件数据记录查询
带有关系运算符和逻辑运算符的条件数据查询
MySQL支持的比较运算符的表
运算符 | 描述 |
> | 大于 |
< | 小于 |
= | 等于 |
!=(<>) | 不等于 |
>= | 大于等于 |
<= | 小于等于 |
MySQL支持的逻辑运算符的表
运算符 | 描述 |
and(&&) | 逻辑与 |
or(||) | 逻辑或 |
xor | 逻辑异或 |
not(!) | 逻辑非 |
约定 field是字段,table_name是数据库的表名
field2为公司员工的名字
field3为公司员工的家庭地址
field4为double数据类型的月薪,doule(10,2)则 表示双精度浮点型,总长度是*10,*小数点后保留两位小数
伯克利为table_name表中众多地址的一个
1、单条件数据查询
select field2
from table_name
where field3='伯克利';
解释:查询table_name表中field2字段下,列出field3的值为伯克利的数据
2、多条件数据查询
select field2
from table_name
where field3='伯克利' and field4<300;
解释:查询table_name表中field2字段下,列出field3的值为伯克利和field4的值小于300的数据
在MySQL支持的逻辑运算符的表中可以发现 可以使用&&来替换and,两者执行后的结果一致
带between and关键字的范围查询
field2为公司员工的名字
field4为double数据类型的月薪
value1是field4下的数据为100
value2是field4下的数据为200
1、符合范围的数据记录查询
select field4
from table_name
where field4 between value1 and value2;
2、不符合范围的数据记录查询
select field4
from table_name
where field4 not between value1 and value2;
带is null关键字的范围查询
field2为公司员工的名字
field4为double数据类型的月薪
1、空值数据记录查询
select field2
from table_name
where filed4 is null;
2、不是空值记录查询
select field2
from table_name
where not filed4 is null;
带in关键字的集合查询
field2为公司员工的名字
field1为公司员工编号
1001 1003 1100为field1中的值
1、在集合中数据记录查询–用in
select field2
from table_name
where field1 in (1001 1003 1100);
或逻辑运算也可以实现:
select field2
from table_name
where field1=1001 or field1=1003 or field=1100;
2、不在集合中数据的查询-用in
select field2
from table_name
where field1 not in (1001 1003 1100);
非逻辑运算也可以实现
select field2
from table_name
where not field1 in (1001 1003 1100);
带like关键字的模糊查询
“_”通配符,能匹配单个字符
“%”通配符,该通配符值可以匹配任意长度的字符串,可以是0,1,也可以是多个
带百分号%通配符的like模糊查询
1、like模糊查询以a字母开头的数据记录–带百分号%
select field2
from table_name
where filed4 like 'a%';
2、非运算符解决like模糊查询查询不以a字母开头的数据记录—带百分号%
select field2
from table_name
where not filed4 like 'a%';
带下划线_通配符的like查询
1、like模糊查询第二个字母是a开头的数据记录–带下划线_
select field2
from table_name
where field like '_a%';
2、非逻辑运算符解决like模糊查询第二个字母不是a开头的数据记录–带下划线_
select field2
from table_name
where not field like '_a%';
带like关键字的模糊查询的注意点
查询没有字母为a的记录-----就是除了a字母以外的数据记录
其实like关键字提供了 not like 关键字
select field2
from table_name
where field2 not like '%a%';
非逻辑运算符解决查询没有字母为a的记录
方法1
select field2
from table_name
where not field2 like '%a%';
方法2
select field2
from table_name
where !( field2 like '%a%');
查询所有数据记录%%
select field2
from table_name
where field2 like '%%';