Изучаем sql


SELECT emp_id, fname, lname, superior_emp_id



Pdf көрінісі
бет78/261
Дата28.07.2022
өлшемі1,6 Mb.
#147825
1   ...   74   75   76   77   78   79   80   81   ...   261
Байланысты:
Изучаем SQL ( PDFDrive )

SELECT emp_id, fname, lname, superior_emp_id

FROM employee

WHERE superior_emp_id = NULL;
Empty set (0.01 sec)
Как видите, запрос подвергается синтаксическому анализу и выполня
ется, но не возвращает ни одной строки. Это общая ошибка неопытных
SQLпрограммистов. Сервер БД не предупредит о ней, поэтому при соз
дании условий проверки на 
null
следует соблюдать осторожность.
Проверить наличие значения в столбце можно с помощью оператора
is not
null
:
mysql> 
SELECT emp_id, fname, lname, superior_emp_id

FROM employee

WHERE superior_emp_id IS NOT NULL;
+++++
| emp_id | fname | lname | superior_emp_id |
+++++
| 2 | Susan | Barker | 1 |
| 3 | Robert | Tyler | 1 |
| 4 | Susan | Hawthorne | 3 |
| 5 | John | Gooding | 4 |
| 6 | Helen | Fleming | 4 |
| 7 | Chris | Tucker | 6 |
| 8 | Sarah | Parker | 6 |
| 9 | Jane | Grossman | 6 |
| 10 | Paula | Roberts | 4 |
| 11 | Thomas | Ziegler | 10 |
| 12 | Samantha | Jameson | 10 |
| 13 | John | Blake | 4 |
| 14 | Cindy | Mason | 13 |
| 15 | Frank | Portman | 13 |
| 16 | Theresa | Markham | 4 |
| 17 | Beth | Fowler | 16 |
| 18 | Rick | Tulman | 16 |
+++++
17 rows in set (0.01 sec)
Эта версия запроса возвращает остальных 17 сотрудников, у которых,
в отличие от Майкла Смита (Michael Smith), есть начальник.
Прежде чем на время отложить рассмотрение 
null
, было бы полезным
отметить еще одну потенциальную ловушку. Предположим, требуется
идентифицировать всех сотрудников, не подчиняющихся Хелен Фле
минг (Helen Fleming), ID которой равен 6. Наверняка первым порывом
будет сделать следующее:
mysql> 
SELECT emp_id, fname, lname, superior_emp_id

FROM employee



Достарыңызбен бөлісу:
1   ...   74   75   76   77   78   79   80   81   ...   261




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет