[SQL] 기본 문법 정리
MSSQL 기준으로 작성되었습니다.
🚀 기본 문법
SELECT 컬럼명
FROM 테이블명
WHERE 테이블 조건
GROUP BY 컬럼 명
HAVING 그룹 조건
ORDER BY 컬럼명
- SQL 구문을 작성 시에는 위와 같은 순서로 작성하지만 실제 SQL 구문의 실행순서는 다음과 같다
- FROM : 조회 테이블 확인
- WHERE : 데이터 추출 조건 확인
- GROUP BY : 컬럼 그룹화
- HAVING : 그룹화 조건
- SELECT : 데이터 추출
- 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
- FROM : batting 테이블로부터
- WHERE : yearID가 2004인 데이터만
- GROUP BY : teamID 컬럼 기준으로 그룹화 시켜
- HAVING : 그룹의 hr 데이터의 합이 200이상인 경우에만
- SELECT : teamID와 hr의 합(HrCount라는 변수명으로) 데이터 추출
- 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
- 원하는 데이터를 삭제할 수 있다
Author And Source
이 문제에 관하여([SQL] 기본 문법 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@uchang903/SQL-기본-문법-정리
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
SELECT 컬럼명
FROM 테이블명
WHERE 테이블 조건
GROUP BY 컬럼 명
HAVING 그룹 조건
ORDER BY 컬럼명
- FROM : 조회 테이블 확인
- WHERE : 데이터 추출 조건 확인
- GROUP BY : 컬럼 그룹화
- HAVING : 그룹화 조건
- SELECT : 데이터 추출
- ORDER BY : 데이터 순서 정렬
SELECT teamID, SUM(hr) AS HrCount
FROM batting
WHERE yearID = 2004
GROUP BY teamID
HAVING SUM(hr) >= 200
ORDER BY HrCount DESC
- FROM : batting 테이블로부터
- WHERE : yearID가 2004인 데이터만
- GROUP BY : teamID 컬럼 기준으로 그룹화 시켜
- HAVING : 그룹의 hr 데이터의 합이 200이상인 경우에만
- SELECT : teamID와 hr의 합(HrCount라는 변수명으로) 데이터 추출
- ORDER BY : HrCount를 내림차순으로 정렬
- 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
- 원하는 데이터를 삭제할 수 있다
Author And Source
이 문제에 관하여([SQL] 기본 문법 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@uchang903/SQL-기본-문법-정리
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
집계 함수는 NULL 값을 제외한다
SELECT COUNT(*)
FROM players
SELECT COUNT(playerID)
FROM players
SELECT COUNT(DISTINCT birthCity)
FROM players
SELECT SUM(weight)
FROM players
SELECT SUM(DISTINCT weight)
FROM players
SELECT AVG(weight)
FROM players
SELECT SUM(weight) / COUNT(weight)
FROM players
SELECT MAX(weight) , MIN(weight)
FROM players
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
- 원하는 데이터를 삭제할 수 있다
Author And Source
이 문제에 관하여([SQL] 기본 문법 정리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@uchang903/SQL-기본-문법-정리저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)