1. 一条完整的查询语句的定义及关键字
查询语句主要由以下关键字组成:
SELECT column1, column2, ...
FROM table_name
WHERE condition
GROUP BY column1, column2, ...
HAVING condition
ORDER BY column1, column2, ... ASC|DESC;
2.查询SQL关键字的执行顺序
SQL的执行顺序为:FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY。
3.两个相同列的结果集求并集的方法
两个相同列的结果集求并集可以使用 UNION 或 UNION ALL。
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;
4.UNION和UNION ALL的区别
UNION 在合并两个查询结果集时会自动去除重复行,UNION ALL 不会去除重复行。
5.LEFT JOIN、RIGHT JOIN和INNER JOIN的区别
- LEFT JOIN 获取左表全部记录以及右表中与之相符的记录,如果右表中没有匹配记录则结果是NULL。
- RIGHT JOIN 获取右表全部记录以及左表中与之相符的记录,如果左表中没有匹配记录则结果是NULL。
- INNER JOIN 获取两表中字段匹配的记录。
6.Mysql的存储引擎及MyISAM和InnoDB的区别
MySQL的存储引擎主要有MyISAM、InnoDB、Memory等。MyISAM支持全文索引,适合读密集的应用,但不支持事务和行级锁。InnoDB支持事务和行级锁,适合写密集的应用。
7.数据库三范式
- 第一范式:数据库表中的字段都是单一属性,不可再分。
- 第二范式:在第一范式的基础上,非主键字段必须完全依赖于主键,不能只依赖于主键的一部分(针对联合主键)。
- 第三范式:在第二范式的基础上,非主键字段必须直接依赖于主键,不能存在传递依赖。
8.平均值和分组
平均值用 AVG() 函数,分组用 GROUP BY。
9.分组后进行过滤的方法
分组后进行过滤可以使用 HAVING 语句。
10.一张表至少应该有哪些字段
一张表至少应该有主键字段,以及与业务相关的字段。一般来说,还会包含创建时间、更新时间等字段。