SQL查询语法结构和运行顺序:
语法结构:select - from - where - group by - having - order by - limit
运行顺序:from - where - group by - having - order by - limit - select
1、select
- 基础查询select单列&多列&所有列&别名应用
- select 字段名1, 字段名2 from 表名
- select * from 表名
- select 字段名 as 别名, 字段名 别名 from 表名(as可省略)
- select中使用distinct去重
- 在select核心语句中加distinct关键字,可以对最后显示的数据去重;
- 在select distinct后加多个字段时,是对重复的行数据进行去重;
- 注:显示多个字段时,distinct无法对单一字段去重,只能对这几个字段组成的行中重复的行数据去重,所以distinct本质是加在select后,而不是字段前。
- select distinct 字段名1, 字段名2 from 表名
- select中计算字段的运用
- 在select的核心语句中,可以对数据库表中有的字段进行计算形成新的字段
- select 字段名, 计算字段 from 表名
2、where
- select 字段名 from 表名 where 表达式:通过表达式筛选出符合查询条件的行数据
- where 表达式中最常用的是运算符
- 比较运算符:=、>、<、>=、<=、<>、!=
- 逻辑运算符:and、or和not
- not一般和与其他连用例如not in,用于条件取反
- and和not可以一起使用,但是默认and优先级高于or,可以使用括号来界定优先级
- between and,用于查询两个值之间范围的值(包含这两个值),这些值主要是数据和日期
- 如果想要去掉某个边界可以使用英文符号(!=)来去除
- in,用于查询指定条件范围内的数据,一般为in (xxx,xxx,......),用括号将条件括起来
- is null,用于查询空值(NULL),空值不同于0,也不同于null字符串 =‘null’
- 空值
- null字符串
- 空值
- eg for in(xxx,xxx,......):
- 查询瑞典、挪威、丹麦的国家名和人口
SELECT name, population FROM world where name='Germany' or name='Norway' or name='Denmark'
或者:SELECT name, population FROM world where name in ('Germany', 'Norway', 'Denmark')
- 查询瑞典、挪威、丹麦的国家名和人口
- is null,用于查询空值(NULL),空值不同于0,也不同于null字符串 =‘null’
- 模糊查询like
- select 字段名 from 表名 where 字段名 like '通配符+字符'
- 跟在字符后面进行数据过滤常用的通配符有%和_。%用来匹配多个字符,_仅能匹配单个字符
- eg:
- 查询既包含有所有元音字母(a,e,i,o,u),同时国家名中没有空格的国家,最后显示他们的名字
- SELECT name FROM world where name like '%a%'
and name like '%e%'
and name like '%i%'
and name like '%o%'
and name like '%u%'
and na
- SELECT name FROM world where name like '%a%'
- 查询既包含有所有元音字母(a,e,i,o,u),同时国家名中没有空格的国家,最后显示他们的名字