복붙노트

[SQL] 테이블에서 하나를 선택하여 무엇을 의미합니까?

SQL

테이블에서 하나를 선택하여 무엇을 의미합니까?

뭔가로 다음과 나는 많은 쿼리를 보았다.

Select 1  
From table

이 일 평균,이 실행 될 방법, 그것은 무엇을 무엇을 반환합니까?

또한, 시나리오의 어떤 유형이 사용할 수 있습니다?

해결법

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

    1.TABLE_NAME 수단으로부터 하나를 선택, "테이블에서 반환 한". 그것은 정말 아닌 경우에도, 그 자체로 꽤 흥미를 끌지 때문에 일반적으로이 @gbn 노트,이 그것이 그러나, 일반적인 정도가 유의해야한다 가장 좋은 방법은, 필요없는 경우에는 종종 EXISTS (사용 될 것이다 의미 (말했다, 다른 사람이 그것을 사용하기 때문에 나는 그것을 사용하고 즉시 "더 분명"입니다. 물론, 그 점성 닭 대 달걀의 문제가 될 수도 있지만, 나는 드웰 일반적으로하지 않습니다)).

    TABLE_NAME 수단으로부터 하나를 선택, "테이블에서 반환 한". 그것은 정말 아닌 경우에도, 그 자체로 꽤 흥미를 끌지 때문에 일반적으로이 @gbn 노트,이 그것이 그러나, 일반적인 정도가 유의해야한다 가장 좋은 방법은, 필요없는 경우에는 종종 EXISTS (사용 될 것이다 의미 (말했다, 다른 사람이 그것을 사용하기 때문에 나는 그것을 사용하고 즉시 "더 분명"입니다. 물론, 그 점성 닭 대 달걀의 문제가 될 수도 있지만, 나는 드웰 일반적으로하지 않습니다)).

     SELECT * FROM TABLE1 T1 WHERE EXISTS (
         SELECT 1 FROM TABLE2 T2 WHERE T1.ID= T2.ID
     );
    

    기본적으로, 위의 표 2에서 해당 ID를 (이것은 분명 인위적인 예입니다,하지만 난 그게 아이디어를 전달 믿습니다. 개인적으로, 나는 아마 할 것이다이 표 1에서 모든 것을 반환 위의 SELECT로 * TABLE1 T1 FROM WHERE ID IN (TABLE2 FROM SELECT ID); I)은 독자에게 더 명시 적으로 FAR으로하지에 대한 정황 강력한 이유가 있었다하지 않는 것을 볼 수있다.

    사실 난 그냥 지금까지 잊어 한 경우가 있습니다. 당신은, 외부 언어와 데이터베이스에서 값의 존재를 결정하려고하는 경우에는 때로는 TABLE_NAME FROM (1)가 사용됩니다를 선택합니다. 이 개별 열을 선택 비해 상당한 이점을 제공하지 않지만, 구현에 따라, 그것은 종종 경우가 있기 때문에 단순히하는 SELECT *을하는 동안 상당한 이득을 제공 할 수 있습니다 더 많은 열이 그 언어에 대한 DB를 반환, 더 큰이 다시 그 시간을 의미 데이터 구조는 이동합니다.

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

    2.테이블의 모든 행에 대해 상수 1을 반환합니다 테이블에서 하나를 선택합니다. 이 기록은 당신의 where 절과 일치 및 / 또는 가입하면 저렴한 비용으로 판단 할 때 유용합니다.

    테이블의 모든 행에 대해 상수 1을 반환합니다 테이블에서 하나를 선택합니다. 이 기록은 당신의 where 절과 일치 및 / 또는 가입하면 저렴한 비용으로 판단 할 때 유용합니다.

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

    3.당신이 뭔가를 의미하는 경우

    당신이 뭔가를 의미하는 경우

    SELECT * FROM AnotherTable
      WHERE EXISTS (SELECT 1 FROM table WHERE...) 
    

    그것은 신화가 1보다 낫다는 것을의

    SELECT * FROM AnotherTable
      WHERE EXISTS (SELECT * FROM table WHERE...) 
    

    의 1 개 *는 무시됩니다 존재하고 당신은 ANSI SQL 1992 표준의 191 페이지에 따라이 쓸 수 있습니다 :

    SELECT * FROM AnotherTable
      WHERE EXISTS (SELECT 1/0 FROM table WHERE...) 
    
  4. ==============================

    4.그것이 말하는 않습니다 - 그것은 항상 조항이 존재하는 기록이 당신의 일치 여부를 확인하는 데 사용되는 정수 1을 반환합니다.

    그것이 말하는 않습니다 - 그것은 항상 조항이 존재하는 기록이 당신의 일치 여부를 확인하는 데 사용되는 정수 1을 반환합니다.

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

    5.그것은 살아 경우 테이블에서 1 검색 또는 연결 풀에서 /로의 연결을 반환 할 때 자주 사용, 확인하기 위해 연결을 테스트 쿼리 일부 데이터베이스에서 사용을 선택합니다.

    그것은 살아 경우 테이블에서 1 검색 또는 연결 풀에서 /로의 연결을 반환 할 때 자주 사용, 확인하기 위해 연결을 테스트 쿼리 일부 데이터베이스에서 사용을 선택합니다.

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

    6.결과는 테이블의 모든 레코드에 대한 1입니다.

    결과는 테이블의 모든 레코드에 대한 1입니다.

  7. ==============================

    7.널리 알려져 있지 않지만, 쿼리는 GROUP BY 절없이 HAVING 절을 가질 수 있습니다.

    널리 알려져 있지 않지만, 쿼리는 GROUP BY 절없이 HAVING 절을 가질 수 있습니다.

    이러한 상황에서, HAVING 절은 전체 집합에 적용됩니다. 분명히, SELECT 절은, 모든 열을 참조 할 수 없습니다 그렇지 않으면 것 등 "그것이하여 그룹에 포함되지 않기 때문에 열이 선택에 유효하지 않습니다"오류를 얻을 (올바른)

    (SQL 제로 열이있는 결과 집합을 허용하지 않기 때문에 - 왜?!) 따라서, 리터럴 값이 사용되어야하며 문자 값 1 (정수) 일반적으로 사용되는 : HAVING 절은 TRUE 평가되면 다음 결과 집합이 하나가 될 것입니다 그렇지 않으면 당신은 빈 세트를 얻을, 값 1을 보여주는 하나 개의 컬럼과 행.

    예 : 열 두 개 이상의 서로 다른 값이 있는지 여부를 확인하는 방법은 다음과 같습니다

    SELECT 1
      FROM tableA
    HAVING MIN(colA) < MAX(colA);
    
  8. ==============================

    8.조금 더 구체적를하기 위해, 당신은 어떻게 이것을 사용합니다

    조금 더 구체적를하기 위해, 당신은 어떻게 이것을 사용합니다

    SELECT 1 FROM MyUserTable WHERE user_id = 33487
    

    대신 일을

    SELECT * FROM MyUserTable WHERE user_id = 33487
    

    당신은 결과를보고 걱정하지 않기 때문에. 숫자 1을 요구하는 것은 (그것이 어떤 모습 업을 할 필요가 없기 때문에) 데이터베이스에 대한 매우 쉽습니다.

  9. ==============================

    9.당신이 테이블에 데이터 존재 여부를 알 수없는 경우, 당신은 쿼리를 사용할 수 있습니다 :

    당신이 테이블에 데이터 존재 여부를 알 수없는 경우, 당신은 쿼리를 사용할 수 있습니다 :

    SELECT cons_value FROM table_name;
    

    예를 보려면 :

    SELECT 1 FROM employee;
    

    그래서 우리는 테이블 및 행의 수에있는 데이터가 많은 행이 테이블에 존재하는 방법을 나타냅니다 있는지 알고이 SQL 쿼리를 사용합니다.

  10. ==============================

    10.때문에 어떤 이유로 당신은 내부 쿼리로 사용되는 시간의 출력 또는 대부분 같은 값 "1"을 원하는이 방법 당신은 .. 내부 쿼리의 결과에 따라 외부 쿼리를 계산하면 1 사용하지 모든 시간을 원하지만 일부 특정 값을 가지고 ...

    때문에 어떤 이유로 당신은 내부 쿼리로 사용되는 시간의 출력 또는 대부분 같은 값 "1"을 원하는이 방법 당신은 .. 내부 쿼리의 결과에 따라 외부 쿼리를 계산하면 1 사용하지 모든 시간을 원하지만 일부 특정 값을 가지고 ...

    이 의지는 정적으로 당신에게 값 1과 출력을 제공합니다.

  11. ==============================

    11.그냥 WHERE 절에 따라 참 또는 거짓을 확인하려면 조건이 가장 저렴한 방법이고, 테이블에서 하나를 선택합니다.

    그냥 WHERE 절에 따라 참 또는 거짓을 확인하려면 조건이 가장 저렴한 방법이고, 테이블에서 하나를 선택합니다.

  12. ==============================

    12.나는 같은, 항상 SQL 주입에 사용되는 참조 :

    나는 같은, 항상 SQL 주입에 사용되는 참조 :

    www.urlxxxxx.com/xxxx.asp?id=99 조합은 데이터베이스에서 1,2,3,4,5,6,7,8,9를 선택;

    이 번호는 데이터베이스가 존재하는 추측하고 테이블의 값을 specified.And 데이터베이스의 열 이름을 추측 할 수 있습니다.

  13. ==============================

    13.당신이 테이블 ,,,, 수단으로부터 수 첫 번째 열을 검색된다는 사실을 간단한 방법 Emply_num, 종업원에서 Empl_no을 선택; 여기 당신은 종업원 1 선택 사용하는; 수단 것을 당신은 Emply_num 열을 검색하고 있습니다. 감사

    당신이 테이블 ,,,, 수단으로부터 수 첫 번째 열을 검색된다는 사실을 간단한 방법 Emply_num, 종업원에서 Empl_no을 선택; 여기 당신은 종업원 1 선택 사용하는; 수단 것을 당신은 Emply_num 열을 검색하고 있습니다. 감사

  14. ==============================

    14.그 이유는 적어도 MySQL을 위해, 또 다른 하나입니다. 이것은 MySQL의 설명서에서이다

    그 이유는 적어도 MySQL을 위해, 또 다른 하나입니다. 이것은 MySQL의 설명서에서이다

  15. ==============================

    15.IF가 존재하는이 단지 편의를 위해 사용된다 (). 그렇지 않으면 갈 수 있습니다

    IF가 존재하는이 단지 편의를 위해 사용된다 (). 그렇지 않으면 갈 수 있습니다

    선택 * TABLE_NAME]으로부터

    'IF EXISTS'의 경우 이미지는, 우리는 단지 지정된 조건에있는 모든 행이 행의 내용이 무엇인지 중요하지 않습니다 존재 여부를 알고 필요가 없다.

    사용자에서 1 선택

    예를 들어 위의 코드, 아니 반환하지 않습니다. 행으로 no로 동일하지 않습니다. 단일 컬럼에서 1 사용자

  16. from https://stackoverflow.com/questions/7171041/what-does-it-mean-by-select-1-from-table by cc-by-sa and MIT license