mysql中遇到的知识点以及问题笔记

1. sql教程

https://www.w3school.com.cn/sql/index.asp
SQL教程

2. mysql limit 和 offset 用法

mysql 里分页一般用limit来实现
select * from article LIMIT 1,3
select * from article LIMIT 3 OFFSET 1
上面两种写法都表示取2,3,4三条条数据

当limit后面跟两个参数的时候,第一个数表示要跳过的数量,后一位表示要取的数量。
当 limit和offset组合使用的时候,limit后面只能有一个参数,表示要取的的数量,offset表示要跳过的数量 。

3. mysql 小数取整

select ceil (小数)向上取整
select floor(小数)向下取整

4. mysql 获取前50%的数据

这里用到了一个 MySQL 变量来获取行号。

SELECT
	a.*,
	@row_num := @row_num + 1 AS row_num 
FROM
	emp a,
	( SELECT @row_num := 0 ) b 
ORDER BY
	empno

在这里插入图片描述
有了行号,我们就可以根据行号和总记录数来过滤了。

SELECT* FROM
	(
	SELECT
		a.*,
		@row_num := @row_num + 1 AS row_num 
	FROM
		emp a,
		( SELECT @row_num := 0 ) b 
	ORDER BY
		empno 
	) base 
WHERE
	base.row_num <= (
	@row_num * 0.5)

在这里插入图片描述@row_num 这个变量,是按行来的,所以我们在 where 条件中使用的时候,他是最后1条记录的行号,及总记录数
总记录数乘以50%,就是前50%的记录数,这样,我们就获取了前50%的数据了。

5. 不同的 SQL JOIN

除了 INNER JOIN(内连接),我们还可以使用其他几种连接。
下面列出了您可以使用的 JOIN 类型,以及它们之间的差异。

  • JOIN: 如果表中有至少一个匹配,则返回行
  • LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行,即使在右表中没有匹配的行。
  • RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行,即使在左表中没有匹配的行。
  • FULL JOIN: 只要其中一个表中存在匹配,就返回行。如果左表中的行在右表中没有匹配,或者如果 右表中的行在表左表中没有匹配,这些行同样会列出。

6. 复制表数据

MySQL 数据库不支持 SELECT … INTO 语句,所以用 CREATE TABLE 新表 AS SELECT 替代,但支持 INSERT INTO … SELECT 。

两者的主要区别为:
它们都是用来复制表

  • CREATE TABLE 新表 AS SELECT :要求目标表不存在,因为在插入时会自动创建
  CREATE TABLE emp_c AS SELECT * FROM emp WHERE mgr = 7698
  CREATE TABLE emp_c AS SELECT column1,column2 FROM emp WHERE mgr = 7698
  • INSERT INTO 新表 SELECT :要求目标表存在
  INSERT INTO emp_c SELECT * FROM emp WHERE mgr = 7698
  INSERT INTO emp_c (column1,column2) SELECT column1,column2 FROM emp WHERE mgr = 7698
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhangxin_zx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值