Azotirovanie.ru

Инженерные системы и решения
2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Лабораторная работа №1 «Создание и заполнение базы данных»

Лабораторная работа №1 «Создание и заполнение базы данных»

При запуске программа Microsoft Access 2007 похожа на справочную систему. В открывшемся окне можно выбрать один из стандартных шаблонов или базу данных, с которой вы уже работали ранее.

В Access 2007 базу данных можно создать следующими способами:

· выбрать в открывшемся окне пункт «Новая база данных» в списке шаблонов,

· щёлкнуть в левом верхнем углу окна по кнопке Microsoft Office и выбрать значок «Создать»,

Далее, в правой части окна потребуется указать название базы данных. Присвойте создаваемой базе данных имя «Школа» и поместите её в свой каталог: H:<Фамилия>, нажав на значок «Открытая папка».

Щёлкните по кнопке «Создать».

2. Создание таблицы.

После создания базы данных автоматически создаётся пустая таблица с названием Таблица 1.

Каждое поле таблицы имеет свой тип данных:

· Текстовый – в поле могут вводиться названия, имена, любой текст;

· Поле МЕМО — может находиться текст, имеющий длину до 64000 символов;

· Числовой – может иметь основной, денежный, процентный, фиксированный, экспоненциальный, евро формат. По размеру поля число может быть: длинным целым, целым, байтом, одинарное с плавающей точкой, двойное с плавающей точкой, кодом репликации и действительным;

· Дата/Время – предназначен для ввода даты и времени в различных форматах;

· Денежный – предназначен для ввода чисел, имеющих денежный формат;

· Счётчик — обычно предназначен для нумерации строк в таблице. Нумерацию можно сделать последовательной или случайной;

· Логический – имеет формат Да/Нет (Истина/Ложь);

· Поле объекта OLE — служит для вставки в запись документов Word, электронных таблиц Excel и других объектов, или для связи с этими объектами;

· Гиперссылка – служит для перехода по ссылке;

· Вложение – содержит вложенные компоненты СУБД Access 2007;

· Мастер подстановок – мастер создаёт «столбец подстановки», в котором отображается список значений для выбора.

Щёлкните по пункту меню «Режим», находящийся слева и выберите «Конструктор». В появившемся окне введите название таблицы Преподавателии нажмите Ок.

Таблица должна состоять из семи колонок. Шапка таблицы, т.е. первая строка с названиями колонок, должна иметь следующий вид:

Код преподавателяФИОДата рожденияЗарплатаДолжностьБиографияФотография
1Иванов И,И.29.02.194810560учительЖил…

В режиме «Конструктор» создайте структуру таблицы «Преподаватели».

Колонки (поля) имеют следующие характеристики:

№ п.п.Имя поляТип данныхРазмер поляУсловие на значениеСписок допустимых значений
Код_преподавателяСчётчикДлинное целое
ФИОТекстовый
Дата_рожденияДата/время>#01.01.1960#
ЗарплатаЧисловойДлинное целое <100000
ДолжностьТекстовый лаборант; учитель; завуч; директор
БиографияПоле МЕМО
ФотографияПоле объекта OLE

Список допустимых значений и условие на значение позволяют значительно уменьшить количество ошибок при вводе данных, т.е. способствуют поддержанию целостности базы данных. Кроме того, список допустимых значений ускоряет ввод данных.

Условие на значение задаётся в «свойствах поля» в нижней части окна конструктора таблиц при выборе вкладки «Общие», а список допустимых значений — при выборе вкладки «Подстановка». При задании списка допустимых значений необходимо выбрать следующие значения свойств:

Читайте так же:
Jk триггер схема асинхронный счетчик

· для свойства «Тип элемента управления» — поле со списком или список,

· для свойства «Тип источника строк» — список значений.

· для свойства «Только значения источника строк» – да.

Значения перечисляются в свойстве «Источник строк», в появившемся окне Изменение элементов списка. Каждое значение пишется в отдельной строке и при вводе отделяется от других значений нажатием на клавишу Enter.

Первое поле автоматически является ключевым. Для того чтобы ключевым было другое поле, нужно выбрать его и щёлкнуть пункт меню «Ключевое поле» либо воспользоваться правой клавишей мыши. В данной таблице ключевым является поле «Код_преподавателя».

3. Ввод данных. Перейдите в режим таблицы. Для этого либо в меню, либо на панели инструментов выберите Режим -> Режим таблицы.

Введите 5 записей с произвольными данными о преподавателях (учителях). При переходе к вводу следующей записи только что введённая запись автоматически сохраняется.

Обратите внимание на то, что счётчик автоматически увеличивается на единицу после ввода очередной записи. Значение счётчика невозможно исправить. Хранящееся в записи значение счётчика при удалении этой записи теряется. Максимальное значение счётчика в любой момент времени равно общему количеству введённых записей, включая удалённые.

Тип «Поле объекта OLE» служит для вставки в запись документов Word, электронных таблиц Excel и других объектов, или для связи с этими объектами.

Для вставки нужно щёлкнуть правой кнопкой мышки по полю и в появившемся меню выбрать «Вставить объект». В появившемся окне выбрать переключатель «Создать новый», выбрать пункт «Рисунок Paintbrush» и нарисовать портрет преподавателя, затем сохранить его в вашей папке, либо вставить фото преподавателя из вашей папки.

Минимальное и максимальное значения массива

Разумеется, проще всего получить минимальный и максимальный элементы массива с помощью функций min() и max() :

Однако на форумах часто просят написать скрипт, не использующий эти функции. Чаще всего этого требуют преподаватели учебных учреждений.

Условия задачи

1. Найти наибольший наименьший элементы в одномерном числовом массиве.
2. Определить номер минимального и максимального элементов заданного одномерного массива.
3. Найти минимальное и максимальное значение в ассоциативном массиве.

Общий принцип поиска элементов

Во всех решениях мы будем использовать одну и ту же логику.

Согласно условию, нам необходимо объявить числовой массив произвольной длины. Также объявим 4 переменные, в которые будем помещать найденные значения и их ключи:

Далее перебираем массив в цикле и на каждой итерации проверяем, больше ли текущее значение, чем самое большое, что мы находили до этого.

И если больше — будем записывать в $max новое максимальное значение, а в $max_key его ключ. Абсолютно также поступим и с минимальными ключом и значением.

Пример с циклом foreach:

На данном этапе наш код уже будет работать, но это ещё не всё. Попробуем изменить исходный массив и посмотрим на результат:

Максимальным должно быть число 0 , но скрипт вывел -12 . Дело в том, что PHP не считает истинным выражение 0 > null , поэтому ноль на первой итерации цикла не записался в переменную $max .

Читайте так же:
Счетчики для сайта png

Для решения этой проблемы просто добавим условие, что если $max === null , т.е. если это первая итерация, то в любом случае записываем текущее значение в $min и $max :

Минимальный и максимальный элементы с циклом FOREACH

Решение:

Минимальный и максимальный элементы с циклом WHILE

Решение 1: счётчик + count()

Цикл будет выполняться до тех пор, пока значение счётчика $i не превысит количество элементов массива.

Решение 2: счётчик + isset()

Запускаем вечный цикл while и в каждой итерации цикла проверяем существование следующего элемента с помощью isset() . Если его нет — выходим из цикла оператором break :

Решение 3: list() + each()

Функция each() возвращает ключ и значение текущего элемента массива и смещает его внутренний указатель на единицу. Функция list() используется просто для удобства — с её помощью мы превращаем массив, который возвращает функция each, в две разные переменные:

Получился практически аналог foreach. Единственный минус в том, что начиная с PHP 7.2 функция each() объявлена устаревшей.

Решение 4: current() + next()

Это решение похоже на предыдущее с each(). Получаем текущий элемента массива функцией current() и смещаем внутренний указатель массива функцией next() . Получить текущий ключ массива можно с помощью функции key() .

Наибольший и наименьший элементы с циклом FOR

Решение 1: счётчик + count()

Вводим счётчик $i и увеличиваем его после каждой итерации. Цикл прекратится как только значение счётчика превысит количество элементов массива.

Решение 2: счётчик + isset()

В отличие от предыдущего варианта, мы не смотрим на количество элементов массива, а запускаем вечный цикл и в каждой итерации проверяем существование следующего элемента, и если его нет — прерываем цикл командой break :

Решение 3: each() + list()

Функция each() возвращает массив с ключом и значением текущего элемента массива, а list() превращает этот массив в 2 разные переменные. После последнего элемента функция each() вернёт false и цикл прекратит работу.

Решение 4: current() + next()

С помощью функции next() смещаем внутренний указатель массива, а функции current() и key() возвращают текущие ключ и значение. Первое и последнее выражение цикла оставляем пустыми.

Максимальное значение в ассоциативном массиве

В ассоциативных массивах отсутствует порядок или системность в названиях ключей, поэтому циклы со счётчиками здесь недоступны.

Но мы всё ещё можем использовать цикл foreach и те решения для while и for, где используются функции each() и next() , поскольку они используют не ключи, а внутренний указатель массива.

Выражения Microsoft Access и их элементы. Операторы

Каждое выражение может содержать один или несколько операторов и одну или несколько констант, идентификаторов или функций.

· Константы характеризуют неизменные значения. Значения констант определяются пользователем при вводе выражения.

· Идентификаторы — это имена объектов в Access (например, полей таблиц или запросов), которые при вычислении выражений заменяются (часто используется термин возвращают) их текущими значениями. Существует несколько встроенных констант, служащих идентификаторами: True, False, Yes, No и Null.

· Функциивозвращают в выражение значение вместо имени функции. В отличие от идентификаторов, большинство функций требуют заключать в скобки свои аргументы — идентификаторы или значения подвыражений. Например, функция Time(), имеющая пустой список аргументов, возвращает текущее время.

Читайте так же:
Кто имеет право опламбировать счетчики

· Операторы обычные значки арифметических операций (+, -, *, /) и другие символы и аббревиатуры. Большинство из них эквивалентны операторам традиционных языков программирования.

Для создания выражений в Access существует несколько категорий операторов: арифметические, операторы присваивания и сравнения, логические операторы, операторы конкатенации.

Арифметические: + (сложение), — (вычитание), * (умножение), / (деление), % (проценты), ^ (возведение в степень) и др.

Операторы присваивания и сравнения: = (равно), > (больше), < (меньше), >= (больше или равно), <= (меньше или равно), <> (не равно).

Логические операторы : AND (логическое И), OR (логическое ИЛИ), NOT (логическое отрицание), XOR (исключающее ИЛИ) и др.

Операторы конкатенации: Стандартный значок оператора конкатенации, амперсант (&), является более предпочтительным, чем значок плюса (+), хотя оба они приводят к одинаковому результату: объединению двух текстовых значений в единую строку символов.

Кроме традиционных знаков математических действий существует еще несколько операторов:

Оператор Betweenпозволяет задать интервал для числового значения. Например, Between 10 And 100 эквивалентен условию >= 10 And <=100.

Оператор In позволяет выполнить проверку на равенство любому значению из списка. Например, In («Математика»; «История»)

Оператор Like используется для создания масок при определении строк с неизвестными символами и требует дополнительных специальных символов и правил синтаксиса. Например, Like «Л*» или Like «*л»

Специальные символы, используемые в Access:

* — обозначает любую последовательность символов.

? — обозначает любой одиночный символ.

# — обозначает любую неизвестную цифру.

Вопросы для самопроверки

1. Назовите основные функциональные возможности СУБД Microsoft Access.

2. Из каких объектов состоит база данных?

3. Каковы основные этапы проектирования базы данных?

4. Какие типы данных существуют в Access?

5. Назовите основные свойства полей?

6. Каким требованиям должны удовлетворять имена полей таблицы?

7. Какие существуют категории операторов в Access?

8. В каких случаях используется оператор Between?

9. Когда используют оператор Like?

Тема 6. ТЕХНОЛОГИИ РАБОТЫ С БАЗОЙ ДАННЫХ
MICROSOFT ACCESS

Типы запросов в Microsoft Access

Запрос — это в первую очередь средство отбора данных из одной или нескольких таблиц при помощи определенного пользователем условия (рис. 6.1). Запросы позволяют создавать виртуальные таблицы, которые состоят из вычисляемых полей или полей, взятых из других таблиц или запросов. С помощью запросов можно просматривать, анализировать и изменять данные из нескольких таблиц. Они также используются в качестве источника данных для форм и отчетов.

Рис. 6.1. Запрос в режиме конструктора

В Access существует несколько типов запросов: запросы на выборку, перекрестные запросы, запросы действия.

Наиболее часто используемым запросом является запрос на выборку. Запрос на выборку возвращает данные из одной или нескольких таблиц, а также результаты, которые при желании пользователь может изменить (с некоторыми ограничениями). Также можно использовать запрос на выборку, чтобы сгруппировать записи для вычисления сумм, средних значений, пересчета и других действий. Для этих целей могут использоваться статистические функции: Sum, Avg, Max, Min, Count, First, Last и др.

· Sum — сумма значений поля для группы.

· Avg — среднее от всех значении поля в группе.

Читайте так же:
Тахометрический счетчик сухого типа

· Max — максимальное значение поля в группе.

· Min — минимальное значение поля в группе.

· Count — число значений поля в группе без учета пустых значений.

· First — значение поля из первой записи в группе.

· Last — значение поля из последней записи в группе.

Разновидностью запроса на выборку является запрос с параметрами — это запрос, при выполнении которого в его диалоговом окне пользователю выдается приглашение ввести данные, например условие для возвращения записей или значение, которое должно содержаться в поле. В данном случае необходимо в условие отбора вставить квадратные скобки [ ], подразумевающие, что перед выполнением запроса должно быть активизировано окно диалога с приглашением ввести параметр, являющийся критерием отбора. Выражение в скобках выводится в этом окне в качестве сообщения-подсказки. Можно создать запрос, в результате которого выводится приглашение на ввод нескольких данных, например, двух дат. В результате будут возвращены все записи, находящиеся между указанными двумя датами. Также запросы с параметрами удобно использовать в качестве основы для форм и отчетов. Например, на основе запроса с параметрами можно создать годовой отчет о прибылях и убытках. При выводе данного отчета, на экране появится приглашение ввести год, прибыли и убытки которого интересуют пользователя. После ввода года на экране будет представлен требуемый отчет.

Перекрестный запрос вычисляет сумму, среднее значение, число элементов и значения других статистических функций, группируя данные и выводя их в компактном виде, напоминающем электронную таблицу. Эти результаты группируются по двум наборам данных, один из которых расположен в левом столбце таблицы, а второй — в верхней строке.

Запрос действия — это запрос, который за одну операцию вносит изменения в несколько записей. Существует четыре типа запросов на изменение: на удаление, на обновление и добавление записей, а также на создание таблицы.

· Запрос на удаление удаляет группу записей из одной или нескольких таблиц. Например, запрос на удаление позволяет удалить записи о товарах, поставки которых прекращены. С помощью запроса на удаление можно удалять только всю запись, а не отдельные поля внутри нее.

· Запрос на обновление записей вносит общие изменения в группу записей одной или нескольких таблиц. Например, на 15% поднимаются цены на хлебобулочные изделия или на 5% увеличивается зарплата сотрудников предприятия. Запрос на обновление записей позволяет изменять данные в существующих таблицах.

· Запрос на добавление добавляет группу записей из одной или нескольких таблиц в конец одной или нескольких таблиц. Например, появилось несколько новых поставщиков, а также база данных, содержащая сведения о них. Чтобы не вводить все данные вручную, их можно добавить в таблицу используя запрос на добавление.

· Запрос на создание таблицы основан на запросе выборки, но в отличие от него результат запроса сохраняется в новой таблице. Например, создание резервной копии, какой либо таблицы.

Дата добавления: 2019-02-12 ; просмотров: 819 ; Мы поможем в написании вашей работы!

ACCESS 2007: определение максимального значения для каждой строки в нескольких столбцах

У меня есть таблица с несколькими столбцами даты на сотрудника:

Читайте так же:
Плата за не установленные общедомовые счетчики

Я хотел бы написать один запрос, который возвращает мне максимальную дату трех дат, доступных для каждого сотрудника. Я понимаю, что мне нужно написать запрос UNION ALL, но я не могу получить синтаксис, чтобы получить максимальное значение для записи сотрудника. Я все равно получаю одинаковое значение для всех сотрудников. Я уверен, что это глупая ошибка, но это сводит меня с ума. Любая помощь будет наиболее оценена.

Спасибо за быстрые ответы! Есть ли способ сделать это без использования инструкции iif? Я хотел бы обобщить его, если это вообще возможно, так как есть несколько других полей даты, и это действительно громоздкое вычисление логики IIF.

Кроме того, я забыл упомянуть, что любая из этих дат может быть пустой, и логика IIF, кажется, возвращает NULL как максимальное значение.

Я знаю, что это не чистое решение.

Но это то, что вы ищете, когда пишете UNION .

EDIT: вы можете использовать UNION ALL вместо UNION . Я полагаю, что с вышеуказанным запросом это не повлияет на результат.

Ничего себе! Я вижу, что это слишком сложно сделать просто: Max(Field-Constant1,Constant2) .

My Objective: Calulate значение, зависящее только от одной поданной, но не позволяйте вычисленному значению быть меньше константы.

Строки Expample в таблице двух полей (KeyField, ValueField):

Я хочу, чтобы возвращаемый select (когда Constant1 = 6 и Constant2 = 1), я поместил всю математику, чтобы его прояснить (только верхняя часть самой правой части после последнего = то, что я хочу):

Так что я просто хочу (когда Constant1 = 6 и Constant2 = 1), если это недостаточно ясно:

Остерегайтесь этого Null.

Я действительно хочу что-то действительно более сложное, но решая, что я смогу решить сложный, который я хочу.

Он может быть возобновлен как:
-Return Null, если значение Null или не действительное значение для используемого оператора математики (не всегда — это просто — или + и т.д.).
-Выполнить вычисленное значение, если возможно выполнить математику, но ограничено диапазоном (не менее значения и не больше другого значения).

Если я сделаю это на псевдокоде, это будет так:

На всякий случай кто-то скажет, что база данных не нормализована: я хочу сделать математику в поле, а затем ограничить результат в диапазоне; поэтому в самой маленькой тестовой базе данных будет только одна таблица, которая будет иметь только два поля (уникальное ключевое поле, поле данных), которое невозможно полностью не нормализовать; я не говорю о maximun некоторых полей в строке, ни maximun для полной таблицы в поле (агрегированные функции), только я хочу поставить нижний и верхний пределы рассчитанного значения, но считая Null, когда такое значение является Null или математика, которая должна быть выполнена с таким значением, не может быть выполнена (такие случаи, как Constant1/(FieldValue-Constant2) и т.д.).

Реальная выборка на случай, если кто-то не сможет ее использовать:

Желаемые поля результатов для запроса:

Образец надежды ясен и надеюсь, что кто-то может помочь, с чем-то проще, чем с помощью функций VBA!

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector