웹사이트 검색

사이에 있는 SQL, 날짜 사이에 있는 MySQL, 사이에 있지 않음


SQL BETWEEN 연산자는 순차적 방식으로 사용되는 SQL IN 연산자와 함께 사용됩니다. 값은 BETWEEN 범위의 일부로 정의됩니다. 즉, 범위에 언급된 값이 시작 값과 종료 값에 포함됩니다. BETWEEN 연산자에 대해 자세히 알아보겠습니다. 위에서 언급했듯이 BETWEEN 연산자는 숫자 값, 텍스트 값 및 날짜와 함께 사용할 수 있습니다. 아래에서 세 가지 모두에 대해 자세히 설명합니다.

구문 사이의 SQL

SELECT Column(s) FROM table_name WHERE column BETWEEN value1 AND value2;

위에서 언급한 구문을 사용하여 값을 BETWEEN 연산자의 일부로 정의할 수 있습니다. 또한 위에서 언급한 구문은 숫자 값, 텍스트 값 및 날짜 값과 함께 사용하는 경우에도 동일하게 유지됩니다.

숫자 값에 대한 SQL BETWEEN 연산자

숫자 값에 대한 몇 가지 예를 통해 위에서 언급한 구문을 보다 자세히 이해할 것입니다. 예제 목적으로 다음 Student 테이블을 살펴보겠습니다.

RollNo StudentName StudentGender StudentAge StudentPercent AdmissionDate
1 George M 14 85 2018-01-01
2 Monica F 12 88 2018-01-31
3 Jessica F 13 84 2018-01-15
4 Tom M 11 78 2017-12-15

저는 MySQL 데이터베이스를 사용하고 있으며 여기에 학생 테이블에 예제 레코드를 생성하고 삽입하는 스크립트가 있습니다.

CREATE TABLE `Student` (
  `rollno` int(11) unsigned NOT NULL,
  `studentname` varchar(20) DEFAULT NULL,
  `studentgender` varchar(5) DEFAULT NULL,
  `studentage` int(3) DEFAULT NULL,
  `studentpercent` int(3) DEFAULT NULL,
  `admissiondate` date DEFAULT NULL,
  PRIMARY KEY (`rollno`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `Student` (`rollno`, `studentname`, `studentgender`, `studentage`, `studentpercent`, `admissiondate`)
VALUES
	(1, 'George', 'M', 14, 85, '2018-01-01'),
	(2, 'Monica', 'F', 12, 88, '2018-01-31'),
	(3, 'Jessica', 'F', 13, 84, '2018-01-15'),
	(4, 'Tom', 'M', 11, 78, '2017-12-15');

시나리오: 11세에서 13세 사이인 학생의 비율을 구합니다.

SELECT StudentPercent FROM Student WHERE StudentAge BETWEEN 11 AND 13;

산출:

StudentPercent
88
84
78

숫자 값에 대한 SQL NOT BETWEEN 연산자

SQL NOT BETWEEN 연산자는 BETWEEN 연산자가 지정한 범위 밖에 있는 결과 집합의 일부로 값을 가져오는 데 사용됩니다. 시나리오: 11세에서 13세 사이가 아닌 학생의 비율을 구합니다.

SELECT StudentPercent FROM Student WHERE StudentAge NOT BETWEEN 11 AND 13;

산출:

StudentPercent
85

텍스트 값에 대한 SQL BETWEEN 연산자

시나리오: George와 Jessica 사이에 StudentName이 있는 RollNo, StudentName 및 StudentAge를 가져옵니다.

SELECT RollNo, StudentName, StudentAge FROM Student WHERE StudentName BETWEEN 'George' AND 'Jessica';

산출:

RollNo StudentName StudentAge
1 George 14
3 Jessica 13

텍스트 값에 대한 SQL NOT BETWEEN 연산자

시나리오: George와 Jessica 사이에 StudentName이 없는 RollNo, StudentName 및 StudentAge를 가져옵니다.

SELECT RollNo, StudentName, StudentAge FROM Student WHERE StudentName NOT BETWEEN 'George' AND 'Jessica';

산출:

RollNo StudentName StudentAge
2 Monica 12
4 Tom 11

날짜 값에 대한 SQL BETWEEN 연산자

시나리오: 2018년 1월 1일부터 2018년 1월 31일 사이에 입학하는 학생의 나이를 가져옵니다.

SELECT StudentAge FROM Student WHERE admissiondate BETWEEN str_to_date('2018-01-01', '%Y-%m-%d') AND '2018-01-31';

산출:

StudentAge
14
12
13

날짜 값에 대한 SQL NOT BETWEEN 연산자

시나리오: 2018년 1월 1일과 2018년 1월 31일 사이에 입학하지 않은 학생의 나이를 가져옵니다.

SELECT StudentAge FROM Student WHERE admissiondate NOT BETWEEN str_to_date('2018-01-01', '%Y-%m-%d') AND '2018-01-31';

산출:

StudentAge
11

MULTIPLE BETWEEN 연산자

연산자 사이에도 여러 개를 사용할 수 있습니다. 구문은 다음과 같습니다.

SELECT Column(s) FROM table_name WHERE 
column_name BETWEEN value1 AND value2 
AND 
column_name BETWEEN value3 and value4 
... 
AND 
BETWEEN column_name BETWEEN valueN and valueM;

위에서 언급한 구문을 사용하여 여러 BETWEEN 연산자를 사용할 수 있습니다. 시나리오: 10세에서 13세 사이의 학생 이름을 가져오고 80에서 85퍼센트 사이에 표시합니다.

SELECT StudentName FROM Student WHERE 
StudentAge BETWEEN 10 AND 13 
AND
StudentPercent BETWEEN 80 AND 85;