1.基础查询语句
select 查询列表 from 表名;
特点:
- 查询列表可以是:表中的字段,函数,表达式,常量值
- 查询结果是一个虚拟的表
*F12格式化语句
定位在特定数据库
use database;
1)
查询表中的多个字段
select a,b,c from table;
*双击列表字段名,直接出现列名
查询表中的所有字段
select from table;
缺点——不能更改表中字段顺序
2)
查询常量值
select 100;
查询表达式
select 100%98;
查询函数
select version();
查询函数返回值
3)
起别名
- as
select 100%98 as “结果”;
*便于理解;字段有重名时,便于区别
- 空格
select last_name 姓 from table;
去重
select distinct last_name from table;
+号的作用:运算符
select 100+90;
select ‘100’+90;一方为字符型数值,试图转换为数值型;
转换成功,则继续加法运算;若失败,将字符型数值转化为0
select null+90;只要其中一方为null,则结果一定为null
合并列
select concat(last_name,first_name )as “姓名” from table;
select ifnull (列名1,0);
合并两列,中间以“,”连接;*若某列中出现null,会有error;
select concat(列名1,“,”,列名2)as “out put”;
2.条件查询语句
select 查询列表 from 表名 where 筛选条件;
分类:
1.按条件表达式筛选
条件运算符:> < = != <> >= <=
2.按逻辑表达式筛选
逻辑运算符:and or not
作用:添加多个筛选条件
3.模糊查询:模糊匹配
like、 between and 、in、 is null
案例1:条件+逻辑条件筛选
筛选列名1不在90到100区间的,或者列名2大于15000的全部信息
select * from table where not (列名1>=90 and 列名1 <=100)or 列名2 >15000;
案例2:like 一般搭配通配符使用,可以判断字符型或数值型
通配符:
%多个字符
_任意单个字符
字符型
筛选姓里包含字母a
select * from table where last_name like ‘%a%’;
筛选姓里第三个字母为a,第五个字母为l
select * from table where last_name like ‘___n_l%’;
筛选姓里第二个字符为
\为转意符
select from table where last_name like ‘_%’;
自行规定转意符,然后跳过转意符
select * from table where lastname like ‘$_%’ escape ‘$’;
数值型
筛选部门id (int)为三位数,第一位为1;
select * from table where departmentid like ‘1_‘;
案例3:between and
等价于>=90 and <=100;包含临界值,且顺序不能变
select from table where 列名1 between 90 and 100;
between 90 and 100
not between 90 and 100
案例4:in
in含义:判断某字段的值是否属于in列表中某一项
特点:
- in比or更简洁
- in列表内的类型必须一致或兼容
select from table where 列名1 in (‘it’,‘he’,‘she’);
不支持通配符%,通配符用于模糊匹配,而in是精确匹配
案例5: is null
select from table where 列名1 is null;
select from table where 列名1 is not null;
案例6: 安全等于<=>
(判断是否=)
null和数值都可以,但可读性差
select from table where 列名1 <=> null;
select * from table where 列名1 <=> 12000;
经典面试题:
‘%%’表示有内容,不为null;
前两个语句如果判断的字段有null值,则不一样;第二个语句筛选出了不为null