SQL

SQL 구조

woody-j 2024. 1. 9. 10:38

1.SELECT 학습

1) 구조

SELECT

<col>

FROM [table]

WHERE <col> = [value]

ORDER BY <col>

(1) SELECT <col>

  • 테이블에서 조회 하고 싶은 데이터의 필드 리스트를 기술                     
  • 여러 개의 필드를 읽을 때에는 콤마(,)로 구분하여 연결
  • 테이블 전체를 조회할때 select * from ...
    -> 필요한 컬럼만 기술하여 불필요한 데이터 조회 금지
  • Select top 1 from ~ 조회된 데이터의 1행 반환
  • Select top @n from ~ 조회된 데이터의 변수 행만큼 반환
  • Select count(*) from ~ 조회된 데이터의 ROW 카운트 반환
    => 몇행이 있는지 반환 가능

(2) FROM [table]

  • 데이터가 저장되어 있는 테이블 이름 기술
  • 스키마명 적용하여 기술 가능. (dbo.tbl_x): 구분자
  • [테이블] AS [별칭]으로 별명 사용 가능
    => 테이블 명이 길고 복잡할 때 별칭 사용
  • 링크드 조회시 [링크명][DB명][스카마명],[테이블명] 기술

(3) WHERE [value]

  • 필요한 정보만 조회 할 수 있도록 필터 적용.
  • =,>=,<=,>,< 사용
    • < (less than)
    • = (equals)
    • <= (less than or equal to)
    • >= (greater than or equal to)
    • != (not equal to)
    • <>(not equal to) : 같지않음 !=과 동일
    • !> (not greater) : 왼쪽 피연산자가 오른쪽 피연산자보다 크지 않을 때 <= 과 동일
    • !< (not less than) : 왼쪽 피연산자가 오른쪽 피연산자보다 작지 않을 때 >= 과 동일
  • AND, OR, IN, NOT IN 사용
    • IN Operators
      여러 값을 동일한 열에 비교해야할 때 유용

  • Like 명령을 사용한 구문 검색 사용 가능
    => 어떤 키워드를 포함시키고, 포함시키지 않고 검색
    WHERE Like '%value%'
    • %조건% : 앞뒤 어느 문자열이 와도 상관없이 조건문에 포함된 데이터 반환
    • _(underscore) : 어떤 것이는 한 문자 허용
    • [(text)]: []안에 적힌 글자만 허용
    • [^(text)] : ^뒤에 적힌 글자를 제외한 글자들을 허용
    ex)
// symbol이 'A'를 어디든지 포함하는 모든 레코드를 선택합니다. 예를 들어, 'AAPL', 'BRKA', 'TSLA' 등이 해당됩니다.
select * from nasdaq_company where symbol like "%A%',

// 'A'로 시작하는 symbol을 가진 레코드를 선택합니다. 예를 들어, 'AAPL', 'AMZN' 등이 해당됩니다.
select * from nasdaq_company where symbol like 'A%'

// AA'로 시작하는 symbol을 가진 레코드를 선택합니다. 예를 들어, 'AAL', 'AAP' 등이 해당됩니다.
select * from nasdaq_company where symbol like 'AA%'

// 'A'로 시작하고 정확히 두 글자인 symbol을 가진 레코드를 선택합니다. 여기서 '_'는 어떤 한 문자를 나타냅니다. 예를 들어, 'AT', 'AI' 등이 해당됩니다.
select * from nasdaq_company where symbol like 'A_'

// 'A'로 시작하고, 그 다음 어떤 한 문자가 오며, 그 후 'C'로 시작하는 문자열을 가진 symbol을 선택합니다. 예를 들어, 'ABC', 'AEC' 등이 해당됩니다.
select * from nasdaq_company where symbol like 'A_C%'

// 'AA'로 시작하고 그 다음에 'C' 또는 'P'가 오는 symbol을 선택합니다. 예를 들어, 'AAC', 'AAP' 등이 해당됩니다.
select * from nasdaq_company where symbol like 'AA[C, p]%'

// 'AA'로 시작하고 그 다음에 'L'을 제외한 어떤 문자가 오는 symbol을 선택합니다. 'AAL'은 제외되고, 'AAC', 'AAB' 등이 포함됩니다.
select * from nasdaq_company where symbol like 'AA[^L]%'

// 'A'로 시작하고, 어떤 문자들이든 오고, 'L'로 끝나는 다음에 한 문자가 더 오는 symbol을 가진 레코드를 선택합니다. 예를 들어, 'AAPL', 'AATLZ' 등이 해당됩니다.
select * from nasdaq_company where symbol like 'A%L_'
  • 범위 검색시 Between 사용 가능