mysql - 데이터 검색

Jina·2020년 5월 24일
1

Mysql

목록 보기
1/4

테이블에 정의된 열 확인

desc table;
mysql> desc users_hosts;
+---------+------+------+-----+---------+----------------+
| Field   | Type | Null | Key | Default | Extra          |
+---------+------+------+-----+---------+----------------+
| id      | int  | NO   | PRI | NULL    | auto_increment |
| host_id | int  | YES  | MUL | NULL    |                |
| user_id | int  | YES  | MUL | NULL    |                |
+---------+------+------+-----+---------+----------------+

테이블에서 데이터 검색

모든 데이터 검색

select * from table;
mysql> select * from users_hosts;
+----+---------+---------+
| id | host_id | user_id |
+----+---------+---------+
|  1 |       2 |       1 |
|  2 |       3 |       1 |
|  3 |       4 |       2 |
|  4 |       7 |       3 |
+----+---------+---------+

" * " 을 이용하면 테이블의 모든 열을 검색

특정 열의 데이터 검색

select1,2 from table;

열의 이름을 지정하면 지정한 열만 결괏값으로 표시

mysql> select id,host_id from users_hosts;
+----+---------+
| id | host_id |
+----+---------+
|  1 |       2 |
|  2 |       3 |
|  3 |       4 |
|  4 |       7 |
+----+---------+

조건문을 이용하여 데이터 검색

select * from tablewhere 조건식

조건식 1. 열 = 값

select * from tablewhere=

열에서 특정 값을 가진 데이터를 검색하고 싶을 때 사용할 수 있음

mysql> select * from users_hosts where host_id=2;
+----+---------+---------+
| id | host_id | user_id |
+----+---------+---------+
|  1 |       2 |       1 |
+----+---------+---------+

참고사항) 조건식 열=값 을 사용할 때 값이 문자면 열 ='값' 과 같이 사용함

조건식2. 열 <> 값

select * from tablewhere<>

열에서 특정 값을 가진 데이터를 제외하고 검색하고 싶을 때 사용할 수 있음

mysql> select * from users_hosts where host_id<>2;
+----+---------+---------+
| id | host_id | user_id |
+----+---------+---------+
|  2 |       3 |       1 |
|  3 |       4 |       2 |
|  4 |       7 |       3 |
+----+---------+---------+

조건식3. is null

null 값을 검색할 때

select * from tablewhereis null;

그 외의 조건 연산자

  • = 연산자
    좌변과 우변의 값이 같을 경우 참

  • <> 연산자
    좌변과 우변의 값이 같지 않을 경우 참

  • > 연산자
    좌변의 값이 우변의 값보다 큰 경우 참 / 작은 경우는 거지

  • >= 연산자
    좌변의 값이 우변의 값보다 크거나 같을 경우 참 / 작은 경우는 거짓

  • < 연산자
    좌변의 값이 우변의 값보다 작을 경우 참 / 큰 경우는 거짓

  • <= 연산자
    좌변의 값이 우변의 값보다 작거나 같을 경우 참 / 큰 경우는 거짓

조건식 조합

where 절에 조건식을 조합해서 사용함

select * from tablewhere a = 1 and b = 2;
select * from tablewhere a = 1 or b = 2;

연산자의 우선순위

연산자에서 AND가 OR보다 계산 우선 순위가 높음 따라서 OR과 AND를 같이 사용할 때 괄호를 이용하여 우선순위를 파악해주어야함

아래와 같은 조건식이 있다면

where a=1 or b=2 and a=2 or b=1;

a=1 or (b=2 and a=2) or b=1 과 같은 순서로 연산함
(a=1 or b=2) and (a=2 or b=1)의 순서로 연산하지 않음 이와 같은 연산을 원한다면 괄호를 이용하여 or 조건식을 묶어주어야함

where (a=1 or b=2) and (a=2 or b=1);

위의 예시와 같이 조건에 괄호를 묶어서 사용하기

NOT 조건식

where not a=1;

not 연산자는 오른쪽에만 항목을 지정하는 단항 연산자
오른쪽에 지정한 조건식의 반대 값을 반환

like (패턴 매칭에 의한 검색)

wherelike 패턴
  • = 연산자
    열 값이 완전히 일치할 때 참이 됨

  • like 술어
    열 값이 부분적으로 일치하는 경우에도 참이 됨

like에서 사용할 수 있는 와일드카드

와일드카드

메타문자 / 패턴 매칭 시 임의의 문자 또는 문자열에 매치하는 부분을 지정하기 위해 쓰이는 특수 문자

%

임의의 문자열 의미
임의의 문자열과 매치하며 빈 문자열에도 매치함

_

임의의 문자 하나를 의미

wherelike %내용_

위와 같이 사용할 수 있음
위의 내용으로 검색하면 열에서 '내용'이 있는 데이터를 검색할 수 있음
이 때 검색된 데이터는 '내용' 앞에 임의의 문자열이 있고 내용 뒤에 임의의 문자 하나가 존재함

ex) 위에서 검색해오는 자료는 이러한 내용들

예시와 같이 % --> 위에서 검색해오는 자료는 이러한
_ --> 들


예약어 : select, *, from, where 등

예약어와 데이터베이스 객체명은 대소문자를 구별하지 않음
즉, SELECT * FROM TABLE 과 select * from table은 동일하게 동작

0개의 댓글