SQL/SQL 기본

SQL 기본(1): SELECT, WHERE, 기타 연산자

민서타 2023. 8. 16. 17:09

1. 기본 구문:

SELECT <col> FROM [table] WHERE <col> = [value] ORDER BY [col]

 1) 응용( SELECT *)

  SELECT * FROM [table] WHERE <col> = [value] ORDER BY [col] => * (테이블 내 모든 데이터 조회)

  • 비교 연산자: =, <=, >=, !=, <> (값이 아닌 것)
  • 논리 연산자: AND, OR, IN, NOT, BETEWEEN, ALL/모든 비교집합이 참이면 T, SOME/비교집합 중 일부가 참이면 T,           ANY/비교집합 중 하나라도 참이면 T, EXISTS/하위쿼리에 행이 포함되면 T, LIKE/피연산자가 패턴과 일치하면 T
  • 연산자 우선순위:                                                                                                                                                                  비트-> * / % -> + - & ^ | -> 비교 연산자 -> NOT -> AND -> ALL ANY BETEWEEN IN LIKE OR SOME -> =(할당)

-- 비교연산자로 특정값 검색 = < > <= >= != <>
SELECT * FROM nasdaq_company WHERE ipo_year = 2021
SELECT * FROM nasdaq_company WHERE ipo_year <> 2021 -- 2021년이 아닌것

SELECT * FROM nasdaq_company WHERE symbol = 'MSFT'
SELECT * FROM nasdaq_company WHERE last_crawel_date = '2021-10-14'
SELECT * FROM nasdaq_company WHERE ipo_year BETWEEN 2010 AND 2011
SELECT * FROM nasdaq_company WHERE last_crawel_date BETWEEN '2021-10-14' AND '2021-05-04'
SELECT * FROM nasdaq_company WHERE (symbol >= 'A') and (symbol <= 'B')


 

--OR 연산자 검색
SELECT * FROM nasdaq_company WHERE symbol = 'MSFT' OR symbol = 'AMZN'



--나스닥 회사 테이블에서 기술 또는 소비자 서비스 컬럼에서 상징이 다음과 같은 것 추출
SELECT * FROM nasdaq_company WHERE (sector = 'Technology' OR sector = 'Consumer Services')
AND symbol IN ('MSFT','AND','AMZN')

SELECT * FROM nasdaq_company WHERE symbol = ALL(
SELECT 'MSFT' UNION ALL
SELECT 'AMD' UNION ALL
SELECT 'XXXX' --XXXX 가 존재하지 않아 결과 조회 불가
)



--SOME 일부 값이 만족하는 조건 검색
SELECT * FROM nasdaq_company WHERE symbol = SOME(
SELECT 'MSFT' UNION ALL
SELECT 'AMD' UNION ALL
SELECT 'XXXX' --XXXX 가 존재하지 않아 결과 조회 불가
)



--ANY 하나라도 값이 만족하는 조건 검색
SELECT * FROM nasdaq_company WHERE symbol = ANY(
SELECT 'MSFT' UNION ALL
SELECT 'AMD' UNION ALL
SELECT 'XXXX' --XXXX 가 존재하지 않아 결과 조회 불가
)



--EXISTS 하나라도 값이 만족하는 조건 검색
SELECT * FROM nasdaq_company WHERE NOT EXISTS ( SELECT * FROM nasdaq_company WHERE symbol = 'MSFT')

IF EXISTS (SELECT * FROM nasdaq_company WHERE symbol = 'XXXX')
BEGIN
SELECT 1
ELSE BEGIN
SELECT 2
END



-- COUNT 행 세기
SELECT COUNT(SECTOR) FROM nasdaq_company --8893, null값은 포함되지 않음

 

 

 

반응형