Database
 sql >> база данни >  >> RDS >> Database

SQL INTERSECT

Операторът за пресичане на SQL се използва за комбиниране на два или повече оператора SELECT, но показва само данните, подобни на оператора SELECT.

Синтаксисът за операцията INTERSECT:

SELECT COLUMN_NAME1, COLUMN_NAME2, COLUMN_NAME3 FROM TABLE_NAME1 INTERSECT SELECT COLUMN_NAME1, COLUMN_NAME2, COLUMN_NAME3 FROM TABLE_NAME2;

Правилата, които трябва да се спазват при използване на оператор INTERSECT са следните:

  1. Броят на колоните и редът на колоните трябва да са еднакви.
  2. Типът данни трябва да е съвместим.

Нека разберем концепцията за SQL INTERSECT с помощта на примери.

Разгледайте следните таблици заедно с дадените записи.

Таблица 1:Студент

STUDENT_ID STUDENT_NAME PHYSICS_MARKS CHEMISTRY_MARKS MATHS_MARKS ОБЩО_МАРКИ
1 NEHA 85 88 100 273
2 ВИШАЛ 70 90 82 242
3 SAMKEET 75 88 96 259
4 НИХИЛ 60 75 80 215
5 ЙОГЕШ 56 65 78 199
6 АНКИТА 95 85 96 276
7 SONAM 98 89 100 287
8 ВИНЕЕТ 85 90 100 275
9 SANKET 86 78 65 229
10 PRACHI 90 80 75 245
101 SNEHA 85 88 100 273
103 ВИШАЛ 75 88 96 259

Таблица 2:Шип

STUDENT_ID STUDENT_NAME PHYSICS_MARKS CHEMISTRY_MARKS MATHS_MARKS ОБЩО_МАРКИ
4 НИХИЛ 60 75 80 215
6 АНКИТА 95 85 96 276
7 SONAM 98 89 100 287
9 SANKET 86 78 65 229
101 SNEHA 85 88 100 273
102 SAMKEET 70 90 82 242
103 ВИШАЛ 75 88 96 259
105 ЙОГЕШВАРИ 56 65 78 199
106 VINAY 85 90 100 275
107 ПРАШАКА 90 80 75 245
8 ВИНЕЕТ 85 90 100 275

Пример 1: Изпълнете заявка за извършване на операция INTERSECT между Студентска маса и Студентска таблица.

SELECT * FROM STUDENT INTERSECT SELECT * FROM STUD;

В горната заявка използвахме две заявки SELECT. Първата заявка SELECT извлича данните от таблицата Student. Той извършва операция INTERSECT с данните, извлечени от втората заявка SELECT, която извлича данните от таблицата Stud. Избрани са само подобни записи между тези две таблици.

Изходът от горната заявка е:

STUDENT_ID STUDENT_NAME PHYSICS_MARKS CHEMISTRY_MARKS MATHS_MARKS ОБЩО_МАРКИ
4 НИХИЛ 60 75 80 215
6 АНКИТА 95 85 96 276
7 SONAM 98 89 100 287
8 ВИНЕЕТ 85 90 100 275
9 SANKET 86 78 65 229
101 SNEHA 85 88 100 273
103 ВИШАЛ 75 88 96 259

Показват се само общи записи между Student Table и Stud Tables.

Пример 2: Изпълнете заявка за извършване на операция INTERSECT между таблицата на Студент и таблицата на Stud, но показвайте само онези записи на Student от таблицата Stud, където оценките по математика са равни на 100.

SELECT * FROM STUDENT INTERSECT SELECT * FROM STUD WHERE MATHS_MARKS = 100;

Изходът от горната заявка е:

STUDENT_ID STUDENT_NAME PHYSICS_MARKS CHEMISTRY_MARKS MATHS_MARKS ОБЩО_МАРКИ
7 SONAM 98 89 100 287
8 ВИНЕЕТ 85 90 100 275
101 SNEHA 85 88 100 273

Показват се само записите на учениците, чиито математически оценки са равни на 100 от таблицата Stud и са общи както за Студентската, така и за таблицата Stud.

Пример 3: Изпълнете заявка за извършване на операция INTERSECT между таблицата на Студент и таблицата на Stud, но показвайте само онези записи на Студент от таблицата на Student, където оценките по химия са по-големи от 80.

SELECT * FROM STUDENT WHERE CHEMISTRY_MARKS > 80 INTERSECT SELECT * FROM STUD;

Изходът от горната заявка е:

STUDENT_ID STUDENT_NAME PHYSICS_MARKS CHEMISTRY_MARKS MATHS_MARKS ОБЩО_МАРКИ
6 АНКИТА 95 85 96 276
7 SONAM 98 89 100 287
8 ВИНЕЕТ 85 90 100 275
101 SNEHA 85 88 100 273
103 ВИШАЛ 75 88 96 259

Показват се само записите на учениците, чиито оценки по химия са по-големи от 80 от таблицата на учениците и са общи както за студентската, така и за таблицата Stud.

Пример 4: Изпълнете заявка за извършване на операция INTERSECT между Студентска таблица и Студентска таблица и покажете само онези записи на Студент, при които оценките по физика са по-големи от 75 от таблицата на Студентите, и второ изберете заявки, които показват само онези записи на Студент, където оценките по математика са по-големи от 90 от Stud.

SELECT * FROM STUDENT WHERE PHYSICS_MARKS > 75 INTERSECT SELECT * FROM STUD WHERE MATHS_MARKS > 90;

Изходът от горната заявка е:

STUDENT_ID STUDENT_NAME PHYSICS_MARKS CHEMISTRY_MARKS MATHS_MARKS ОБЩО_МАРКИ
6 АНКИТА 95 85 96 276
7 SONAM 98 89 100 287
8 ВИНЕЕТ 85 90 100 275
101 SNEHA 85 88 100 273

Показват се само записите на учениците, чиито оценки по физика са по-големи от 75 от таблицата на учениците, а оценките по математика са по-големи от 90 от таблицата за ученици и са общи както за студента, така и за таблицата на Stud.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Основи на табличните изрази, част 5 – CTEs, логически съображения

  2. Открийте как кардиналността влияе на производителността

  3. NULL сложности – Част 3, Липсващи стандартни функции и алтернативи на T-SQL

  4. Лоши навици:Преброяване на редовете по трудния начин

  5. Тестване на DML изявления за OLTP в паметта