happy cat image

everdevel

coding

login
알림X
  • 현재 댓글에 대한 답변만 표시합니다.
  • 표시할 댓글 이력이 없거나 로그인해 주세요.

레코드 검색

오늘은 저번시간에 만들었던 my_smart_devices를 이용하여 레코드 검색기능을 배워봅시다.!~~

지금까지 사용했던 select문은 레코드를 불러오는 명령문입니다.

my_smart_devices 안에 있는 num, name, thenumberofcpu, company 이렇게 4개의 필드가 존재하고 있습니다.

SELECT * FROM my_smart_devices 를 입력하면 모든 필드가 선택이 되어서 표시를 해주고요.

특정 필드만 선택을 하시려면 다음과 같이 입력을 합니다.

예를 들어 name필드만 선택할 경우

SELECT name FROM my_smart_devices;

라고 입력하시면 됩니다.

저렇게 전체의 레코드를 검색 하신다면 SELECT * FROM 검색할 테이블이름;

특정 레코드를 검색하신다면 SELECT 필드명 FROM 테이블명;

이렇게 하시면 됩니다.

중복된 값은 빼버리고 검색을 하시고 싶다면 다음과 같이 distinct를 사용합니다.

SELECT distinct 필드명 FROM 테이블명;

이렇게 입력하면 됩니다.

우선 my_smart_devices 테이블에는 데이터 자체가 없기 때문에 데이터를 입력하도록 하겠습니다.
다음의 3개 명령문을 실행해 주세요.

그럼 smart db를 선택하고

USE smart;
INSERT INTO my_smart_devices(name, thenumberofcpu, company) VALUES('galaxy nexus','2','samsung');
INSERT INTO my_smart_devices(name, thenumberofcpu, company) VALUES('galaxy tab','1','samsung');
INSERT INTO my_smart_devices(name, thenumberofcpu, company) VALUES('iPad2','2','apple');
mysql search-record

이제 입력한 데이터를 확인하겠습니다.

SELECT * FROM my_smart_devices;
mysql search-record

위와 같이 테이블이 있습니다. 그럼 name필드만 불러오겠습니다.

다음 명령문 입력

SELECT name FROM my_smart_devices;

그러면 아래와 같이 name필드와 그 레코드들만 출력됩니다.

mysql search-record

그럼 중복된 값은 빼버리고 검색을 하려면 중복된 값이 더넘버오브시피유에 있으니 그걸로하죠.

다시 한번 중복된 값은 빼버리고 검색을 하시고 싶다면 다음과 같이 distinct를 사용합니다.

SELECT distinct 필드명 FROM 테이블명;
SELECT distinct thenumberofcpu FROM my_smart_devices;
mysql search-record

그럼 이번엔 조건에 맞는 값만 검색해볼까요..

명령문은 다음과 같습니다.

SELECT 필드명1, 필드명2, 필드명3...
FROM 테이블명
where 조건;

where문은 조건을 부여할 때 사용합니다. 그럼 테이블 my_smart_devices에서 코어가 2개인 제품을 찾아보도록 합시다.

SELECT * FROM my_smart_devices where thenumberofcpu = '2';

위에 명령문을 입력하면 됩니다. = 는 같은것을 찾는다는 의미입니다.

mysql search-record

만약 코어가 2개인 제품의 특정 필드만 보시려면 예를들어 name와 company를 보신다면 아래와 같이 입력 하시면 됩니다.

SELECT name company FROM my_smart_devices where thenumberofcpu = '2';
mysql search-record

검색된 필드를 오름차순 내림차순으로 정렬할수도 있습니다.

오름차순은 ASC 내림차순은 DESC 입니다.

이것들을 정렬하기 위해서는 아래와 같이 입력을 하면됩니다.

SELECT 필드명1, 필드명2, 필드명3...
FROM 테이블명
order by 필드명 오름차순(ASC) 또는 내림차순(DESC);

그리고 오름차순은 생략을 해도 됩니다. 디폴트가 ASC입니다.

그럼 num으로 직접 오른차순 내림차순을 경험해봅시다.!!

SELECT * FROM my_smart_devices ORDER BY num DESC;
mysql search-record
SELECT * FROM my_smart_devices ORDER BY num ASC;
mysql search-record

다음은 코어가 2개인 제품을 num순으로 내림차순 오름차순으로 검색해봅시다.

SELECT * FROM my_smart_devices WHERE thenumberofcpu = '2' ORDER BY num DESC;

레코드가 적어서 별로 잘 모를수도 있지만 대용량 디비일 경우에 유용해요~

mysql search-record
SELECT * FROM my_smart_devices WHERE thenumberofcpu = '2' ORDER BY num ASC;

레코드가 적어서 별로 잘 모를수도 있지만 대용량 디비일 경우에 유용해요~

mysql search-record

그럼 이번엔 이렇게 해볼까요 thenumberofcpu 가 1보다큰 레코드를 내림차순 오름차순으로 검색해 봅시다.

SELECT * FROM my_smart_devices WHERE thenumberofcpu > 1 ORDER BY num DESC;
mysql search-record

명령어에서 보듯이 조건을 줄수가 있습니다. thenumberofcpu > 1

이렇게 1보다큰 이라는 조건을 줄수가 있습니다.

그럼 조건을 2개다 만족해야 하는것을 써볼까요 코어가 1개 초과 하면서 삼성 제품을 찾아보도록 해봅시다.

SELECT * FROM my_smart_devices WHERE thenumberofcpu >1 AND company LIKE '%samsung%';
mysql search-record

문자열을 검색할때는 필드명 적고 like 를 적고 그 필드값이 문자인것은 '%문자열%' 로 해주시면 됩니다.

company = samsung 하시면 안돼요!!

그럼 위에서부터 몇명만 보이게 하라 이런거는 어떻게 할까요

LIMIT를 사용합니다.

위에서 예를 들어 성적이 높은 사람 50명만 출력되게 한다든지 할때 쓰면 좋습니다.

SELECT * FROM 테이블명 ORDER BY 필드명 ASC or DESC LIMIT 숫자;

그럼 해보자! 테이블에서 2번째 까지만 보이도록 num순서를 오름차순으로..

SELECT * FROM my_smart_devices ORDER BY num ASC LIMIT 2;
mysql search-record

다음시간에는 집계함수에 대해서 배워봅시다!!

현재까지의 db 백업 (아래는 현재까지의 작업을 백업한거라서 중도에 들어오신분들을 위한거에요.)

david_db smart

봐주셔서 감사합니다. 문의 또는 잘못된 설명은 아래의 댓글에 부탁드립니다.
당신의 작은 누름이 저에게는 큰 희망이 됩니다.


    
    

강좌로 돌아가기

댓글 0개

정렬기준