SELECT
*
FROM
cus_user
WHERE
create_time >= '2020-07-28 00:00:00'
查询 cus_user 表已知性别的用户(性别 0-未知 1-男性 2-女性),(use IN)
SELECT
*
FROM
cus_user
WHERE
id BETWEEN 160
AND 170
查询 cus_user 表 id 为 160-170 的用户的部分信息(use BETWEEN)
SELECT
*
FROM
cus_user
WHERE
id BETWEEN 160
AND 170
条件查询的关键字 and、or、in、between、not,多个条件查询,括号改变优先级
2.投影查询
如果我们只希望返回某些列的数据,而不是所有列的数据,我们可以用 SELECT 列 1, 列 2, 列 3 FROM ...,让结果集仅包含指定列。这种操作称为投影查询。
投影查询,并将结果列名重命名
SELECT
nick_name,
mobile phone,
gender,
avator avatar,
create_time
FROM
cus_user
WHERE
id BETWEEN 160
AND 170
3.排序查询
获取用户yanyue404的聊天记录信息并按 create_time降序排列 (use ORDER BY)
SELECT
user_type,
to_user_type,
to_nick_name,
message,
create_time
FROM
msg_user
WHERE
nick_name = 'yanyue404'
ORDER BY
create_time DESC
DESC 是递减的意思,与之对应的是 ASC 递增, ORDER BY create_time DESC 意思是 按照(BY)create_time 字段值递减(DESC)的顺序对查询结果排序
4.分页查询
查询所有的结果并加入行数序号列 1,2,3...
SET @rownum = 0;
SELECT
@rownum := @rownum + 1 AS ROW,
user_type,
to_user_type,
to_nick_name,
message,
create_time
FROM
msg_user
WHERE
nick_name = 'yanyue404'
ORDER BY
create_time DESC
目录
查询数据
1. 条件查询
AND
与OR
)IN
)BETWEEN
)2.投影查询
如果我们只希望返回某些列的数据,而不是所有列的数据,我们可以用 SELECT 列 1, 列 2, 列 3 FROM ...,让结果集仅包含指定列。这种操作称为投影查询。
3.排序查询
yanyue404
的聊天记录信息并按create_time
降序排列 (useORDER BY
)4.分页查询
LIMIT <M> OFFSET <N>
,索引从 0 开始20
分页查询的关键在于,首先要确定每页需要显示的结果数量 pageSize(这里是 10),然后根据当前页的索引 pageIndex(从 1 开始),确定 LIMIT 和 OFFSET 应该设定的值:
LIMIT 总是设定为 pageSize; OFFSET 计算公式为 pageSize * (pageIndex - 1)。 ......
5.聚合查询
注意,MAX()和 MIN()函数并不限于数值类型。如果是字符类型,MAX()和 MIN()会返回排序最后和排序最前的字符。
6. 多表
添加 WHERE 条件后结果集的数量大大减少了:
7.连接查询
表的连接分成好几种类型。
内连接 (INNER JOIN)
选出
cus_user
与agt_user
两张表account_id
一致(自己是代理人,自己又是客户)注意 INNER JOIN 查询的写法是:
右连接(RIGHT JOIN)
换成右连接比内连接多了一条数据,但是 cid 为 Null。
因为根据 ON 条件 c.account_id = a.account_id,当 a 表 account_id 为 '77777'的时候,c 表没有与之相对应的数据,cid 字段就被 Null 填充。
有 RIGHT JOIN,就有 LEFT JOIN,以及 FULL JOIN。它们的区别是:
下图就是四种连接的图示:
上图中,表 A 的记录是 123,表 B 的记录是 ABC,颜色表示匹配关系。返回结果中,如果另一张表没有匹配的记录,则用 null 填充。
这四种连接,又可以分成两大类:内连接(inner join)表示只包含匹配的记录,外连接(outer join)表示还包含不匹配的记录。所以,左连接、右连接、全连接都属于外连接。
8. 模糊查询
搜索以
资讯
开头的所有字符串搜索以
资讯
结尾的所有字符串搜索含有
资讯
的所有字符串修改数据
1. INSERT
当我们需要向数据库表中插入一条新记录时,就必须使用 INSERT 语句。
INSERT 语句的基本语法是:
还可以一次性添加多条记录,只需要在 VALUES 子句中指定多个记录值,每个记录是由()(...此处已省略详细的新增数据项)包含的一组值:
2. UPDATE
如果要更新数据库表中的记录,我们就必须使用 UPDATE 语句。
UPDATE 语句的基本语法是:
例如:我们修改刚才新建的
nick_name
为"测试"的那条数据,查看发现,主键 id 已经新增为199
,让我们来更新它的mobile
与gender
。更新成功 MySQL 会返回:
Affected rows: 1 时间: 0.008s
,可以看到一行受到了影响,此外还可以借助 WHERE 一次更新多条数据。如果 WHERE UPDATE 语句不会报错,也不会有任何记录被更新
更新 id 为 200,201,202 的数据
3.DELETE
如果要删除数据库表中的记录,我们可以使用 DELETE 语句。
DELETE 语句的基本语法是:
例如:我们删除上面创建的 id 为 199 的数据:
与 UPDATE 的使用方法一样,借助 WHERE 我们就可以一次删除表中的一条或多条记录。
参考