Post

MySQL SELECT 수식 만들기 01

오늘은 다양한 SELECT구문에 대해서 알아보려고 하는데요, 어떻게 수식을 만드느냐에 따라 결과값도 달라질테니 차이를 비교해보면서 따라해보세요!

SELECT

1. 전체 데이터 가져오기

  • SELECT * FROM (테이블명);
1
2
3
4
5
6
7
8
9
10
mysql> SELECT * FROM members3;
+----------+---------+---------+--------+----------+------------+
| memberID | youName | youPass | youAge | youBirth | regTime    |
+----------+---------+---------+--------+----------+------------+
|        1 | 가나다  | 1234    |     33 |   990304 | 1023958375  |
|        2 | 라마바  | 1234    |     19 |    60121 | 1023958375  |
|        3 | 사아자  | 1234    |     21 |    40416 | 1231231233  |
|        4 | 차카파  | 1234    |     26 |   990123 | 1104781152  |
+----------+---------+---------+--------+----------+------------+
14 rows in set (0.00 sec)

▶ SELECT 구문에서 *는 전체 데이터를 의미하기 때문에 FROM 다음에 지정한 테이블명을 입력하면 내가 테이블에 저장한 데이터 정보를 모두 불러오게 됩니다.


2. 이름 데이터만 가져오기

  • SELECT (필드명) FROM (테이블명);
1
2
3
4
5
6
7
8
9
10
mysql> SELECT youName FROM members3;
+---------+
| youName |
+---------+
| 가나다   |
| 라마바   |
| 사아자   |
| 차카파   |
+---------+
4 rows in set (0.00 sec)

▶ 만약 내가 지정한 데이터 정보들 중에서 이름 정보만 가져오고 싶다면 SELECT다음에 필드명을 입력하고 FROM 뒤에 지정한 테이블명을 입력하면 됩니다.


3. 이름 + 나이 데이터만 가져오기

  • SELECT (필드명), (필드명) FROM (테이블명);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
mysql> SELECT youName, youAge FROM members;
+---------+--------+
| youName | youAge |
+---------+--------+
| 가나다  |     33  |
| 다나다  |     19  |
| 마사아  |     21  |
| 사아마  |     26  |
| 자차가  |     26  |
| 가타나  |     32  |
| 아라마  |     20  |
| 사바자  |     29  |
+---------+--------+
8 rows in set (0.00 sec)

▶ 만약 하나가 아닌 여러개의 데이터정보를 가져오고 싶다면 이름 정보만 가져왔던 구문에서 가져오고 싶은 필드명을 ,로 추가만 해주시면 됩니다. 예시처럼 저는 전체 members라는 테이블에서 이름과 나이 필드명만 가져왔습니다.


4. 내림차순 & 오름차순 불러오기

  • SELECT * FROM (테이블명) ORDER By (필드명) DESC; -> 내림차순
1
2
3
4
5
6
7
8
9
10
11
12
13
14
mysql> SELECT * FROM members ORDER By youName DESC;
+----------+---------+---------+--------+----------+------------+
| memberID | youName | youPass | youAge | youBirth | regTime    |
+----------+---------+---------+--------+----------+------------+
|        7 | 황00    | 1234    |     20 |   990315 | 1474187756 |
|        1 | 평00    | 1234    |     33 |   990304 | 1023958375 |
|        4 | 최00    | 1234    |     26 |   990123 | 1104781152 |
|       10 | 이00    | 1215    |     24 |    10712 | 1023958375 |
|       14 | 안00    | 1234    |     33 |   840816 | 1023958375 |
|        5 | 서00    | 1234    |     26 |    11019 | 1111100000 |
|       15 | 박00    | 1232    |     33 |   990304 | 1023958375 |
|        8 | 김00    | 1234    |     29 |   961017 | 1023958375 |
+----------+---------+---------+--------+----------+------------+
8 rows in set (0.00 sec)
  • SELECT * FROM (테이블명) ORDER By (필드명) ASC; -> 오름차순
1
2
3
4
5
6
7
8
9
10
11
12
13
14
mysql> SELECT * FROM members ORDER By youName ASC;
+----------+---------+---------+--------+----------+------------+
| memberID | youName | youPass | youAge | youBirth | regTime    |
+----------+---------+---------+--------+----------+------------+
|        7 | 김00    | 1234    |     20 |   990315 | 1474187756 |
|        1 | 박00    | 1234    |     33 |   990304 | 1023958375 |
|        4 | 서00    | 1234    |     26 |   990123 | 1104781152 |
|       10 | 안00    | 1215    |     24 |    10712 | 1023958375 |
|       14 | 이00    | 1234    |     33 |   840816 | 1023958375 |
|        5 | 최00    | 1234    |     26 |    11019 | 1111100000 |
|       15 | 평00    | 1232    |     33 |   990304 | 1023958375 |
|        8 | 황00    | 1234    |     29 |   961017 | 1023958375 |
+----------+---------+---------+--------+----------+------------+
8 rows in set (0.00 sec)

▶ 오름차순과 내림차순은 순서를 ‘정렬’해주는 것이기 때문에 기본 규칙이 정해져 있는데,
바로 SELECT * FROM (테이블명) ORDER By (필드명) DESC/ASC; 입니다.
여기서 DESC는 내림차순, ASC는 올림차순을 의미하며 ORDER BY 다음에 내가 정렬하고 싶은 필드값을 넣어준 후 어떤 방식으로 정렬을 할 지 붙여주면 해당 구문으로 데이터가 정렬되는 걸 확인할 수 있습니다.


5. 부등호를 사용해 특정 데이터만 불러오기

memberID가 1인 데이터

  • SELECT * FROM (테이블명) WHERE (필드명) = 1;
1
2
3
4
5
6
7
mysql> SELECT * FROM members3(테이블명) WHERE memberID(필드명) = 1;
+----------+---------+---------+--------+----------+------------+
| memberID | youName | youPass | youAge | youBirth | regTime    |
+----------+---------+---------+--------+----------+------------+
|        1 | 황00    | 1234    |     33 |   990304 | 1023958375 |
+----------+---------+---------+--------+----------+------------+
1 row in set (0.00 sec)

▶ 만약 여러 정보가 아닌 특정값 딱 하나만 나오게 하고 싶다면 어떻게 해야할까요?
그럴땐 위의 예시처럼 전체 테이블 중 내가 정보를 보고 싶은 필드명을 지정해준 수 ‘=’을 통해 특정 데이터값을 지정해주면 됩니다. 그럼 그에 해당하는 값과 동일한 정보의 데이터만 확인할 수 있습니다.

memberID가 5보다 크고 10보다 작은 데이터

  • SELECT * FROM (테이블명) WHERE (필드명) > 5 AND (필드명) < 10;
1
2
3
4
5
6
7
8
9
10
mysql> SELECT * FROM members3(테이블명) WHERE memberID(필드명) > 5 AND memberID(필드명) < 10;
+----------+---------+---------+--------+----------+------------+
| memberID | youName | youPass | youAge | youBirth | regTime    |
+----------+---------+---------+--------+----------+------------+
|        6 | 김00    | 1234    |     32 |   930604 | 1023958375 |
|        7 | 황00    | 1234    |     20 |   990315 | 1474187756 |
|        8 | 박00    | 1234    |     29 |   961017 | 1023958375 |
|        9 | 강00    | 1234    |     27 |   980420 |  123456744 |
+----------+---------+---------+--------+----------+------------+
4 rows in set (0.00 sec)

▶ 좀 더 변형을 해서 알아볼까요?
만약 이번엔 5~10 사이에 해당하는 조건에 맞는 정보만 불러오고 싶다면 >, <와 같은 부등호와 AND, OR같은 논리연산자를 같이 사용해주면 되는데 우리가 배운 수학 공식과 같다고 보시면 이해하기 쉽습니다.
조금 차이가 있다면 부등호 마다 각각 필드명을 입력해서 지정해주어야 한다는 점 잊지마세요!


이렇게 오늘은 간단한 SELECT구문에 대해 알아봤는데요,
다음엔 좀 더 심화된 SELECT구문에 대해 알아보도록 할게요😁!

This post is licensed under CC BY 4.0 by the author.