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;