Базы данных Лекция 06 Основы SQL. 1. Связи между таблицами БД Разновидности связи между таблицами БД: Один–ко–многим – одной записи родительской таблицы.

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



Advertisements
Похожие презентации
SQL. Создание базы данных CREATE DATABASE ALTER DATABASE DROP DATABASE.
Advertisements

Введение в SQL (НЕ select) Затрагиваемые темы Роль языка SQL. Части SQL Роль языка SQL. Части SQL Администрирование БД: привилегии (DCL) Администрирование.
База данных База данных – это конкретная предметная область, описанная с помощью таблиц.
История развития языка SQL Structured Query Language ɛ skju ɛ l ɛ skju ɛ l или si:kwəlsi:kwəl DML (Data Manipulation Language) DDL (Data Definition Language)
БАЗЫ ДАННЫХ ЛЕКЦИЯ 12. тема: ОСНОВЫ ЯЗЫКА SQL Общие сведения SQL структурированный язык запросов (Structured Query Language)
1 БАЗЫ ДАННЫХ Использование SQL для построения запросов. ЗАНЯТИЕ 6 ПУГАЧЁВ Ю.В. Учитель информатики Харьковская общеобразовательная школа І-ІІІ ступеней.
Лекция 16 Лекция 16 Основы SQL. Описание отношений, доменов, ограничений целостности, представлений данных. Реализация операций реляционной алгебры в SQL.
Лекция 3 Домены Ограничения на значения столбцов Создание, изменение и удаление таблиц Ключи и ссылочная целостность Защита таблиц.
PL/SQL Триггер блок PL/SQL, выполняемый неявно каждый раз, когда происходит конкретное событие.
1 Основы SQL: MySQL Будем использовать MySQL СУБД с открытым кодом Бесплатная версия (Community Edition) – на В Linux-дистрибутивах.
Базы данных Язык запросов SQL. Введение. SQL – Structured Query Language SQL – это структурированный язык запросов к реляционным базам данных (БД). SQL.
1 Часть II. Лекция 4. © Куркурин Николай Дмитриевич. (906)
SQL SQL (Structured Query Language Структурированный язык запросов) язык управления базами данных для реляционных баз данных.
Языки манипулирования данными. Общая характеристика Язык, в котором можно (по крайней мере) моделировать исчисление с переменными- кортежами, либо, что.
1 TRANSACT-SQL. Лекция 3. © Куркурин Николай Дмитриевич. (906) Microsoft SQL Server 2000.
Язык SQL Последовательности Представления Индексы.
Введение в язык SQL DDL (Data Definition Language) DML (Data Manipulation Language) DCL (Data Control Language) TCL (Transaction Control Language)
Язык SQL Типы данных SQL Типы данных, используемые в стандартном SQL, можно подразделить на следующие группы: строковые типы; числовые типы; типы для представления.
Реляционные базы данных N-арное отношение – подмножество декартова произведения N множеств возможных значений (доменов, типов данных, атрибутов) Изображение.
SQL Лекция 3. DDL (Data definition language). Язык определения данных (DDL) является частью SQL, дающей пользователю возможность создавать различные объекты.
Транксрипт:

Базы данных Лекция 06 Основы SQL

1. Связи между таблицами БД Разновидности связи между таблицами БД: Один–ко–многим – одной записи родительской таблицы может соответствовать несколько записей дочерней Один–к–одному – одной записи в родительской таблице соответствует одна запись в дочерней Многие–ко–многим – применяется в следующих случаях: –Одной записи в родительской таблице соответствует более одной записи в дочерней –Одной записи в дочерней таблице соответствует более одной записи в родительской 2

2. Стандарт и реализация языка SQL Язык SQL (Structured Query Language) – стандартный язык реляционных БД Стандарт на язык SQL был выпущен: ANSI в 1986 г. ISO в 1987 г. 3 Год Назва- ние Иное название Изменения 1986SQL-86SQL-87 Первый вариант стандарта, принятый институтом ANSI и одобренный ISO в 1987 году. 1989SQL-89FIPS 127-1Немного доработанный вариант предыдущего стандарта. 1992SQL-92 SQL2, FIPS Значительные изменения (ISO 9075); уровень Entry Level стандарта SQL-92 был принят как стандарт FIPS SQL:1999SQL3 Триггеры, базовые процедурные расширения, не скалярные типы данных и некоторые объектно-ориентированные возможности. 2003SQL:2003 Введены расширения для работы с XML-данными, оконные функции (применяемые для работы с OLAP-базами данных), генераторы последовательностей и основанные на них типы данных. 2006SQL:2006 Функциональность работы с XML-данными значительно расширена. Появилась возможность совместно использовать в запросах SQL и XQuery.XQuery 2008SQL:2008 Улучшены возможности оконных функций, устранены некоторые неоднозначности стандарта SQL:2003

3. Типы команд SQL Язык SQL может использоваться для: выполнения запросов к данным построения прикладных программ Основные категории команд языка SQL: DDL – язык определения данных ( CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE INDEX, ALTER INDEX, DROP INDEX ) DML – язык манипулирования данными ( INSERT, UPDATE, DELETE ) DQL – язык запросов ( SELECT ) DCL – язык управления данными ( GRANT, REVOKE ) Команды администрирования данных Команды управления транзакциями ( COMMIT, ROLLBACK, SAVEPOINT, SET TRANSACTION ) 4

3. Типы команд SQL Фазы выполнения SQL-оператора 5 SELECT A, B, C FROM X, Y WHERE A

4. Типы данных SQL Типизированные данные – данные одного из предопределённых SQL-языком типов NULL – неопределенное значение в поле Арифметические операции operation (+, – и т. д.): A operation NULL= NULL NULL operation A = NULL NULL operation NULL = NULL Операций сравнения comparison (=,, >, < и т. д.): A comparison NULL = unknown NULL comparison A = unknown NULL comparison NULL = unknown 6

4. Типы данных SQL Категории типов данных: Точные числовые типы: –INTEGER –SMALLINT876 –NUMERIC(p, s)125.4 –DECIMAL(p, s)26.36 Приближенные числовые типы: –REAL123 –DOUBLE PRECISION23.12 –FLOAT(p)123.12E1 7

4. Типы данных SQL Категории типов данных: Типы символьных строк –CHARACTER(x) [CHAR] –CHARACTER VARYING(x) [VARCHAR] Операции: o Конкатенации (||) o Выделения подстроки ( SUBSTRING ) o Регистр строки ( UPPER / LOWER ) o определения длины ( CHARACTER_LENGTH ) o определения позиции ( POSITION ) –CHARACTER LARGE OBJECT(z) [CLOB] 8

4. Типы данных SQL Категории типов данных: Типы даты и времени –DATE yyyy-mm-dd Пример: = 8 апреля 1949 г –TIME hh:mm-ss:f...f 16:33-20:333 = 16 ч 33 мин 20 сек и 0,333 сек –TIMESTAMP yyyy-mm-dd hh:mm-ss:f...f :33-20:333 = 16 ч 33 мин 20 сек и 0,333 сек 8 апреля 1949 г Типы временных интервалов ( TIME WITH TIME ZONE ) 9

4. Типы данных SQL Категории типов данных: Булевский тип (BOOLEAN) 10

4. Типы данных SQL Категории типов данных: Тип массив type ARRAY [m] Integer ARRAY [10] Типы битовых строк (bit strings) Типы коллекций (collection types) Анонимные строчные типы (anonymous row types) Типы, определяемые пользователем (user-defined types) Ссылочные типы (reference types) 11

4. Типы данных SQL Домен – объект схемы БД: Именованный Долговременно хранимый Создание домена: CREATE DOMAIN domain_name [AS] data_type [ default_definition ] [ domain_constraint_definition_list ] CREATE DOMAIN EMP_NO AS INTEGER CHECK (VALUE BETWEEN 1 AND 10000); CREATE DOMAIN SALARY AS NUMERIC (10, 2) DEFAULT CHECK (VALUE BETWEEN AND ) CONSTRAINT SAL_NOT_NULL CHECK (VALUE IS NOT NULL); 12

4. Типы данных SQL Изменить характеристики домена: 1. ALTER DOMAIN SALARY SET DEFAULT ; 2. ALTER DOMAIN SALARY DROP DEFAULT; 3. ALTER DOMAIN SALARY ADD CHECK (VALUE ); 4. ALTER DOMAIN SALARY DROP CONSTRAINT SAL_NOT_NULL; Отменить ранее созданное определение домена: DROP DOMAIN domain_name {RESTRICT | CASCADES} Явные преобразования типов или доменов: CAST({scalar-expression|NULL} AS {data_type|domain_name}) 13

5. Применение языка SQL Подключение к СУБД: CONNECT TO MyDB1 USER User1/Password1 Создание таблицы в БД: CREATE [ [ { GLOBAL | LOCAL } ] TEMPORARY] TABLE имя_таблицы ( { column | [table_constraint] }.,.. [ ON COMMIT { DELETE | PRESERVE} ROWS ] ); column определяется как: имя_поля {domain | datatype [size]} [column_constraint:] [ DEFAULT default_value ] [ COLLATE collate_value ] 14

5. Применение языка SQL Ограничения для столбца: NOT NULL UNIQUE PRIMARY KEY CHECK REFERENCES table Ограничения для таблицы: CHECK (condition) FOREIGN KEY (fields_list) 15

4. Типы данных SQL Изменение структуры таблицы: ALTER TABLE TableName1 ADD | ALTER [COLUMN] FieldName1 FieldType [(nFieldWidth [, nPrecision])] [NULL | NOT NULL] [CHECK lExpression1 [ERROR cMessageText1]] [DEFAULT eExpression1] [PRIMARY KEY | UNIQUE] [REFERENCES TableName2 [TAG TagName1]] Пример: 1. ALTER TABLE table_name2. ALTER TABLE table_name ADD column_name datatype DROP COLUMN column_name 3. ALTER TABLE table_name ALTER COLUMN column_name datatype 16

4. Типы данных SQL Удаление таблицы: DROP TABLE [IF EXISTS] tbl_name [, tbl_name,...] [RESTRICT | CASCADE] Пример: DROP TABLE Users 17

5. Применение языка SQL SELECT – позволяет формировать запрос к БД: SELECT [DISTINCT] {{function_agregate | expr [AS new_field_name]}.,: | specification.* | * [INTO list_variable] FROM {{ имя_таблицы [AS] [table_alias] [(field.,:)]} | {subquery [AS] subquery_alas [(field.,:)]} | union_table | constructor_of_table_value | {TABLE имя_таблицы [AS] alias [(field.,:)]} }.,: [WHERE condition] [GROUP BY {{ имя_таблицы | alias }.field}.,: {COLLATE name}] [HAVING condition] [{ UNION | INTERSECT | EXCEPT } [ALL] [CORRESPONDING [BY (field.,:)]] SELECT_operator | {TABLE имя_таблицы}|constructor_of_table_value [ORDER BY] {{field_result [ASC|DESC]}.,:} |{{ integer [ASC|DESC]}.,:} ; 18

4. Типы данных SQL 19

Спасибо за внимание 20