一、基础语句
select
1.查询单列 : select 字段名 from 表名
2.查询多列 :select 字段名1,字段名2,字段名3....from 表名
3.查询所有列 :select * from 表名
4.数据去重 :select distinct 字段名 from 表名(注意计算字段所涉及的字段必须是表中所包含的字段,例select distinct name,population,gdp,gdp/population 人均GDP from world
5.重命名字段:在字段后加as可以重命名该字段,或者省略as加单空格
where
1.对语句加限制条件,其后一般跟运算符>,<,=,....
例select distinct name,population,gdp,gdp/population 人均GDP from world
where population between 20000000 and 40000000
例select name from world where name like '_t%'
(两图是上述例子的运行结果图示)
注意,数据库显示<null>用 is null , 显示null或0 用 ='null',and优先级大于or ,若分不清可以用括号括起来;in的逻辑条件其实是or,between and 的逻辑条件其实是大于等于,小于等于。
(查询位于南美洲的国家名及以百万为单位的人口数量)
(查询国家名不含空格且含有aeiou的)
order by(排序)
( 图中order by subject in ...符合条件返回1,否则返回0,因为默认asc,故从0~1升序排列被放到最后去了。)
- order by 关键字后可加多个字段,按照写的顺序排,先按字段1排序,若字段1有相同值就按字段2排序,若字段1无相同值就不再继续按字段2排序了。
- 数值有小到大升序asc,desc由大到小,Z到A降序,A到Z升序。
- 不指定排序方式默认升序。
- order by可以指定不在select子句中的字段作为排序依据。
limit(限制最后展示几行数据)
- limit n 中n 代表参数的行数,该子句代表从第一行开始显示前N行数据。
- limit x,n 中n代表位置偏移量,数据表中第一行的位置偏移量为0,第二行位置偏移量为1,以此类推,limit 0,n 等价于limit n
- limit x,n 返回第x+1行开始的行,取到第x+n行,例如:limit3,4 代表从第3+1行开始取,取4行,即取第四行-第七行数据。
- limit只能用在MySQL数据库。
- limit子句写在最后一句。
不漏: 聚合函数的结果作为筛选,不能用where,要用having;语法顺序是where,group by,having,order by,limit,不可以换否则会报错