SQL 和 Postgres 面试概念

标签 sql sql-server database postgresql

简介:

所以,我明天有一个面试,我正在尝试复习 SQL 和数据库。招聘启事称,他们想要的人具有:

  • Experience with database design and development
    • Strong knowledge of SQL
    • Experience with SQL Server and/or Postgres

我已通读 Questions every good database SQL developer should be able to answer ,以及一堆用 SQL 和面试问题标记的问题。所以我意识到我需要了解 SELECT , JOINWHERE .

问题:

  • 为了在面试中取得好成绩,我需要了解哪些基本的 SQL、Postgres 和数据库概念?

  • 关于交易和规范化,我需要了解哪些信息?

  • 优化慢查询的一般方法有哪些?

  • 我应该了解函数、关键字还是两者都了解?

最佳答案

这取决于该角色有多少是基于数据库开发和设计的。对于 SQL 语法,您还应该了解联接类型之间的差异,并能够使用 GROUP BYORDER BYHAVING以及可以与它们结合使用的聚合函数。

在性能监控方面,我会查看执行计划(不确定 Postgres 的等效项)以及它们如何提供提高性能的提示,以及使用 SQL Profiler 查看服务器实际执行的指令时间。

事务对于回滚事务(存储过程、临时查询等)非常有用,这些事务需要查询以某种方式完成以保持数据一致性。有些人(包括我自己)的做法是将任何对数据进行任何更改的语句放入自动回滚的事务中(BEGIN TRAN ... ROLLBACK TRAN)以检查数据量是否正确在将更改推送到实时服务器之前进行操作。看一下 ACID 模型 - 原子性、一致性、隔离性、持久性。

标准化可能需要一些时间来完成,但只要了解并部分理解第三种形式的标准化,就可以开始。

优化可能是一个很大的话题。只需记住尝试使用基于集合的查询而不是基于行的查询来执行诸如 UPDATE 之类的操作(在 WHILE 循环中更新是基于行的更新的一个示例,但它可以有其用途)。

希望这会有所帮助。

关于SQL 和 Postgres 面试概念,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4952026/

相关文章:

python - 一个模型如何可以有多个键,并以相同类型的模型作为值?

sql - 如何在 Django 中执行 "greatest-n-per-group"查询?

java - HikariCP 在闲置一段时间后失去与 MySQL 的连接

android - 如何在android中连接服务器数据库而不会丢失/失败?

mysql - 获取MYSQL加密 key

sql - 如何从该表中的每个不同用户中选择最高分数?

mysql - 通过 refTabels 查询

sql - 合并 NULL 的表

mysql - Sql 连接三表

sql-server - Entity Framework ,如何增加限制?