
- •Разработка баз данных средствами MySql
- •Содержание
- •Введение
- •1. Основы работы в субд MySql
- •Системы управления базами данных
- •Основные характеристики MySql
- •Команда create database
- •Работа с таблицами
- •Синтаксис команды create table
- •Удаление таблиц
- •Синтаксис команды drop table
- •Типы данных
- •Числовые данные
- •Строковые данные
- •Календарные данные
- •Тип данных null
- •Выбор типа данных
- •1 Вариант.
- •2 Вариант.
- •3 Вариант.
- •2. Работа с таблицами. Ввод, извлечение, поиск и удаление данных Запись данных в таблицы
- •Заполните таблицу employee_data 5-10 записями. Запрос данных из таблицы MySql
- •Выборка данных с помощью условий
- •Операторы больше и меньше
- •Поиск текстовых данных по шаблону
- •Предложение group by и having
- •Удаление записей из таблицы
- •Задание 1
- •Задание 2
- •Задание 3
- •3. Логические операции в MySql
- •Операторы in и between
- •Упорядочивание данных
- •Ограничение количества извлекаемых данных
- •Извлечение подмножеств
- •Ключевое слово distinct
- •Изменение записей
- •Задание 1
- •Задание 2
- •Задание 3
- •Вычисление среднего значения
- •Именование столбцов
- •Подсчет числа записей
- •Группировка данных
- •5. Математические функции в MySql. Строковые функции. Работа с датой Математические функции MySql
- •Строковые функции
- •Ascii(строка)
- •Concat(строка1, строка2, ...)
- •Особенности типа данных Date
- •Операции с датами
- •Определение диапазонов
- •Использование Date для сортировки данных
- •Выбор данных с помощью Date
- •Текущие даты
- •Тип столбца Null
- •Задание 1
- •Задание 2
- •Задание 3
- •6. Переменные и временные таблицы. Многотабличные запросы
- •7. Вложенные запросы в MySql
- •8. Хранимые процедуры и функции
- •9. Курсоры в MySql. Представления. Конструкции управления потоком данных
- •10. Анализ и моделирование предметной области
- •1. Выбор и текстовое описание предметной области
- •2. Разработка концептуальной er-модели предметной области
- •3. Определение функциональных требований
- •11. Проектирование базы данных
- •1. Создание логической реляционной модели базы данных
- •2. Нормализация логической реляционной модели базы данных
- •1Нф (Первая Нормальная Форма)
- •2Нф (Вторая Нормальная Форма)
- •3Нф (Третья Нормальная Форма)
- •12. Проектирование физической модели бд и ее реализация
- •1. Создание физической модели базы данных
- •2. Реализация физической модели базы данных в коде
- •13. Наполнение и тестирование бд
- •1. Наполнение базы данных
- •2. Тестирование базы данных
- •14. Создание приложения к бд в среде delphi 7, с использованием AnyDac framework 1.7.0
- •1. Начало работы
- •2. Связь с таблицами
- •3. Отображение таблицы на форме
- •4. Компонент adQuery
- •5. Экспорт данных в Excel
- •6. Работа с внешними ключами
- •Рекомендуемая литература
- •Разработка баз данных средствами MySql
- •460844, Г. Оренбург, ул. Советская, 19
Строковые функции
Данная группа функций позволяет осуществить различные преобразования строк. При использовании строковых функции следует помнить, что позиция в строке начинается с 1, а не с 0, как, например, в С-подобных языках программирования.
Рассмотрим некоторые строковые функции.
Ascii(строка)
Возвращает ASCII-код первого символа строки. Возвращает 0, если строка является пустой. Возвращает NULL, если строка равна NULL. ASCII() работает с символами в диапазоне кодов от 0 до 255.
SQL – скрипт |
Результат |
SELECT ASCII('2') ; |
50 |
SELECT ASCII(2); |
50 |
SELECT ASCII('dx'); |
100 |
CHAR(iV,...)
Интерпретирует аргументы как целые и возвращает строку, состоящую из символов с кодами, заданными этими целыми. Значение NULL пропускаются.
SQL – скрипт |
Результат |
SELECT CHAR(77,121,83,81,'76'); |
'MySQL' |
SELECT CHAR(77,77.3,'77.3'); |
'MMM' |
Concat(строка1, строка2, ...)
Возвращает строку, которая состоит из сцепленных аргументов. Возвращает NULL, если любой из аргументов равен NULL. Принимает один или более аргументов. Числовой аргумент преобразуется в эквивалентную строковую форму.
SQL – скрипт |
Результат |
SELECT CONCAT('My', 'S', 'QL'); |
'MySQL' |
SELECT CONCAT('My', NULL, 'QL'); |
NULL |
SELECT CONCAT(14.3); |
'14.3' |
INSERT (строка, позиция, длина, новая_строка)
Возвращает строку строка, в которой подстрока длиной длина, начинающаяся с позиции позиция, заменяется строкой новая_строка.
SQL – скрипт |
Результат |
SELECT INSERT('Quadratic', 3, 4, 'What'); |
'QuWhattic' |
LEFT(строка, длина)
Возвращает первые длина символов строки строка.
SQL – скрипт |
Результат |
SELECT LEFT('foobarbar', 5); |
'fooba' |
LENGTH(строка)
Возвращает длину строки строка в байтах.
SQL – скрипт |
Результат |
SELECT LENGTH('text'); |
4 |
REPEAT(строка, количество)
Возвращает строку, состоящую из аргумента строка, повторенного количество раз.
SQL – скрипт |
Результат |
SELECT REPEAT('MySQL', 3); |
'MySQLMySQLMySQL' |
REVERSE(строка)
Возвращает строку строка с обратным порядком символов.
SQL – скрипт |
Результат |
SELECT REVERSE('abc'); |
'cba' |
UCASE(строка)
Возвращает строку строка, у которой все символы приведены к верхнему регистру в соответствии с текущим набором символов.
SQL – скрипт |
Результат |
SELECT UPPER('Неj') ; |
'HEJ' |
SELECT UPPER('пря') |
'ПРЯ' |
Работа с датой
До сих пор мы имели дело с текстом (varchar) и числами (int). Чтобы познакомиться с типом данных date (дата) создадим еще одну таблицу, аналогично тому, как была создана первая таблица.
Создадим в текстовом редакторе файл employee_per.dat, который содержит оператор создания таблицы CREATE следующего вида:
CREATE TABLE employee_per (
e_id int unsigned not null primary key, -- идентификационный номер
address varchar(60), -- адрес
phone int, -- номер телефона
p_email varchar(60), -- адрес e-mail
birth_date DATE, -- дата рождения
sex ENUM('M', 'F'), -- пол
m_status ENUM('Y','N'), -- статус
s_name varchar(40), -- имя
children int); -- количество детей
и последовательность операторов INSERT, например, такого вида.
INSERT INTO employee_per (e_id, address, phone, p_email,
birth_date, sex, m_status, s_name, children) values (1,
'Арбат, 12', 7176167, 'anna@yandex.ru', '1972-03-16',
'M', 'Y', 'Анна Петрова', 2);
Заполним таблицу 5-6 записями.
Краткая характеристика полей таблицы:
e-id: идентификатор сотрудника, такой же как в таблице employee_data
address: адрес сотрудника
phone: номер телефона
p_email: личный адрес e-mail
birth_date: дата рождения
sex: Пол сотрудника, мужской (M) или Женский (F)
m_status: семейное положение, в браке (Y) или холост (N).
s_name: Имя супруга (NULL, если сотрудник холост)
children: Число детей (NULL, если детей нет)