Annotated SQL Геннадий Дубина Android-разработчик, DataArt, Украина.

Презентация:



Advertisements
Похожие презентации
База данных База данных – это конкретная предметная область, описанная с помощью таблиц.
Advertisements

Лекция 16 Лекция 16 Основы SQL. Описание отношений, доменов, ограничений целостности, представлений данных. Реализация операций реляционной алгебры в SQL.
БАЗЫ ДАННЫХ ЛЕКЦИЯ 12. тема: ОСНОВЫ ЯЗЫКА SQL Общие сведения SQL структурированный язык запросов (Structured Query Language)
Три способа организации доступа к базе данных через: 1.Запуск PostgreSQL интерактивной терминальной программы, называемые PSQL, который позволяет интерактивно.
PL/SQL Триггер блок PL/SQL, выполняемый неявно каждый раз, когда происходит конкретное событие.
PL/SQL Триггеры (INSERT, UPDATE, DELETE). Определение Три́ггер базы данных (англ. trigger) это хранимая процедура особого типа, которую пользователь не.
Реляционные базы данных N-арное отношение – подмножество декартова произведения N множеств возможных значений (доменов, типов данных, атрибутов) Изображение.
PL/SQL Курсоры. Курсор – специальный элемент, связанный с SQL-оператором SELECT. Объявление курсора происходит в секции объявления базового блока. Работа.
Triggers для mysql. Что есть триггер? Триггер - это хранимая процедура особого типа, исполнение которой обусловлено наступлением определенного события.
Создание Web страниц Урок 12: PHP & MySQL Павел Бочаров.
Лекция 3 Домены Ограничения на значения столбцов Создание, изменение и удаление таблиц Ключи и ссылочная целостность Защита таблиц.
PL/SQL Курсоры в PL/SQL Неявные курсоры создаются PL/SQL неявно для всех команд DML и SELECT. Явные курсоры объявляются программистом, который присваивает.
Ekaterina B. Egorkina,© VEELTECH.RU Загрузка и вывод изображений Каким образом можно сохранить картинку в БД, а потом отобразить ее на странице?
Процедуры Базы данных: учебный курс Некоторые операции, рассматриваемые как неделимые, трудно выразить с помощью одного запроса к БД. Примеры: занести.
Введение в SQL (НЕ select) Затрагиваемые темы Роль языка SQL. Части SQL Роль языка SQL. Части SQL Администрирование БД: привилегии (DCL) Администрирование.
Создание таблиц. А.М. Гудов 2Заключение Имеется несколько способов соединения таблиц: –Эквисоединение –Не-эквисоединение –Внешнее соединение –Соединение.
1 Основы SQL: MySQL Будем использовать MySQL СУБД с открытым кодом Бесплатная версия (Community Edition) – на В Linux-дистрибутивах.
Разработка WEB-приложений Автор: доцент, к.т.н. Галямова Елена Валентиновна Курс лекций и практических занятий для студентов ИУ 6-7 х и АК
PL/SQL Взаимодействие с СУБД. Специальные типы Имя_таблицы.имя_столбца%TYPE Имя_таблицы%ROWTYPE; Имя_курсора%ROWTYPE;
SQL Реализация в ACCESS. Сравнение Microsoft Access SQL и ANSI SQL Microsoft Access SQL в основном отвечает стандарту ANSI-89 (уровень 1) некоторые средства.
Транксрипт:

Annotated SQL Геннадий Дубина Android-разработчик, DataArt, Украина

Чего хочется Описываем схему один раз Описываем схему в одном месте Мало кода Легкость Читаемость

Создание схемы БД Написание скриптов руками Срипты/база в ресурсах Runtime framework для создания схемы Annotation processor

Inline SQLExternal SQLRFAnnotations Один раз +-++ В одном месте +/---+ Мало кода ---+ Легкость -+/-++ Читаемость -+++

Принцип описания схемы Таблица – интерфейс. –имя таблицы –имена колонок –path для провайдера Схема – класс/интерфейс со всеми таблицами

Annotation SQL Это не ORM Никакой магии Это утилита/плагин для сокращения количества кода Все можно посмотреть и потрогать Плагин для Eclipse Работает с ant Работает c Idea

#1 SQL – структура, которая описывает – таблица в – индекс на - – вьюшка в – запрос в контент провайдере

@ Schema Класс содержащий описание всех таблиц, вьюшек, запрос Атрибуты className dbName dbVersion

@Table Определяем –type [INTEGER, REAL, TEXT, ABORT, FAIL, IGNORE, REPLACE]

@Index Создаем индекс для таблички. Будет создан индекс с именем idx_ Атрибуты name columns

@PrimaryKey Создаем составной Primary Key для таблицы Атрибуты columns

@SimpleView Создаем view для выборки данных из нескольких таблиц/view Столбцы создаются с именем _ Атрибуты value – имя view

Join –joinTable – таблица которую присоединяем –joinColumn –onTableAlias – алиас таблицы к которой присоединяем –onColumn –type [INNER, LEFT, RIGHT, –joinTable – таблица переменной –onCondition – raw sql вашего условия –type [INNER, LEFT, RIGHT, - что – ничего не выбираем

@RawQuery Создаем sql запрос который будет выполняться в Content Provider. Как и view только с параметрами Атрибуты value – имя запроса

Валидация схемы Таблица без столбцов Более одного PrimaryKey для таблицы Индекс не содержит полей Дублирующиеся названия таблиц/вьюшек во вьюшке Существование колонок в таблицах/view Дублирующиеся alias во view Пустое название таблицы/столбца/индекса/вьюшки Индекс можно определить только для таблицы

#2 Content Provider Создаем полноценный провайдер с помощью нескольких строк при этом сохраняем human style Поддерживает: no-notify limit alternative notify uri bulkInsert triggers

– помечаем – таблица/вью доступно через контент – обработчик на действие с

@Provider Атрибуты: name schemaClass authority openHelperClass

@URI type [DIR, ITEM, DIR_AND_ITEM] сolumn – по умолчанию _id altNotify onlyQuery – по умолчанию false все опционально

Пример

@Trigger Атрибуты: name type [INSERT, DELETE, UPDATE, ALL] when [BEFORE, AFTER] Методы: on Inserted(ContentValues values) on Deleted(Uri uri, String selection, String[] selectionArgs) on Updated(Uri uri, ContentValues values, String selection, String[] selectionArg)

Human Style

Вопросы?