전체 코드


1️⃣ SQL에서 데이터를 조회하는 기본 방법

SQL에서 데이터를 검색하는 가장 기본적인 방법은 SELECT 문을 사용하는 것이다.
그러나 단순히 SELECT 만 사용해서는 데이터를 가져올 수 없다.
어디서 데이터를 가져올지(FROM), 어떤 조건을 만족하는 데이터를 가져올지(WHERE)도 함께 명시해야 한다.


2️⃣ SELECT FROM WHERE 기본 구조

🔹 기본적인 데이터 조회

SELECT * FROM players;

📌 * : 모든 열(column)의 데이터를 가져온다.
📌 FROM players : players 테이블에서 데이터를 조회한다.

🔹 특정 열만 선택하여 조회

SELECT nameFirst, nameLast, birthYear FROM players;

📌 nameFirst, nameLast, birthYear 열만 가져온다.
📌 * 대신 특정 열을 지정하면 필요한 데이터만 가져올 수 있다.


3️⃣ WHERE 절을 사용한 조건 검색

데이터를 조회할 때 특정 조건을 만족하는 행(row)만 가져올 수 있다.

🔹 특정 조건에 맞는 데이터 조회

SELECT nameFirst, nameLast, birthYear FROM players WHERE birthYear = 1974;

📌 WHERE birthYear = 1974 : 1974년에 태어난 선수만 조회한다.

🔹 AS를 이용한 별칭(Alias)

SELECT nameFirst AS FirstName, nameLast AS LastName FROM players;

📌 AS FirstName : nameFirst 열을 FirstName 으로 표시
📌 AS LastName : nameLast 열을 LastName 으로 표시

🔹 WHERE 조건 연산자

연산자의미예제
=같다WHERE birthYear = 1974
!= 또는 <>다르다WHERE birthCountry != 'USA'
>크다WHERE birthYear > 1980
<작다WHERE birthYear < 1980
>=크거나 같다WHERE birthYear >= 1980
<=작거나 같다WHERE birthYear <= 1980

🔹 AND, OR 조건

SELECT nameFirst, nameLast, birthYear, birthCountry 
FROM players 
WHERE birthYear = 1974 AND birthCountry != 'USA';

📌 AND : 두 조건을 모두 만족하는 데이터만 조회
📌 1974년 출생이면서, 출생지가 미국이 아닌 사람 조회

SELECT nameFirst, nameLast, birthYear, birthCountry 
FROM players 
WHERE birthYear = 1974 OR birthCountry != 'USA';

📌 OR : 하나의 조건만 만족해도 조회
📌 1974년 출생이거나, 출생지가 미국이 아닌 사람 조회

SELECT nameFirst, nameLast, birthYear, birthCountry 
FROM players 
WHERE birthYear = 1974 OR (birthCountry != 'USA' AND weight > 185);

📌 괄호 사용 (())
📌 AND의 우선순위가 OR 보다 높기 때문에, 명확한 조건을 위해 괄호를 사용


4️⃣ NULL 값 조회

NULL은 데이터가 없음(none) 을 의미하며, = 연산자로 비교할 수 없다.

🔹 NULL 값 조회

SELECT nameFirst, nameLast, birthYear, birthCountry FROM players WHERE deathYear IS NULL;

📌 IS NULL : deathYear 값이 없는 선수 조회

🔹 NULL이 아닌 값 조회

SELECT nameFirst, nameLast FROM players WHERE birthCity IS NOT NULL;

📌 IS NOT NULL : birthCity 값이 존재하는 선수 조회


5️⃣ 문자열 패턴 검색 (LIKE)

🔹 LIKE 연산자

SQL에서 특정 패턴을 만족하는 데이터를 조회할 때 LIKE 을 사용한다.

와일드카드의미
%임의의 문자열 (0개 이상)
_특정 한 글자만

🔹 예제: 특정 단어로 시작하는 데이터 조회

SELECT birthCity FROM players WHERE birthCity LIKE 'NEW%';

📌 NEW% : "NEW"로 시작하는 모든 데이터 검색 (예: NEW YORK, NEW HAVEN)

🔹 예제: 특정 위치의 문자 검색

SELECT birthCity FROM players WHERE birthCity LIKE 'NEW_';

📌 NEW_ : "NEW" 다음에 한 글자가 있는 데이터 검색 (예: "NEWA", "NEWB")

SELECT birthCity FROM players WHERE birthCity LIKE 'NEW Yor_';

📌 NEW Yor_ : "NEW York" 다음 한 글자가 있는 데이터 검색 (예: "NEW YorkA")


6️⃣ ORDER BY (정렬)

🔹 오름차순 정렬 (ASC 생략 가능)

SELECT * FROM players WHERE birthYear IS NOT NULL ORDER BY birthYear;

📌 ORDER BY birthYear : 출생 연도를 기준으로 오름차순 정렬 (기본값)

🔹 내림차순 정렬 (DESC)

SELECT * FROM players WHERE birthYear IS NOT NULL ORDER BY birthYear DESC;

📌 ORDER BY birthYear DESC : 출생 연도를 기준으로 내림차순 정렬

🔹 다중 정렬

SELECT * FROM players 
WHERE birthYear IS NOT NULL 
ORDER BY birthYear DESC, birthMonth DESC, birthDay DESC;

📌 ORDER BY birthYear DESC, birthMonth DESC, birthDay DESC
📌 출생 연도 → 월 → 일 순서로 정렬


7️⃣ TOP (상위 데이터 조회)

🔹 TOP N : 상위 N개 데이터 조회

SELECT TOP 1000 * FROM players WHERE birthYear IS NOT NULL ORDER BY birthYear DESC;

📌 TOP 1000 : 상위 1000개 데이터만 조회

🔹 TOP N PERCENT : 상위 N% 데이터 조회

SELECT TOP 1 PERCENT * FROM players WHERE birthYear IS NOT NULL ORDER BY birthYear DESC;

📌 TOP 1 PERCENT : 상위 1%의 데이터만 조회


8️⃣ OFFSET & FETCH (중간 범위 조회)

TOP은 상위 데이터만 가져올 수 있지만, 특정 범위(예: 100~200위)를 가져오려면 OFFSETFETCH를 사용해야 한다.

🔹 특정 범위의 데이터 조회 (100~200위)

SELECT * FROM players 
WHERE birthYear IS NOT NULL 
ORDER BY birthYear DESC 
OFFSET 100 ROWS FETCH NEXT 100 ROWS ONLY;

📌 OFFSET 100 ROWS : 처음 100개 데이터를 건너뜀
📌 FETCH NEXT 100 ROWS ONLY : 다음 100개 데이터를 가져옴


profile
李家네_공부방

0개의 댓글