【MySQL】CRUD,常见函数及union&union
目录
一 CRUD
条件查询执行顺序:where(条件)? group by(分组) having(筛选)?order by(排序)? ?limit(记录数)
查询
查询t_book表的所有数据
select * from t_book?
查询t_book id为1的数据
select * from t_book where id =1
查询id大于6的数据
select * from t_book id>6
新增数据
新增一条数据
insert into t_book values(1,1,1,1)
新增多条数据
insert into t_book values
(1,1,1,1),
(1,1,1,1)
选择性新增数据
insert into t_book set id=1,name=zhangsan,sex='男'
修改数据
修改id为1的name值
update t_book set name=lisi where id=1
删除数据
删除id为1的数据
delete from t_book where id=1
二 常见函数
① 字符函数
转小写:? LOWER('NIHAO')? > nihao
转大写:? ? ?UPPER('nihao')? > NIHAO?? ?
拼接:? ? ? ?CONCAT('Hello','World')? ?>? HelloWorld
截取:? ?SUBSTR('HelloWorld',1,5)? ?>? Hello
长度:? ? LENGTH('HelloWorld')? ? ?>? 10
字符出现索引值 :? ? ?INSTR('HelloWorld','o')? ? >? 5?
字符截取后半段:? TRIM('M'FROM'HelloWorld')? > elloWorld
字符替换:? REPLACE('abcd','b','m')? ?> amcd
② 数字函数
四舍五入:? ?ROUND(45.926,2)? >? 45.93
截取:? TRUNC(45.926,2)? > 45.92
求余: MOD(1600,300)? ?> 100
③ 日期函数
获取当前日期? ?>? now()
将日期格式字符转成指定格式的日期? ?
STR_TO_DATE('9-13-1999','%m-%d-%Y') >1999-9-13
将日期转换成字符? ?
?DATE_FORMAT(‘2024/1/3’,‘%Y年%m月%d日’)? >? 2024年01月03日
④ 流程控制函数
CASE expr WHEN comparison_expr1 THEN return_expr1
[WHEN comparison_expr2 THEN return_expr2
WHEN comparison_exprn THEN return_exprn
ELSE else_expr]?
END
案例:查询同时存在01课程与02课程的情况
select?
t3.*,
(CASE WHEN t1.cid='01' THEN t1.score END)语文,
(CASE WHEN t2.cid='02' THEN t2.score END)数学
FROM
(SELECT * FROM t_mysql_score sc WHERE sc.id='01')t1,
(SELECT * FROM t_mysql_score sc WHERE sc.id='02')t2,
t_mysql_student t3
WHERE
t1.sid=t2.sid
AND t1.sid =t3.sid
⑤ 聚合函数
① sum求和
② avg平均值
③ max最大值
④ min最小值
⑤ count计算
三 union&union
含义
Union用于对多个查询结果进行并集操作,不包括重复行,相当于Distinct,同时进行默认规则的排序;
Union All则是对多个查询结果进行并集操作,包括重复行,即所有的结果全部显示,不管是不是重复
应用场景
Union:
当需要合并多个查询的结果,并且希望去除重复的行时,可以使用Union操作符。
例:合并两个表的数据,不出现重复的记录。
Union All:
当需要合并多个查询的结果,但不需要去除重复的行时,可以使用Union All操作符。
例:合并两个表的数据,出现重复的记录
语法
UNION
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;
使用UNION
时,默认会删除结果集中的重复行。这意味着如果两个SELECT
语句产生的结果中有相同的行,那么这些行在最终的结果集中只会出现一次
UNION ALL
SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;
使用UNION ALL
时,不会删除结果集中的重复行。这意味着如果两个SELECT
语句产生的结果中有相同的行,那么这些行在最终的结果集中会全部出现。
四 思维导图
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!