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 оператор за нумеричка вредност

Горенаведената синтакса подетално ќе ја разбереме преку неколку примери за нумеричка вредност. Да ја разгледаме следнава табела Студент за пример цел.

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 оператор за Текст вредност

Сценарио: Земете ги RollNo, StudentName и StudentAge каде StudentName е помеѓу Џорџ и Џесика.

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

Излез:

RollNo StudentName StudentAge
1 George 14
3 Jessica 13

SQL NOT BETWEEN Оператор за вредност на текстот

Сценарио: Земете ги RollNo, StudentName и StudentAge каде StudentName не е помеѓу Џорџ и Џесика.

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

Излез:

RollNo StudentName StudentAge
2 Monica 12
4 Tom 11

SQL BETWEEN оператор за Датумска вредност

Сценарио: Добијте ја возраста на студенти чиј прием е помеѓу 1 јануари 2018 и 31 јануари 2018 година.

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 Оператор за вредност на датумот

Сценарио: Добијте ја возраста на студентите чиј прием не е помеѓу 1 јануари 2018 и 31 јануари 2018 година.

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

Излез:

StudentAge
11

ПОВЕЌЕ ПОМЕЃУ оператори

Можеме да користиме и повеќекратни меѓу операторите. Неговата синтакса е:

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;