Опубликован: 16.01.2007 | Уровень: для всех | Доступ: платный
Лекция 9:

Работа с датой и временем

< Лекция 8 || Лекция 9: 1234 || Лекция 10 >

Тип столбца Null

В этой лекции мы уже встречались с типом NULL. Теперь рассмотрим его подробнее.

Тип столбца NULL является специальным значением. Чтобы вставить значение NULL, удалите просто имя столбца из оператора INSERT. Столбцы содержат NULL по умолчанию, если только не определены как NOT NULL. Значение null может использоваться для целочисленных, а также текстовых или двоичных данных.

NULL нельзя сравнивать с помощью арифметических операторов. Сравнение для NULL можно делать с помощью IS NULL или IS NOT NULL.

select e_id, children
from employee_per
where children IS NOT NULL;

Результат запроса представлен на рис. 9.18.

Сотрудники, имеющие детей

Рис. 9.18. Сотрудники, имеющие детей

Приведенная выше команда выводит идентификаторы и количество детей сотрудников, у которых есть дети.

Задания

  1. Найти и вывести идентификаторы и имена супругов всех сотрудников, которые состоят в браке.
  2. Изменить предыдущее задание так, чтобы вывод был отсортирован по именам супругов.
  3. Сколько имеется сотрудников каждого пола (мужчин и женщин)?
  4. Сколько сотрудников состоят в браке, и сколько холостых?
  5. Найдите общее число детей.
  6. Сделайте уникальные группы по количеству детей и определите число детей каждой группы. Отсортируйте вывод групп по убыванию по количеству детей.

Возможные решения

  1. mysql> select e_id, s_name
        -> from employee_per
        -> where m_status = 'Y';

    или

    mysql> select e_id, s_name
        -> from employee_per
        -> where s_name IS NOT NULL;
  2. mysql> select e_id, s_name
        -> from employee_per
        -> where m_status = 'Y'
        -> ORDER BY s_name;
    
    
       mysql> select e_id, s_name
        -> from employee_per
        -> where s_name IS NOT NULL
        -> ORDER BY s_name;
  3. mysql> select sex, count(*)
        -> from employee_per
        -> GROUP BY sex;
  4. mysql> select m_status, count(*)
        -> from employee_per
        -> GROUP BY m_status;
  5. mysql> select sum(children) from employee_per;
  6. mysql> select children, count(*) AS
        -> number from employee_per
        -> GROUP BY children
        -> ORDER BY number DESC;
< Лекция 8 || Лекция 9: 1234 || Лекция 10 >
Александра Каева
Александра Каева
Диляра Кенжебай
Диляра Кенжебай