데이터 조회하기
#01. 데이터 기본 조회 구문
1) 전체 데이터 조회 하기
SELECT * FROM <테이블 이름>;
출력결과
mysql> SELECT * FROM department;
+--------+----------------+-------+
| deptno | dname | loc |
+--------+----------------+-------+
| 101 | 컴퓨터공학과 | 1호관 |
| 102 | 멀티미디어학과 | 2호관 |
| 201 | 전자공학과 | 3호관 |
| 202 | 기계공학과 | 4호관 |
+--------+----------------+-------+
SELECT 컬럼1, 컬럼2, ... , 컬럼n from <테이블이름>;
출력결과
mysql> SELECT deptno, dname, loc FROM department;
+--------+----------------+-------+
| deptno | dname | loc |
+--------+----------------+-------+
| 101 | 컴퓨터공학과 | 1호관 |
| 102 | 멀티미디어학과 | 2호관 |
| 201 | 전자공학과 | 3호관 |
| 202 | 기계공학과 | 4호관 |
+--------+----------------+-------+
2) 원하는 데이터만 조회하기
- 컬럼명을 명시할 경우 조회를 원하는 컬럼만 명시할 수 있다.
- 컬럼 나열 순서를 필요에 따라 변경할 수 있다.
ex) 학과 테이블에서 위치와 학과이름을 조회하기
mysql> SELECT loc, dname FROM department;
+-------+----------------+
| loc | dname |
+-------+----------------+
| 1호관 | 컴퓨터공학과 |
| 2호관 | 멀티미디어학과 |
| 3호관 | 전자공학과 |
| 4호관 | 기계공학과 |
+-------+----------------+
#02. 검색 결과 중복 제거
- 검색 결과의 중복 행 제거하기
SELECT DISTINCT * | 컬럼1, 컬럼2, ..., 컬럼n from <테이블이름>;
ex) 학생 테이블의 학과번호 조회하기
mysql> SELECT DISTINCT deptno FROM student;
+--------+
| deptno |
+--------+
| 101 |
| 102 |
| 201 |
+--------+
ex) 학생 테이블에서 학과 번호와 학년을 출력하기
mysql> SELECT DISTINCT deptno, grade FROM student;
+--------+-------+
| deptno | grade |
+--------+-------+
| 101 | 4 |
| 101 | 1 |
| 101 | 3 |
| 101 | 2 |
| 102 | 2 |
| 102 | 4 |
| 102 | 1 |
| 102 | 3 |
| 201 | 1 |
| 201 | 2 |
+--------+-------+
#03. 컬럼에 대한 별칭 부여
- 컬럼이름 뒤에 공백으로 구분하는 경우
SELECT 컬럼1 '별칭1', 컬럼2 '별칭2', ..., 컬럼n '별칭n'
FROM <테이블 이름>;
SELECT 컬럼1 as '별칭1', 컬럼2 as '별칭2',..., 컬럼n as '별칭n'
FROM <테이블이름>;
ex) 학과테이블에서 학과이름 칼럼의 별명은 Department_Name, 학과번호 칼럼의 별명은 Department_Number로 부여하여 출력
mysql> SELECT dname AS 'department_Name', deptno AS 'Department_Number'
-> FROM department;
+-----------------+-------------------+
| department_Name | Department_Number |
+-----------------+-------------------+
| 컴퓨터공학과 | 101 |
| 멀티미디어학과 | 102 |
| 전자공학과 | 201 |
| 기계공학과 | 202 |
#04. 산술 연산자의 사용
- SELECT 절에서의 산술 연산자 사용
- 컬럼이름에 산술 연산을 적용하면 조회 결과에 적용되어 출력된다.
- 원본 데이터는 변하지 않으며, 값을 가공하여 출력할 수 있다.
ex) 교수 테이블에서 교수이름, 급여 그리고 보너스를 포함한 연봉을 출력하여라. 단 보너스를 포함한 연봉은 급여*12를 한 결과에 보너스 100을 더한 값으로 계산한다.
mysql> select name, sal, sal*12+100 from professor;
+--------+-----+------------+
| name | sal | sal*12+100 |
+--------+-----+------------+
| 김도훈 | 500 | 6100 |
| 이재우 | 320 | 3940 |
| 성연희 | 360 | 4420 |
| 염일웅 | 240 | 2980 |
| 권혁일 | 450 | 5500 |
| 이만식 | 420 | 5140 |
| 전은지 | 210 | 2620 |
| 남은혁 | 400 | 4900 |
+--------+-----+------------+
#05. 검색조건 지정하기
- WHERE절을 사용한 검색 조건 지정
SELECT [DISTINCT] { * | 칼럼이름 [as '별칭'] ...} from <테이블 이름> [where 검색조건];
- 비교 연산자의 종류
연산자 | 설명 | 연산자 | 설명 |
---|---|---|---|
= | 같다 | != | 다르다 |
> | 크다(초과) | >= | 크거나 같다.(이상) |
< | 작다(미만) | <= | 작거나 같다.(이하) |
- 논리 연산자의 종류
연산자 | 설명 |
---|---|
AND | 모든 조건이 참일 때 참을 반환 |
OR | 모든 조건이 거짓일 때 거짓을 반환 |
NOT | 조건과 반대되는 결과를 반환 |
ex) 학생 테이블에서 1학년 학생만 검색하여 학번, 이름, 학과 번호를 출력
mysql> SELECT studno, name, deptno FROM student WHERE grade = 1;
+--------+--------+--------+
| studno | name | deptno |
+--------+--------+--------+
| 10102 | 박미경 | 101 |
| 10106 | 서재진 | 101 |
| 10203 | 하나리 | 102 |
| 20101 | 이동훈 | 201 |
| 20102 | 박동진 | 201 |
| 20104 | 조명훈 | 201 |
+--------+--------+--------+
ex) 학생 테이블에서 몸무게가 70kg 이하인 학생만 검색하여 학번, 이름, 학년, 학과번호, 몸무게를 출력
mysql> SELECT studno, name, grade, deptno, weight FROM student
-> WHERE weight <= 70;
+--------+--------+-------+--------+--------+
| studno | name | grade | deptno | weight |
+--------+--------+-------+--------+--------+
| 10102 | 박미경 | 1 | 101 | 52 |
| 10104 | 지은경 | 2 | 101 | 42 |
| 10105 | 임유진 | 2 | 101 | 54 |
| 10201 | 김진영 | 2 | 102 | 48 |
| 10203 | 하나리 | 1 | 102 | 68 |
| 10204 | 윤진욱 | 3 | 102 | 70 |
| 20101 | 이동훈 | 1 | 201 | 64 |
| 20102 | 박동진 | 1 | 201 | 70 |
| 20103 | 김진경 | 2 | 201 | 51 |
| 20104 | 조명훈 | 1 | 201 | 62 |
+--------+--------+-------+--------+--------+
ex) 학생 테이블에서 1학년이면서 몸무게가 70kg 이상인 학생만 검색하여 이름, 학번, 학년, 몸무게, 학과 번호를 출력
mysql> SELECT name, studno, grade, weight, deptno FROM student
-> WHERE grade = 1 AND weight >= 70;
+--------+--------+-------+--------+--------+
| name | studno | grade | weight | deptno |
+--------+--------+-------+--------+--------+
| 서재진 | 10106 | 1 | 72 | 101 |
| 박동진 | 20102 | 1 | 70 | 201 |
+--------+--------+-------+--------+--------+
연습문제
- 학생 테이블에서 학생 이름과 학생 번호를 조회하시오.
mysql> select name, studno from student;
+--------+--------+
| name | studno |
+--------+--------+
| 전인하 | 10101 |
| 박미경 | 10102 |
| 김영균 | 10103 |
| 지은경 | 10104 |
| 임유진 | 10105 |
| 서재진 | 10106 |
| 이광훈 | 10107 |
| 류민정 | 10108 |
| 김진영 | 10201 |
| 오유석 | 10202 |
| 하나리 | 10203 |
| 윤진욱 | 10204 |
| 이동훈 | 20101 |
| 박동진 | 20102 |
| 김진경 | 20103 |
| 조명훈 | 20104 |
+--------+--------+
'코딩 공부 > DataBase' 카테고리의 다른 글
[DataBase] 06_함수 (0) | 2020.05.11 |
---|---|
[DataBase] 05_정렬, 부분 조회 (0) | 2020.05.11 |
[DataBase] 04_SQL 연산자 (0) | 2020.05.10 |
[DataBase] 02_데이터베이스 살펴보기 (0) | 2020.05.10 |
[DataBase] 01_DBMS 설치(MySQL) (0) | 2020.05.10 |