Информатика · ҰБТ сұрағы №16259
Кітапхананың деректер қорында үш кесте бар (NULL — мән жоқ): Author(id, name): (1, 'Абай'), (2, 'Мұхтар'), (3, 'Ілияс'), (4, 'Сәкен') Book(id, title, author_id, price): (1, 'Қара сөз', 1, 2500), (2, 'Өлеңдер', 1, 1800), (3, 'Абай жолы', 2, 4200), (4, 'Таңдамалы', 3, 3100), (5, 'Жолдастар', NULL, 2000), (6, 'Ақ бөкен', 3, 2800), (7, 'Көк сарай', 2, 3600) Loan(book_id, member, days): (1, 'M1', 10), (3, 'M1', 20), (3, 'M2', 15), (4, 'M3', 7), (6, 'M2', 30), (7, 'M1', 12), (7, 'M3', 5), (7, 'M2', 9) Book.author_id → Author.id және Loan.book_id → Book.id сыртқы кілттері ON DELETE CASCADE шартымен жасалған.

SELECT COUNT(*) FROM Book WHERE author_id NOT IN (SELECT id FROM Author WHERE name LIKE 'А%'); сұранысы қандай мән қайтарады (name LIKE 'А%' тек 'Абай' жолына сәйкес)?

Дұрыс жауабы мен түсіндірмесі
Жауабы: 4

Ішкі сұраныс {1} береді. author_id ≠ 1 болатын кітаптар: 3, 4, 6, 7 — төртеу. 5-кітапта author_id = NULL, NULL NOT IN (1) нәтижесі UNKNOWN, сондықтан ол алынбайды.

«Мәліметтер қорын жасау» тақырыбынан тағы