Node学习(六)02-SQL语句——select查询、where筛选sql、like模糊查询通配符、order by查询结果排序、limit 用来限制查询结果的起始点和长度
SQL语句
使用SQL语句就能很方便对数据库进行增删改查操作
4. 数据查询
sql语法中,–是注释
语法格式:
-- 基本的查询语法
SELECT 字段1,字段2,... FROM 表名
-- 查询所有的字段
SELECT * FROM 表名
-- 带条件的查询
SELECT * FROM 表名 [WHERE 条件] [ORDER BY 排序字段[, 排序字段]] LIMIT [开始位置,]长度
.....
4.1 基本查询
格式: select 字段名1, 字段名2,… from 表名
案例1: 查询所有英雄的姓名和昵称
-- 基本的查询语法
select name,nickname from heroes
案例2: 查询全部英雄的全部信息
select * from heroes
效果
4.2 带where子句的查询
select field1, field2… from 表名 查询表中的所有数据
where 可以使用条件来筛选查询出的结果
-- select * from heroes where 条件
-- 查询id小于10的所有英雄
select * from heroes where id < 10
-- 查询id小于10的男英雄
select * from heroes where id<10 and sex='男'
-- 查询年龄大于等于30小于等于40的英雄
select * from heroes where age>=30 and age<=40
select * from heroes where age between 30 and 40
效果-where筛选sql
4.3 模糊查询
通配符:
- %: 代表任意长度(包括0)的任意字符
- _: 代表1位长度的任意字符
like: 在执行模糊查询时,必须使用like来作为匹配条件
-- 模糊查询
-- 查询名字中带有 斯 的
select * from heroes where name like '%斯%'
-- 查询名字最后一个字是斯的
select * from heroes where name like '%斯'
-- 查询名字中第二个字是斯的
select * from heroes where name like '_斯%'
效果
4.4 查询结果排序
order by 可以对查询结果按某个字段进行升序或者降序排列
- 升序 asc (默认值)
- 降序 desc
可进行排序的字段通常是 整型 英文字符串型 日期型 (中文字符串也行,但一般不用)
-- 排序
-- 查询所有的英雄,按年龄 升序排序
-- select * from heroes order by age
-- select * from heroes order by age asc
-- 查询所有的英雄,按年龄 降序排序
-- select * from heroes order by age desc
-- 查询所有的英雄,先按年龄降序排序,再按id降序排序
-- select * from heroes order by age desc,id desc
-- 查询年龄小于25岁的英雄,并按年龄降序排序
select * from heroes where age < 25 order by age desc
注意:如果SQL语句中,有where和order by,where一定要放到order by之前。
效果
4.5 限制查询结果
limit 用来限制查询结果的起始点和长度
- 格式: limit start, length
- start: 起始点。 查询结果的索引,从0开始。 0代表第一条数据。如果省略start,则默认表示从0
- length: 长度
-- 限制结果集
-- 查询所有的英雄,取5个
-- select * from heroes limit 0, 5
-- select * from heroes limit 5
-- 查询所有的英雄,取第6个到第10个
-- select * from heroes limit 5, 5
-- 查询年龄最大的三个英雄(如果有order by和limit,则limit要放到后面)
-- select * from heroes order by age desc limit 3
-- 查询年龄最大的三个女英雄
select * from heroes where sex='女' order by age desc limit 3
注意:where、order by、limit如果一起使用,是有顺序的,where在最前面、其次是order by、limit要放到最后。
效果