일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- Java
- Til
- 코딩테스트준비
- Spring
- lower bound
- 항해99
- BFS
- 우선순위큐
- 네트워크 계층
- 동적 프로그래밍
- DP
- 브루트포스
- 그래프
- 스프링
- 그리디
- 스프링 핵심 원리 - 기본편
- 정렬
- 그래프 이론
- 프로그래머스
- 데이터베이스
- 알고리즘
- BinarySearch
- 99클럽
- 완전탐색
- 자바
- DFS
- 개발자취업
- 백트래킹
- 백준
- 트리
- Today
- Total
AtraFelis's Develop Diary
[SQL] SELECT로 데이터 출력하기 본문
학번 | 이름 | 학년 | 수강과목 |
---|---|---|---|
1 | 홍길동 | 2 | 수학 |
2 | 김진우 | 1 | 수학 |
3 | 오형준 | 2 | 국어 |
4 | 정소화 | 3 | 인공지능 |
이렇게 구성된 학생 테이블이 있다고 가정하자.
기본 검색
SELECT 속성명 FROM 테이블명
SELECT 속성1, 속성2 FROM 테이블명
기본 SELECT
문의 형식은 이러하며, SELECT
와 함께 검색하고 싶은 속성의 이름을 나열하면 된다.
SELECT 학번 FROM 학생;
학번 |
---|
1 |
2 |
3 |
4 |
SELECT 학번, 이름 FROM 학생;
학번 | 이름 |
---|---|
1 | 홍길동 |
2 | 김진우 |
3 | 오형준 |
4 | 정소화 |
첫번째 SQL문은 "학생 테이블에서 학번 속성을 출력해주세요"라는 의미이고, 두번째 SQL문은 "학생 테이블에서 학번, 이름 속성을 출력해주세요"라는 의미이다.
SELECT * FROM 학생;
모든 속성을 검색하고 싶을 때는 즉, 테이블 전체를 보고 싶을 때는 속성명에 *
를 넣어주면 된다.
중복을 제거하여 검색
위 학생 테이블에서 학년 속성만 검색을 해보자.
SELECT 학년 FROM 학생;
학년 |
---|
2 |
1 |
2 |
3 |
그러면 이런 결과 테이블이 출력이 될 것이다. 동일한 투플이 여러개 존재함에도, 그냥 출력되는 것을 알 수 있다. 여기서는 2학년 속성이 중복되어 출력되었다. 이러한 중복이 싫다면 속성명 앞에 DISTICNT
를 붙여주면 된다.
SELECT DISTINCT 학년 FROM 학생;
학년 |
---|
2 |
1 |
3 |
중복 없이 결과 테이블이 출력된 것을 확인할 수 있다.
중복 허용하여 출력하라는 ALL
키워드도 존재한다. 기본값으로 지정되어 있기에 작성하지 않아도 상관없으나 중복 허용을 명시적으로 표기하고 싶다면 아래와 같이 ALL
키워드를 사용하면 된다.
SELECT ALL 학년 FROM 학생;
산술식을 이용한 검색
SELECT
문과 함께 산술식도 사용할 수 있다. +, -, *, /
등의 산술 연산자로 구성된다.
SELECT 학번+10 FROM 학생;
학번 |
---|
11 |
12 |
13 |
14 |
학번에 수를 더하여 출력하는 일은 거의 없겠지만, 예시를 들기 위해 사용하였다.
위와 같이 결과 테이블이 출력된다.
정렬 검색
위의 예시에서 학년
속성을 출력한 결과 테이블을 보면 알 수 있듯이, SELECT
문으로 검색한 결과 테이블은 DBMS가 정한 순서대로 출력된다. 위 테이블에서 우리가 원하는데로 정렬하여 결과를 출력하고 싶을 때는 ORDER BY
키워드를 사용하면 된다.
SELECT 속성1, 속성2 FROM 테이블명
[ORDER BY 속성명 [ASC | DESC]]
[]는 선택사항이라는 의미이다. 명령어에 있어도 되고 없어도 된다.
위와 같이 일반적인 SELECT
문 뒤에 ORDER BY
키워드를 덧붙이면 된다. ASC
는 오름차순, DESC
는 내림차순을 의미하며 이 옵션을 따로 지정하지 않았을 경우, 기본값으로 ASC
, 오름차순으로 정렬되어 출력된다.
SELECT 학년, 이름, 수강과목 FROM 학생
ORDER BY 학년;
학년 | 이름 | 수강과목 |
---|---|---|
1 | 김진우 | 수학 |
2 | 홍길동 | 수학 |
2 | 오형준 | 국어 |
3 | 정소화 | 인공지능 |
ORDER BY
뒤에 명기된 학년
속성을 기준으로 정렬된 결과 테이블이 출력된다. 정렬 기준 속성을 따로 지정하지 않았으므로, 오름차순으로 출력된 것을 확인할 수 있다.
SELECT 학년, 이름, 수강과목 FROM 학생
ORDER BY 학년 DESC;
학년 | 이름 | 수강과목 |
---|---|---|
3 | 정소화 | 인공지능 |
2 | 홍길동 | 수학 |
2 | 오형준 | 국어 |
1 | 김진우 | 수학 |
DESC
옵션을 지정하면 내림차순으로 출력된 것을 확인할 수 있다.
'DataBase' 카테고리의 다른 글
[DataBase] 함수 종속과 정규화 (0) | 2024.12.09 |
---|---|
[DataBase] 데이터베이스의 이상 현상(Anomaly) (0) | 2024.12.02 |
E-R모델을 이용한 관계 데이터베이스 설계 방법 (0) | 2024.11.27 |
[DataBase] 인덱스(index)란? (0) | 2024.09.04 |
[데이터베이스] 관계형 DB vs 비관계형 DB (0) | 2024.05.18 |