[SQL] 기본 문법 정리

9526 단어 dbsqldb

MSSQL 기준으로 작성되었습니다.

🚀 기본 문법


SELECT 컬럼명
FROM 테이블명
WHERE 테이블 조건 
GROUP BY 컬럼 명
HAVING 그룹 조건
ORDER BY 컬럼명
  • SQL 구문을 작성 시에는 위와 같은 순서로 작성하지만 실제 SQL 구문의 실행순서는 다음과 같다
  1. FROM : 조회 테이블 확인
  2. WHERE : 데이터 추출 조건 확인
  3. GROUP BY : 컬럼 그룹화
  4. HAVING : 그룹화 조건
  5. SELECT : 데이터 추출
  6. ORDER BY : 데이터 순서 정렬

예제

  • 2004년도에 200홈런 이상을 날린 팀을 조회할 때

SELECT teamID, SUM(hr) AS HrCount
FROM batting
WHERE yearID = 2004
GROUP BY teamID
HAVING SUM(hr) >= 200
ORDER BY HrCount DESC
  1. FROM : batting 테이블로부터
  2. WHERE : yearID가 2004인 데이터만
  3. GROUP BY : teamID 컬럼 기준으로 그룹화 시켜
  4. HAVING : 그룹의 hr 데이터의 합이 200이상인 경우에만
  5. SELECT : teamID와 hr의 합(HrCount라는 변수명으로) 데이터 추출
  6. ORDER BY : HrCount를 내림차순으로 정렬

🚀 CASE 문

  • SQL 쿼리문에서는 조건에 따라 서로 다른 값을 반환할 수 있는 CASE 표현식을 사용할 수 있다.

예제


SELECT *,
	CASE 
		WHEN college is NULL THEN 'NO'
		ELSE 'YES' 
	END AS NewCol
FROM players
  • college컬럼이 NULL 일 경우 NO, 그 이외의 경우 YES를 NewCol이라는 컬럼에 저장한다

SELECT *,
	CASE 
		WHEN birthMonth < 3 THEN N'1분기'
		WHEN birthMonth < 6 THEN N'2분기'
		WHEN birthMonth < 9 THEN N'3분기'
		WHEN birthMonth < 12 THEN N'4분기'
		ELSE N'이외' 
	END AS NewCol2
FROM players
  • birthMonth컬럼의 값을 3,6,9,12 4분기로 나누어 NewCol2에 그에 맞는 값을 저장한다

🚀 집계 함수

집계 함수는 NULL 값을 제외한다

COUNT(컬럼명)

  • 모든 행의 개수를 출력
SELECT COUNT(*)
FROM players
  • playerID 컬럼의 행의 개수를 출력
SELECT COUNT(playerID)
FROM players
  • birthCity 컬럼의 겹치지 않는 데이터의 개수 출력
SELECT COUNT(DISTINCT birthCity)
FROM players

SUM(컬럼명)

  • weihgt 컬럼의 합계 출력
SELECT SUM(weight)
FROM players
  • weihgt 컬럼의 겹치지 않는 데이터들의 합계 출력
SELECT SUM(DISTINCT weight)
FROM players

AVG(컬럼명)

  • weihgt 컬럼 데이터들의 평균 출력
  • 당연하게도 합계를 구한 뒤, COUNT로 나눠준 값과 일치
SELECT AVG(weight)
FROM players
SELECT SUM(weight) / COUNT(weight)
FROM players

MAX,MIN(컬럼명)

  • weihgt 컬럼 데이터들의 최대값, 최소값 출력
SELECT MAX(weight) , MIN(weight)
FROM players

🚀 INSERT DELETE UPDATE

INSERT INTO salaries
VALUES (2022, 'KKK', 'NL', 'LeeWxx', 100)
  • salaries 테이블의 컬럼 순서에 맞춰 데이터를 추가할 수 있다
INSERT INTO salaries(yearID, teamID, playerID, lgID)
VALUES (2022, 'KKK',  'Lee', 'NL')
  • 컬럼 순서를 직접 지정 후 데이터를 추가할 수 있다
UPDATE salaries
SET salary += 2000
WHERE yearID = 2022
  • WHERE로 변경을 원하는 데이터의 조건을 지정한 뒤 SET으로 원하는 컬럼의 데이터를 변경 가능
DELETE FROM salaries
WHERE yearID = 2022
  • 원하는 데이터를 삭제할 수 있다

좋은 웹페이지 즐겨찾기