SELECT
데이터베이스로부터 데이터를 조회하는 기능으로 다음과 같이 사용하면 된다.
# Syntax
SELECT column1, column2, ...
FROM table_name;
# 실제 사용
SELECT StudentID, StudentName, Age, Address
FROM Students;
그러면 다음과 같이 표 형태로 데이터를 확인할 수 있다.
StudentID | StudentName | Age | Address |
1 | 김OO | 23 | Seoul |
2 | 이OO | 24 | Daegu |
3 | 박OO | 23 | Incheon |
4 | 안OO | 24 | Jeju |
... |
위와 같이 StudentID, StudentName...처럼 column명을 따로 지정하지 않고 모든 column을 보고 싶으면
SELECT * FROM Students;라고 작성하면 된다.
SELECT DISTINCT
위와 같이 데이터를 조회하는데 조건이 붙었다.
DISTINCT란, 값이 중복으로 여러 개 있으면 하나만 조회한다는 것이다.
# Syntax
SELECT DISTINCT column1, column2, ...
FROM table_name;
# 실제 사용
SELECT Age
FROM Students;
그러면 다음과 같이 나온다.
Age |
23 |
24 |
'Age'를 조회하는데 값이 23, 24, 23, 24가 있지만 DISTINCT로 중복을 날려서 23, 24만 나오게 된 것이다.
WHERE
WHERE은 조건문이라고 생각하면 편하다.
그래서 WHERE을 작성하면 조건(condition)이 붙는다.
# Syntax
SELECT column1, column2, ...
FROM table_name
WHERE condition;
# 실제 사용
SELECT StudentID, StudentName, Age, Address
FROM Students
WHERE Age=23;
WHERE Age=23이라고 하였으므로 나이가 23살인 데이터만 조회한다는 의미가 된다.
그러면 다음과 같이 나온다.
StudentID | StudentName | Age | Address |
1 | 김OO | 23 | Seoul |
3 | 박OO | 23 | Incheon |
... |
위 조건문에서 ==이 아니라 =인 것을 확인할 수 있다!
그러면 다른 연산자들은 무엇이 있을까?
→ MySQL 조건식에 사용되는 연산자는 다음과 같다.
Operator | 기능 |
= | 같다(Equal) |
> | 크다(Greater than) |
< | 작다(Less than) |
>= | 크거나 같다(Greater than or equal) |
<= | 작거나 같다(Less than or equal) |
<> | 같지 않다(Not equal) |
BETWEEN | 특정 범위안에 포함(Between for certain range) |
LIKE | 패턴 찾음(Search for a Pattern) |
IN | To specify multiple possible values for a column |
AND, OR
조건문도 여러개를 적용할 수 있다.
예를 들어, StudentID가 2보다 작거나 같은데, 나이는 23살인 경우를 찾고 싶을 때나
3학년인 학생들 중에 수학 점수가 90점 이상인 학생 등을 추려내기 위할 때처럼
많은 경우에 조건을 여러 개 적용해야 하는 경우가 있다.
# AND
WHERE condition1 AND condition2;
# OR
WHERE condition1 OR condition2;
AND는 condition1과 condition2를 동시에 만족해야한다.
OR는 condition1과 condition2 중에서 하나만 만족해도 된다.
이를 조합해서 사용할 수도 있다.
# 1번
WHERE condition1 AND (condition2 OR condition3);
# 2번
WHERE condition1 AND condition2 OR condition3;
1번인 경우에는 condition1을 만족하면서 condition2 또는 condition3 중에 하나만 만족하면 된다.
하지만
2번인 경우에는 condition1과 condition2를 동시에 만족하거나 condition3을 만족하면 된다.
이해가 안 간다면 일단은 넘어가도 된다.
NOT
NOT은 말 그대로 긍정 -> 부정, 부정 -> 긍정으로 바꾸는 기능을 한다.
참(true)이면 거짓(false)으로, 거짓(false)이면 참(true)으로 바꾼다.
# Syntax
WHERE NOT condition1
# 실제 사용
SELECT StudentID, StudentName, Age, Address
FROM Students
WHERE NOT Age=23;
이는 나이가 23살이 아닌 학생들이라는 의미이므로 다음과 같이 조회가 된다.
StudentID | StudentName | Age | Address |
2 | 이OO | 24 | Daegu |
4 | 안OO | 24 | Jeju |
... |
아직은 다루지 않았지만 BETWEEN, LIKE, IN과 함께 쓸 때에는 NOT이 조건 바로 앞에 붙는다.
'💻 소프트웨어(SW) > MySQL' 카테고리의 다른 글
[MySQL] 3. Insert Into, Update, Delete (0) | 2024.02.24 |
---|---|
[MySQL] 2. Order By (0) | 2024.02.23 |
[MySQL] 0. SQL이란? (0) | 2024.02.21 |