2010-04-23 2 views
6

프로젝트의 백 엔드 측을 터치 할 수있는 모든 개발자가 알아야 할 유용한 SQL 문은 무엇입니까?프로젝트의 백 엔드 측을 터치 할 수있는 모든 개발자가 알아야 할 유용한 SQL 문/사용 패턴은 무엇입니까?

(업데이트 : 알고리즘과 마찬가지로, 정렬 문제와 셔플 문제가 있음을 알고 있으며, 이에 대한 해결책을 알고 있습니다.)이 문제는 같은 것을 목표로합니다. 예를 들어

, 내가 생각할 수있는 사람은 다음과 같습니다

어떤 학생들이 등록 를하지 않은 클래스의 목록을 가져옵니다.

있습니까 (클래스 테이블에서 가져 오기에없는 모든 된 CLASSID를 외부 이 가입하여 경기가 NULL인지 여부를 확인하거나 (A 하위 쿼리는 등록 테이블에서 모든 된 CLASSID)을 얻을 수)가 백엔드 데이터를 접할 수있는 모든 개발자의 슬리브 아래에 있어야하는 일부 SQL 문?

+4

나는 "모든 사람들이 알아야 할 Java 스 니펫이 있습니까?"라고 묻는 것과 같다고 생각합니다. 필자가 알아야 할 SQL 문은 없으며 알아야 할 SQL 구문에 대해서만 생각합니다. 게다가, 누가 어떤 일반적인 문장을 귀하의 특정 테이블 레이아웃에 유효 할 것이라고 알려주 는가? – zneak

+0

http://stackoverflow.com/questions/2119859/questions-every-good-database-sql-developer-should-be-able-to-answer –

+1

DROP DATABASE ... 매우 유용합니다. –

답변

7

흠 당신이 작성할 수 있어야하는 쿼리 유형을 일반화합니다.

  1. 먼저 똑바로 당신은 모든 테이블에 이 있다는 기록을 두 이상의 테이블을 결합하고 얻는 방법을 알고 있어야합니다
  2. 조인없는
    (없이 선택 *)로 선택
  3. 당신에게 두 개의 두 개 이상의 테이블을 결합하여 모든 테이블에 이있는 레코드를 얻는 방법을 알고 있어야합니다. 테이블에서 하나의 레코드 만 일대 다 많은 측면 관계
  4. 당신 만이 아닌 관련 테이블의 한 테이블의 기록을 얻을 수 있어야
  5. 당신은 당신은 테이블에 하나 개 레코드를 삽입 할 수 있어야한다
  6. 보고서의 집계 데이터 할 수 있어야한다
  7. 당신은 당신이 그룹을 삽입 할 수 있어야한다
  8. 테이블에 하나 개 레코드를 삭제 할 수 있어야한다
  9. 테이블에 하나 개 레코드를 업데이트 할 수 있어야한다 커서가없는 테이블에 기록 6,당신은 없이 테이블에 당신은 없이 테이블에 레코드 그룹을 삭제 할 수 있어야 커서
  10. 을 레코드 그룹을 업데이트 할 수 있어야한다
  11. 커서
  12. 당신은 하나의 트랜잭션 에 여러 작업을 수행하고 기록의 조합 을 만들 수있을 것입니다
  13. 트래핑 오류를 처리하고 를 사용하는시기를 알 수있을 것입니다 UNION 부사장 UNION이 ALL
  14. 당신은 당신이 IF 정책을 쓸 수 있어야
  15. (CASE를 사용하는) 일부 기준에 따라 하나 개의 필드의 데이터 을 변화 할 수 있어야한다.

글쎄, 그게 바로 마음에 봄. 물론 이것은 초급 SQL 개발자를위한 것입니다. 여기에는 내가 진보 된 것으로 간주 할만한 것도 포함되어 있지 않습니다.

6

개발자는 데이터베이스 및 SQL의 원칙을 알아야합니다. 필요한 SQL 문과 같은 특정 SQL 문은 데이터베이스가 저장하는 항목과 데이터베이스의 구조에 따라 변경됩니다.

업데이트 : 업데이트 된 질문이 흥미 롭습니다. 나는 일반적으로 SQL 문이 매우 간단하다고 생각한다. 그래서 그들은 암기 가치가 없습니다. 그들이 복잡하다면 그들은 특정한 문제에 묶여 있으며 암기 할 가치가 없습니다.

+1

동의.이해는 항상 암기보다 낫습니다. – armandino

+0

그러나 처리 방법을 알아야 특정 문제를 해결할 수 있도록 해결해야 할 문제 패턴이 있습니다. – HLGEM

+0

@HLGEM 그러나 당신의 답변에서도 당신은 합리적으로 숙달 된 데이터베이스 개발자가 알아야하는 쿼리에 대해 언급 한 SQL 관련 패턴을 언급하지 않았습니다. 기억할 가치가있는 SQL에 특정한 패턴이 있습니까? 내가 말했듯이 그것은 흥미로운 질문이다. –