Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
39
Добавлен:
26.05.2015
Размер:
104.96 Кб
Скачать

БД СТУДЕНТЫ

  1. SELECT студенты.* FROM студенты; - использование шаблона “*”

  2. SELECT студенты.ном_зач, студенты.ФИО FROM студенты; - перечисление полей таблицы

  1. SELECT * FROM атт_студ WHERE атт_студ.ном_зач="111"; - текстовая константа заключается в кавычки. Обратите внимание, что В КОНСТРУКТОРЕ для поля с условием отменен параметр ВЫВОД НА ЭКРАН, поэтому оно повторно выводиться не будет. Условие может быть задано с помощью любого оператора сравнения (=, >=, <=, <> и т.д.)

  2. SELECT атт_студ.* FROM атт_студ WHERE атт_студ.дата=#12/11/2011#; - константа типа DATE звключается в знаки #

  3. SELECT атт_студ.* FROM атт_студ WHERE атт_студ.дата=#12/11/2011# AND атт_студ.ном_зач="111"; - сложное условие можно задать с помощью булевых выражений AND, OR, NOT

SELECT атт_студ.* FROM атт_студ

WHERE атт_студ.дата=#12/11/2011# Or атт_студ.дата=#3/15/2011# ;

~ SELECT атт_студ.* FROM атт_студ

WHERE атт_студ.дата IN (#12/11/2011#,#3/15/2011#); - оператор IN проверяет условие на совпадение хотя бы с одним значением из списка

  1. SELECT атт_студ.* FROM атт_студ WHERE атт_студ.оценка BETWEEN 4 AND 5; - граничные значения диапазона входят в проверяемые условия. ~ SELECT атт_студ.* FROM атт_студ WHERE атт_студ.оценка>=4 AND атт_студ.оценка<=5;

  1. SELECT атт_студ.* FROM атт_студ WHERE (атт_студ.оценка BETWEEN 4 AND 5) AND (атт_студ.оценка NOT IN (2,5)); - исключение граничных значений диапазона

  2. SELECT атт_студ.* FROM атт_студ WHERE атт_студ.ном_зач) LIKE "*1*"; - оператор LIKE используется только для строк. Знак “*”используется для указания любого количества любых символов (MS ACCESS)

  3. SELECT атт_студ.* FROM атт_студ WHERE атт_студ.ном_зач LIKE "???"; - шаблон для одного любого символа (MS ACCESS)

  4. SELECT атт_студ.* FROM атт_студ WHERE атт_студ.оценка IS NULL; - проверка на отсутствие данных

  5. SELECT атт_студ.* FROM атт_студ WHERE атт_студ.оценка NOT IS NULL;

  6. SELECT атт_студ.* FROM атт_студ WHERE атт_студ.дата NOT IN (#12/11/2011#,#3/15/2011#);или NOT атт_студ.дата IN

  7. SELECT Count(*) AS количество FROM атт_студ; - агрегатные функции используются не только для групп записей.

  8. SELECT a.ном_зач, a.код_дисц, a.дата, a.оценка FROM атт_студ AS a; - можно давать имена и таблицам (в запросах)

  1. SELECT Count(*) AS количество FROM оценка; - если вместо поля указан шаблон “*”, то функция считает и NULL-значения, поэтому ответ = 4.

  2. SELECT Count(оценка.оценка) AS количество FROM оценка; - функция Count для указанного поля исключает NULL-значения, поэтому ответ =3. Остальные функции игнорируют значения NULL.

Добавим студента Иванова вновь в таблицу аттестаций:

  1. SELECT атт_студ.ном_зач, Max(атт_студ.оценка) AS Max FROM атт_студ

GROUP BY атт_студ.ном_зач; - можно по группе полей подсчитать итоги

  1. SELECT атт_студ.ном_зач FROM атт_студ GROUP BY атт_студ.ном_зач HAVING атт_студ.ном_зач="111"; - оператор HAVING определяет критерии выбора групп, поэтому содержит поля, указанные в операторе GROUP BY.

  2. SELECT студенты.ФИО, атт_студ.дата, атт_студ.оценка FROM атт_студ, студенты

WHERE атт_студ.ном_зач=студенты.ном_зач; - связать тблицы можно при помощи оператора WHERE

  1. SELECT студенты.ФИО, атт_студ.дата, атт_студ.оценка, дисциплины.дисц FROM атт_студ, студенты, дисциплины

WHERE атт_студ.ном_зач=студенты.ном_зач AND дисциплины.код_дисц=атт_студ.код_дисц; - связаны 3 таблицы

~ SELECT студенты.ФИО, атт_студ.дата, атт_студ.оценка, дисциплины.дисц

FROM (атт_студ INNER JOIN студенты ON атт_студ.ном_зач=студенты.ном_зач) INNER JOIN дисциплины

ON атт_студ.код_дисц=дисциплины.код_дисц;

  1. SELECT DISTINCT атт_студ.ном_зач FROM атт_студ; -DISTINCT указывается только 1 раз в команде.

  2. SELECT Count(*) AS количество FROM (SELECT атт_студ.ном_зач FROM атт_студ GROUP BY атт_студ.ном_зач); - вложенный запрос

  3. SELECT ' количество =', Count(*) FROM (SELECT атт_студ.ном_зач FROM атт_студ GROUP BY атт_студ.ном_зач); - можно ввести столбец с произвольным текстром

  4. SELECT студенты.ФИО FROM студенты INNER JOIN атт_студ ON студенты.ном_зач = атт_студ.ном_зач

GROUP BY студенты.ФИО; - пофамильный вывод

  1. SELECT студенты.ФИО FROM [SELECT студенты.ФИО

FROM студенты INNER JOIN атт_студ ON студенты.ном_зач=атт_студ.ном_зач

GROUP BY студенты.ФИО]. AS a; - пофамильный вывод (MS ACCESS)

  1. SELECT ФИО FROM студенты

WHERE ном_зач IN (SELECT ном_зач FROM атт_студ WHERE ном_зач="111"); - вложенный запрос в операторе IN

Соседние файлы в папке УСТАНОВ_ЛЕКЦИИ_БД