[MySQL] 비교 연산자를 사용해 범위내의 값 출력하기

2024. 1. 29. 19:14·■ Database/MySQL
반응형

0. 개요

SQL 쿼리문의 비교 연산자를 학습하여, 내가 원하는 범위내의 값을 출력할 수 있도록 한다.

 

 

 


1. 참고

구분 버전
OS Windows 11
DBMS HeidiSQL 12.3.0.6589

 

본문에서 사용한 샘플 DBMS 다운로드
더보기

본문에서 사용된 샘플 DBMS 입니다.

 

필자가 직접 제작한 샘플 데이터베이스로, 상업적 용도를 제외하고 자유로운 사용이 가능합니다.

 

샘플.sql
0.00MB

 

-- pratice 데이터베이스 구조 내보내기
CREATE DATABASE IF NOT EXISTS `pratice` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci */;
USE `pratice`;

-- 테이블 pratice.student 구조 내보내기
CREATE TABLE IF NOT EXISTS `student` (
  `STU_IDX` int(10) DEFAULT NULL,
  `STU_NAME` varchar(5) DEFAULT NULL,
  `STU_GENDER` varchar(5) DEFAULT NULL,
  `STU_AGE` varchar(5) DEFAULT NULL,
  `STU_ADR` varchar(5) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- 테이블 데이터 pratice.student:~10 rows (대략적) 내보내기
DELETE FROM `student`;
INSERT INTO `student` (`STU_IDX`, `STU_NAME`, `STU_GENDER`, `STU_AGE`, `STU_ADR`) VALUES
	(1, '홍길동', '남자', '10', '서울'),
	(2, '김길동', '남자', '20', '서울'),
	(3, '최길동', '여자', '15', '서울'),
	(4, '이길동', '여자', '16', '경기'),
	(5, '왕길동', '남자', '12', '경기'),
	(6, '허길동', '여자', '11', '대구'),
	(7, '너길동', '남자', '9', '부산'),
	(8, '나길동', '남자', '5', '부산'),
	(9, '다길동', '여자', '3', '대구'),
	(10, '마길동', '남자', '25', '제주');

-- 테이블 pratice.student_grade 구조 내보내기
CREATE TABLE IF NOT EXISTS `student_grade` (
  `STU_IDX` int(11) DEFAULT NULL,
  `STU_GRADE` varchar(5) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- 테이블 데이터 pratice.student_grade:~10 rows (대략적) 내보내기
DELETE FROM `student_grade`;
INSERT INTO `student_grade` (`STU_IDX`, `STU_GRADE`) VALUES
	(1, '22'),
	(2, '64'),
	(3, '45'),
	(4, '12'),
	(5, '48'),
	(6, '45'),
	(7, '99'),
	(8, '5'),
	(9, '0'),
	(10, '100');

 

 

 


2. 비교 연산자

연산자 설명
X = Y X와 Y는 동일
X > Y X는 Y보다 크다
X >= Y X는 Y보다 크거나 같다
X < Y X는 Y보다 작다
X <= Y X는 Y보다 작거나 같다
X <> Y 또는 X != Y X는 Y와 같지 않다

기본적으로 위와 같은 비교 연산자가 존재한다. 그 외에도 종류는 많겠지만, 우선 기초 학습을 위해 상기와 같은 기본적인 비교 연산자를 알아보도록 하자.

 

특별한 내용은 없지만 SQL에서는 X <> Y와 X != Y가 같은 의미를 가진다. 둘 중 어떤 것을 사용하느냐는 상관이 없지만, 가독성을 위해 하나의 연산자로 통일하여 작업하는 것을 권장한다.

 


2. 예제

▣ 나이가 0살 ~ 12살인 사람의 이름만 출력하시오.

SELECT STU_NAME AS 학생이름
FROM student
WHERE STU_AGE >= 0 AND STU_AGE <= 12;

위와 같이 사용을 할 수 있지만, 아래와 같이 사용도 가능하다.


SELECT STU_NAME AS 학생이름
FROM student
WHERE STU_AGE BETWEEN 0 AND 12;

BETWEEN 연산자를 사용하면 보다 깔끔하게 SQL 쿼리문 정리를 할 수 있다. 하지만, 이는 검색 범위를 지정한 값이 연속적인 값을 가졌기 때문에 BETWEEN 연산이 가능했다. 

연속적인 값을 가지지 않은 경우의 연산은 아래를 참고하자.

 

 

 

▣ 지역이 경기, 대구, 제주인 사람의 이름과 나이를 출력하시오.

SELECT
	STU_NAME AS 이름,
	STU_AGE AS 나이
FROM
	student
WHERE STU_ADR='경기' OR STU_ADR='대구' OR STU_ADR='제주';

위와 같이 사용을 할 수도 있겠지만, 같은 필드에 하나하나 값을 지정 해 주어야만 하므로 여간 귀찮은 것이 아니다. 같은 필드에 여러 값을 지정하여 검색을 하고 싶을 때는 아래의 방법을 사용하면 보다 편리하게 검색할 수 있다.


SELECT
	STU_NAME AS 이름,
	STU_AGE AS 나이
FROM
	student
WHERE
	STU_ADR IN ('경기', '대구', '제주');

훨씬 쿼리문이 깔끔해졌고, 사용하기도 편리해졌다. 같은 필드에 여러 값을 지정하여 검색할 때에는 상기와 같이 IN 연산자도 사용할 수 있음을 알아두자.

300x250
반응형
저작자표시 비영리 변경금지 (새창열림)
'■ Database/MySQL' 카테고리의 다른 글
  • [MySQL] MySQL DB 버전 확인 쿼리문
  • [MySQL] Union 사용법 : 여러 쿼리의 결과값을 한 테이블로 합쳐서 표현하기
  • [MySQL] 윈도우 CMD에서 사용하기 위한 MySQL 환경변수 설정
  • [MySQL] 데이터 조회하기 : 특정 조건의 데이터 조회 (SELECT, FROM, WHERE, LIKE)
Min Hyuk-Lee
Min Hyuk-Lee
시스템 엔지니어로 근무하고 있습니다.
  • Min Hyuk-Lee
    아크레의 개발로그
    Min Hyuk-Lee
    m_file@naver.com
  • 전체
    오늘
    어제
    • 📝 Log. (81)
      • ■ Dev. Language (11)
        • C (5)
        • C# (6)
      • ■ Dev. ETC (8)
        • Unity 3D (3)
        • Android Studio (JAVA) (5)
      • ■ Web (6)
        • HTML (3)
        • JSP (3)
      • ■ Linux (8)
        • Shell (2)
        • Linux Tip. (6)
        • 보안취약점 진단 (0)
      • ■ Windows (4)
        • Server (1)
        • Windows Tip. (3)
      • ■ VM (1)
        • VMWare (1)
        • Virtual Box (0)
      • ■ Database (9)
        • MySQL (7)
        • OracleDB (2)
      • ■ DevKit (5)
        • IDE (4)
        • Tool (1)
      • ■ Error (17)
        • Linux 오류해결 (4)
        • DB 오류해결 (3)
        • IDE 오류해결 (2)
        • VM 오류해결 (3)
        • Unity 오류해결 (4)
        • SSH, SFTP 오류해결 (1)
      • ■ Photoshop (3)
        • 디자인&이미지 창작 (3)
      • ■ Document (3)
        • MS Word (2)
        • PDF (1)
      • ■ Study (4)
        • Baekjoon (4)
      • ■ 작문 (1)
        • 회고 (1)
      • ■ ETC (1)
        • Car (0)
        • etc (1)
  • 🌐 Menu

    • 📓 Guestbook
  • 🔗 Other Links

    • GitHub
    • 아크레의 IT ISSUE
  • 📢 Notice

    • [스킨 업데이트] hELLO v4.10.0 적용완료
    • [스킨 업데이트] hELLO v4.9.0 적용 완료
    • [스킨 업데이트] hELLO v4.8.1 적용 완료
  • 💬 Recent Comments

  • hELLO· Designed By정상우.v4.10.0
Min Hyuk-Lee
[MySQL] 비교 연산자를 사용해 범위내의 값 출력하기
상단으로

티스토리툴바