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
여러 값을 동일한 열에 비교해야할 때 유용
- IN Operators
- Like 명령을 사용한 구문 검색 사용 가능
=> 어떤 키워드를 포함시키고, 포함시키지 않고 검색
WHERE Like '%value%'- %조건% : 앞뒤 어느 문자열이 와도 상관없이 조건문에 포함된 데이터 반환
- _(underscore) : 어떤 것이는 한 문자 허용
- [(text)]: []안에 적힌 글자만 허용
- [^(text)] : ^뒤에 적힌 글자를 제외한 글자들을 허용
// 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 사용 가능