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구문에 대해 알아보도록 할게요😁!