# 前言

所有的关系型数据库都是使用 SQL 语句查询数据,是一门独立的语言

# 增加数据

-- 如果不写字段,那么所有的字段对应的值都要写,id 默认写 null
INSERT INTO users VALUES(1, 值2...);
-- 如果加入了字段,那么值一定是跟字段对应的,注意不能为 null 的字段
INSERT INTO users (字段1, 字段2, 字段3) VALUES (1, 值2,值3);

# 删除数据

-- 删除指定的数据
DELETE FROM users WHERE id = 3;
-- 一般数据会做软删除,其实就是给个标记,进行修改就可以了

# 修改数据

-- 修改指定的数据
UPDATE users SET age = 20 WHERE id = 6;

# 查询数据

-- 查询所有的数据
SELECT * FROM users;
-- 查询某些字段的数据
SELECT username, age, sex, tel FROM users;
-- 查询指定的 id 的数据 
SELECT * FROM users WHERE id = 5;
-- 查询数据库中的行数
SELECT COUNT(*) as num FROM users

# 高级查询

先获取数据,然后筛选条件,再排序,最后做提取

-- 女英雄,年龄排序,取第 2 条开始的 5 条数据
SELECT * FROM users WHERE sex = '女' ORDER BY age DESC LIMIT 1, 5;

# 逻辑查询

-- WHERE age < 18    = >= <= != 
-- WHERE age <> 18   不等于
SELECT * FROM uses WHERE age > 18;
-- 介于两个值之间
SELECT * FROM uses WHERE age BETWEEN 20 AND 30;

# 模糊查询

-- '% 刚 '   以 刚 结束
-- '% 宝 %'  包含 宝 的数据
SELECT * FROM uses WHERE username LIKE '李%';

# 多条件查询

-- 男的,大于 30 岁的
SELECT * FROM uses WHERE sex = '男' AND age > 30;

# 排序

默认根据 id 从小到大排序

-- 所有的女生,年龄从大到小
SELECT * FROM users WHERE sex = '女' ORDER BY age DESC;

# 分页逻辑

将来前端发请求,后端就要根据前端的请求编写 SQL 语句

axios.get('/getData', {
    params: {
        pageNum: 1,
        pageSize: 5
    }
})

后端逻辑,接口中处理

// 如果后端使用的是 Nodejs,那么也使用 js 编写业务逻辑
// 假设已经获取到了传过来的参数
const { pageNum, pageSize } = params
// 1.0 通过公式,计算当前要请求第多少条数据
const curData = (pageNum - 1) * PageSize
// 2.0 编辑 sql 语句
let = `SELECT * FROM users LIMIT ${curData}, ${pageSize}`
// pageNum = 1, pageSize = 5   limit   0, 5
// pageNum = 2, pageSize = 5   limit   5, 5
// pageNum = 3, pageSize = 5   limit   10, 5
//... 以此类推,就能把对应页面的数据拿到了
更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

山河 微信支付

微信支付

山河 支付宝

支付宝

山河 贝宝

贝宝