본문 바로가기
[Programmers]/SQL 고득점 Kit

SQL SELECT 문법정리

by 코드몽규 2022. 2. 5.
반응형
  • 테이블의 모든 데이터를 출력
SELECT * FROM 테이블명;

  • 데이터의 특정 컬럼만을 출력
SELECT 컬럼1, 컬럼2, .. FROM 테이블명

 

 


  • 특정 조건에 만족 하는 데이터를 출력
SELECT * FROM 테이블명 WHERE 조건식;

1. 직급이 사원인 데이터를 출력

SELECT * FROM 테이블명 WHERE position="사원";

2. 직급이 사원이고 성별이 여성인 데이터를 출력

SELECT * FROM 테이블명 WHERE position="사원" AND sex="여성";

3. 입사일(datetime)이 2019-01-01 ~ 2020-12-31 사이의 데이터를 출력

SELECT * FROM 테이블명 WHERE datetime BETWEEN '2019-01-01' AND '2020-12-31';

4. 성별이 남성이 아닌 (즉 여성인) 데이터를 출력

SELECT * FROM 테이블명 WHERE NOT sex="남성";

5. 이름이 "이"으로 시작하는 데이터를 출력

SELECT * FROM 테이블명 WHERE name LIKE "이%";

6. 주소가 "seoul"로 끝나는 데이터를 출력 

SELECT * FROM 테이블명 WHERE address LIKE "%seoul";

7. 이름에 "준"이 들어가는 데이터를 출력

SELECT * FROM 테이블명 WHERE name LIKE "%준%";

8. 이름에 "준" 또는 "원" 이 포함되는 데이터를 출력

SELECT * FROM 테이블명 WHERE name LIKE "%준%" OR NAME LIKE "%원%";

  • 다른 테이블과 결합 
SELECT * FROM 테이블1 INNER JOIN 테이블2 ON 테이블1.컬럼 = 테이블2.컬럼;
SELECT * FROM 테이블1 LEFT JOIN 테이블2 ON 테이블1.컬럼 = 테이블2.컬럼;
SELECT * FROM 테이블1 RIGHT JOIN 테이블2 ON 테이블1.컬럼 = 테이블2.컬럼;

join 이해하기


  • 데이터의 그룹화
SELECT 그룹화하는컬럼명 FROM 테이블명 GROUP BY 그룹화하는컬럼명;

1. 테이블의 sex(성별)컬럼을 그룹화하고, 각 그룹에 몇 개의 데이터가 있는지 카운트한 결과를 출력

SELECT sex, count(*) FROM 테이블 GROUP BY sex;

2. 테이블의 컬럼을 그룹화하고 추가로 조건을 정의하기 위해서는 HAVING 키워드를 사용합니다.

SELECT position, count(*) FROM 테이블명 GROUP BY position HAVING count(*)>=5;

  • 함수 활용

1. 테이블에서 가장 입사일(dateofentry)이 빠른(오래된) 사람을 출력합니다.

SELECT MIN(dateofentry) FROM 테이블명;

2. 테이블에서 가장 큰 생일(가장 어린) 데이터를 출력합니다.

SELECT MAX(birth) FROM 테이블명;

3. 테이블의 학생별 점수(score)의 평균을 출력합니다.

SELECT AVG(score) FROM student;

  • 여러 조건을 지정하여 출력

1. IN 명령어는 해당 컬럼에 두 가지 이상의 조건을 지정하기 위해 사용합니다. 예를 들어 직급(position)이 5나 6인 사람들을 출력하는 명령어는 다음과 같습니다.

SELECT * FROM 테이블명 WHERE position IN (5,6);
SELECT * FROM 테이블명 WHERE position = 5 OR position = 6;

2. INSELECT문을 사용하는것도 가능합니다. 예를 들어 직급(position)이 6인 사람과 같은 지역(address)에 살고 있는 사람들을 출력하는 명령어는 다음과 같습니다.

SELECT * FROM 테이블명
WHERE address IN (SELECT address FROM 테이블명 WHERE position = 6);

3.SELECT을 중복해서 다음과 같은 명령도 가능합니다. 예를 들어 다음 명령어는 Acomapny에서 가장 어린 사람의 모든 정보를 출력합니다.

SELECT * FROM 테이블명
WHERE birth = (SELECT MAX(birth) FROM 테이블명);

 


출처: https://lamarr.dev/sql/2020/04/30/01-sqlselect.html

반응형

댓글