복붙노트

[SQL] 열을 지정하지 않고 SQL INSERT. 무슨 일이야?

SQL

열을 지정하지 않고 SQL INSERT. 무슨 일이야?

사랑하는 W3 스쿨을 통해보고되었고,이 페이지를 실제로 알게 뭔가 흥미를 발견했다. 난 당신이 값에 열을 지정하지 않고 삽입 명령을 호출 할 수 몰랐다. 예를 들어;

INSERT INTO table_name
 VALUES (value1, value2, value3,...)

내 흐릿한 메모리에서 당기기, 나는 그들이 특정 순서에없는 것처럼이 치료 분야에 있다고 언급하는 SQL 교수를 기억하는 것 같다합니다 (RDB 측이 있지만,하지만이 보장되지 것).

내 질문은 값이있는 필드에 할당받을 서버 알고 어떻게하는지, 무엇입니까? 나는 자신이 테스트하는 것이지만, A는 순간에 액세스 할 수있는 모든 인 할 프로덕션 서버를 사용하지 않을거야 *.

이 기술 특정한 경우에, 나는 PostgreSQL의 작업입니다. 어떻게이 특정 구문도 유용하다?

해결법

  1. ==============================

    1.귀하의 교수가 옳았다 - 명시 적으로 값을 명명하기 전에 열 이름을 지정해야합니다.

    귀하의 교수가 옳았다 - 명시 적으로 값을 명명하기 전에 열 이름을 지정해야합니다.

    이 경우 값은 그들이 테이블 정의에 나타나는 순서에 삽입됩니다하지만.

    이 문제는 (그들이 널 (NULL) 인 경우에도) 순서가 변경 또는 열을 제거하거나 추가하는 경우, 다음 삽입 휴식 것입니다.

    그 유용성의 관점에서가 아니라 생산 코드에서 그 정도. 당신이 경우있는 거 손은 모든 열 이름을 입력 저장이 수도 단지 도움이 후 빠른 삽입 코딩.

  2. ==============================

    2.그들은 테이블 정의에있는 순서대로 필드에 삽입 얻을.

    그들은 테이블 정의에있는 순서대로 필드에 삽입 얻을.

    그래서 테이블은 = 값 2, C = VALUE3 B 필드 (A, B, C), A = 값 1을 가지고있는 경우.

    귀하의 교수가 옳았다이 게으른 및 중단 우려가있다. 하지만 신속하고 더러운 게으른 삽입하는 데 유용합니다.

  3. ==============================

    3.나는 여기에 "RTFM"를 넣어 저항 할 수 있습니다. INSERT의 장에서 발생하는 PostgreSQL의 매뉴얼 세부 정보 :

    나는 여기에 "RTFM"를 넣어 저항 할 수 있습니다. INSERT의 장에서 발생하는 PostgreSQL의 매뉴얼 세부 정보 :

    굵게 강조 광산.

  4. ==============================

    4.열이 테이블에 나타나는 값은 단지 동일한 순서로 첨가된다. 당신이 당신이있는 거 작업 컬럼의 이름을 알고 있지만, 데이터 요구에 갈 모르는 곳은 상황에서 유용합니다. 그것은 물론 휴식의 것처럼 일반적으로이 작업을 수행 할 수있는 좋은 생각이 아니라면 열의 순서 변경이나 새로운 열이 중간에 삽입됩니다.

    열이 테이블에 나타나는 값은 단지 동일한 순서로 첨가된다. 당신이 당신이있는 거 작업 컬럼의 이름을 알고 있지만, 데이터 요구에 갈 모르는 곳은 상황에서 유용합니다. 그것은 물론 휴식의 것처럼 일반적으로이 작업을 수행 할 수있는 좋은 생각이 아니라면 열의 순서 변경이나 새로운 열이 중간에 삽입됩니다.

  5. ==============================

    5.그 구문은 단지 당신이 컬럼의 수와 같은 수의 값으로 제공하는 경우에만 경우 열을 지정하지 않고 작동합니다. 두 번째 더 중요한 것은 SQL 테이블의 열이 같은 순서로 항상하고는 테이블 정의에 달려있다. SQL 테이블에 어떤 타고난 순서가없는 유일한 행입니다.

    그 구문은 단지 당신이 컬럼의 수와 같은 수의 값으로 제공하는 경우에만 경우 열을 지정하지 않고 작동합니다. 두 번째 더 중요한 것은 SQL 테이블의 열이 같은 순서로 항상하고는 테이블 정의에 달려있다. SQL 테이블에 어떤 타고난 순서가없는 유일한 행입니다.

  6. ==============================

    6.테이블이 생성 될 때, 각각의 열은 시스템 테이블 내의 순서 번호를 가질 것이다. 그래서 각각의 값은 순서에 따라 삽입 될 것입니다 ..

    테이블이 생성 될 때, 각각의 열은 시스템 테이블 내의 순서 번호를 가질 것이다. 그래서 각각의 값은 순서에 따라 삽입 될 것입니다 ..

    첫 번째 값은 첫 번째 열에로 이동 ... 등등 것

    SQL Server에서 시스템 테이블 syscolumn이 순서를 유지한다. PostgreSQL은이 비슷한을 가져야한다 ..

  7. from https://stackoverflow.com/questions/11884822/sql-insert-without-specifying-columns-what-happens by cc-by-sa and MIT license