반응형
- 테이블의 모든 데이터를 출력
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.컬럼;
- 데이터의 그룹화
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. IN에 SELECT문을 사용하는것도 가능합니다. 예를 들어 직급(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 테이블명);
반응형
댓글