지난 포스트에 이어서 작성하는 내용입니다.
2022.01.21 - [공부/mysql] - mysql 기본 명령어 2
이번에는 검색 조건을 지정해서 원하는 조건에 따라 데이터를 검색해보고자 합니다.
기본 명령어는 다음과 같습니다.
SELECT row_name1, row_name2 FROM DB_name.Table_name Where 조건식
먼저 row_name1, 2를 각각 name, brithday로 지정해보고 시행해보겠습니다. (데이터는 앞 포스트와 동일합니다)
조건식은 no = 1로 잡고 시행해 보겠습니다.
그러기 앞서 데이터는 다음과 같습니다.
위 데이터에서 no=1인 행의 name과 birthday를 추출해 보겠습니다.
여기서 열 이름은 comma(,)를 사용하여 구분하였고 조건식에는 equal(=)을 사용하여 적용하였습니다.
만약 여기서 SELECT FROM으로 바로 넘어가게 된다면 에러가 발생하게 됩니다. 앞선 포스트에서 언급했듯, (*)는 all을 의미합니다. 즉, 열 값을 지정하지 않는다면 원하는 데이터를 뽑아 낼 수 없다는 것입니다.
만약, 출력되는 열의 순서를 변경하고 싶다면 열 값을 입력할 때 원하는 순서로 입력하게 되면 출력 결과도 그대로 나오게 됩니다.
그리고 조건식에 행을 입력하여 출력했는데, 만약 행의 개수가 수억 개로 구성되어 있다면 필요한 데이터외에도 더 많은 필요없는 데이터가 출력될 수 있습니다. 따라서 WHERE 명령어를 사용하여 데이터를 원하는 만큼 출력하게 되는 것입니다.
조건 식을 입력할 때 이번에는 no =1 으로 적용하였습니다. (하지만, 연산자는 (=)외에도 다양하게 있습니다. 이는 다시 밑에서 다두도록 하겠습니다.)
이번에는 자료형이 INT인 no열이 아닌 VARCHAR에 대해서는 어떻게 조건식을 적용할 수 있는지 살펴보겠습니다.
name이 '홍길동'인 데이터의 brithday와 address를 조회해 보겠습니다.
SELECT birthday, address FROM sample.sample21 WHERE name='홍길동';
위같이 문자열인 데이터값에 대해서는 싱글쿼트(' ') 안에 데이터를 입력해야 합니다. (참고로 " "는 더블쿼트라고 합니다)
날짜, 시간형의 데이터 값에 대해서도 싱글쿼트 값을 입력해야합니다. 즉 1976-10-18을 조회하려면 하이픈(-)으로 구별하여 '1976-10-18'을 입력해야 합니다. 시간의 경우는 콜론 (:)으로 구분합니다.
이번에는 NULL값만 조회해봅시다. NULL값은 연산자, 즉 (=)으로 조회하는 것이 아닙니다.
row_name is NULL 의 형태로 조회해야하는데 다음 명령어를 참고하시면 됩니다.
SELECT * FROM sample.sample21 where birthday is NULL;
그렇다면 연산자는 어떤 종류가 있는지 한번 살펴보겠습니다.
산술 연산자 (a = 20, b= 10)
+ | 더하기 | a + b = 30 |
- | 빼기 | a - b = 10 |
* | 곱하기 | a * b = 200 |
/ | 나누기 | a / b = 2 |
% | 나머지 | a % b = 0 |
비교 연산자 (a = 20, b= 10)
return되는 값은 TRUE, FALSE의 불린으로 반환됩니다.
= | 같다를 의미합니다. | a = b | 참이 아닙니다. |
!= , <> | 다르다를 의미합니다. | a != b , a <> b | 참입니다. |
>=, > | 같거나 크다, 크다를 의미합니다. | a => b, a > b | 참입니다. |
<=, < | 같거나 작다, 작다를 의미합니다. | a <= b, a < b | 참이 아닙니다. |
!> | 크지 않다를 의미합니다.( '<=' 와 동일) | a !> b | 참이 아닙니다. |
!< | 작지 않다를 의미합니다. (' >=' 와 동일) | a !< b | 참입니다. |
'공부 > mysql' 카테고리의 다른 글
Mysql 기본명령어 6 (ORDER BY) (0) | 2022.01.25 |
---|---|
Mysql 기본명령어 5 (LIKE) (0) | 2022.01.25 |
Mysql 기본 명령어 4 (AND, OR, NOT 논리연산자) (1) | 2022.01.24 |
mysql 기본 명령어 2 (DESC 구문) (0) | 2022.01.21 |
Mysql 기본 명령어 1 (SELECT구문) (0) | 2022.01.21 |
댓글