Вставка INSERT INTO table (column, column,...) VALUES (expr, expr...) LOAD DATA INFILE "C:\\tmp\\file.txt" INTO TABLE table.

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



Advertisements
Похожие презентации
Выражения унарные (унарный минус) арифметические (+, -, *, /) сравнения (, =, =, , LIKE, BETWEEN...) конкатенации (||) логические (NOT, AND, OR)
Advertisements

СУБД 5. SQL для выборки данных. 2 SELECT Обработка элементов оператора SELECT выполняется в следующей последовательности: FROM – определяются имена используемых.
СУБД 7. Использование подзапросов в языке запросов SQL.
СУБД Microsoft Access 2003 Элементы языка SQL. Язык SQL SQL (Structured Query Language) – структурированный язык запросов Язык SQL применяется во многих.
1 БАЗЫ ДАННЫХ Использование SQL для построения запросов. ЗАНЯТИЕ 6 ПУГАЧЁВ Ю.В. Учитель информатики Харьковская общеобразовательная школа І-ІІІ ступеней.
БАЗЫ ДАННЫХ ЛЕКЦИЯ 12. тема: ОСНОВЫ ЯЗЫКА SQL Общие сведения SQL структурированный язык запросов (Structured Query Language)
Базы данных Язык запросов SQL. Команда SELECT (продолжение)
Базы данных Язык запросов SQL. Команда SELECT. Команда SELECT – выборка данных Общий синтаксис: SELECT [{ ALL | DISTINCT }] { список_вывода | * } FROM.
Объединение таблиц Подзапросы. Оператор SELECT дает возможность выборки информации сразу из нескольких таблиц, которые перечислены в списке FROM. Такая.
Язык SQL Вложенные запросы и внешние объединения.
Лекция 16 Лекция 16 Основы SQL. Описание отношений, доменов, ограничений целостности, представлений данных. Реализация операций реляционной алгебры в SQL.
1 Лекция 6 Команды категории извлечения данных языка структурированных запросов SQL План лекции Выборка определенных столбцов таблицы Устранение избыточных.
СУБД Access Запросы Автор: Тутыгин В.С.. Назначение запросов Запросы обеспечивают простой доступ к определенному подмножеству записей одной или нескольких.
1 Основы SQL: MySQL Будем использовать MySQL СУБД с открытым кодом Бесплатная версия (Community Edition) – на В Linux-дистрибутивах.
Язык SQL Последовательности Представления Индексы.
Основы SQL Запросы к базе данных. Что такое база данных SQL? SQL (Structured Query Language - «Структурированный язык запросов») - универсальный компьютерный.
ЯЗЫК SQL Как и большинство современных реляционных языков, SQL основан на исчислении кортежей. В результате, каждый запрос, сформулированный с помощью.
СУБД MySQL - клиент-серверная СУБД Числовые(целые,действительные) Существует несколько разных типов целых чисел, различающихся количеством байтов данных,
РЕЛЯЦИОННАЯ АЛГЕБРА. Элементы РМД и формы их представления Сущность – это объект любой природы. Данные о сущности хранятся в отношении (таблице). Атрибуты.
Язык SQL Операторы манипулирования данными. Операции манипулирования данными DELETE операция удаления записей INSERT операция добавления или ввода новых.
Транксрипт:

Вставка INSERT INTO table (column, column,...) VALUES (expr, expr...) LOAD DATA INFILE "C:\\tmp\\file.txt" INTO TABLE table

Удаление DELETE FROM table WHERE (condition)

Модификация UPDATE table SET col_expr(s) [WHERE condition]

SELECT "I do not seek, I find" – Pablo Picasso

Формат оператора SELECT SELECT [ALL | DISTINCT ] {*|[имя_столбца [AS новое_имя]]} [,...n] [INTO new_table ] FROM имя_таблицы [[AS] псевдоним] [,...n] [WHERE ] [GROUP BY имя_столбца [,...n]] [HAVING ] [ORDER BY имя_столбца [,...n]]

Обработка элементов оператора SELECT : FROM – определяются имена используемых таблиц; WHERE – выполняется фильтрация строк объекта в соответствии с заданными условиями; GROUP BY – образуются группы строк, имеющих одно и то же значение в указанном столбце; HAVING – фильтруются группы строк объекта в соответствии с указанным условием; SELECT – устанавливается, какие столбцы должны присутствовать в выходных данных; ORDER BY – определяется упорядоченность результатов выполнения операторов.

Пример простого запроса SELECT name, birth FROM person WHERE name=Анна SELECT * FROM person WHERE name=Анна

Список атрибутов SELECT * table.* column1, column3 table.column1, table.column3 FROM table

Переименование атрибутов SELECT Фирма, Фамилия+" "+ Left(Имя,1)+"."+Left(Отчество,1)+"."AS ФИО FROM Клиент

Вычисляемые атрибуты SELECT name AS first_name, getdate()-birth AS age, zarplata*0.13 AS nalog, works AS status INTO new_table FROM person

Список таблиц SELECT person.name, people.name FROM person, person AS people

WHERE Выражение вычисляется слева направо. Первыми вычисляются подвыражения в скобках. Операторы NOT выполняются до выполнения операторов AND и OR. Операторы AND выполняются до выполнения операторов OR.

WHERE Сравнение: сравниваются результаты вычисления одного выражения с результатами вычисления другого. Диапазон: проверяется, попадает ли результат вычисления выражения в заданный диапазон значений. Принадлежность множеству: проверяется, принадлежит ли результат вычислений выражения заданному множеству значений. Соответствие шаблону: проверяется, отвечает ли некоторое строковое значение заданному шаблону. Значение NULL: проверяется, содержит ли данный столбец определитель NULL (неизвестное значение).

Селекция сравнение SELECT Название, Цена FROM Товар WHERE Цена>=100 AND Цена

Селекция принадлежность множеству SELECT Фамилия, Город FROM Клиент WHERE Город IN ("Москва", "Самара")

Селекция поиск по образцу Символ % – вместо этого символа может быть подставлено любое количество произвольных символов. Символ _ заменяет один символ строки. [] – вместо символа строки будет подставлен один из возможных символов, указанный в этих ограничителях. [^] – вместо соответствующего символа строки будут подставлены все символы, кроме указанных в ограничителях.

Селекция поиск по образцу SELECT Клиент.Фамилия, Клиент.Телефон FROM Клиент WHERE Клиент.Телефон Like "_4%" SELECT Клиент.Фамилия, Клиент.Телефон FROM Клиент WHERE Клиент.Телефон Like "_[24]%«

Селекция пустое значение SELECT Фамилия, Телефон FROM Клиент WHERE Телефон Is Null SELECT Клиент.Фамилия, Клиент.Телефон FROM Клиент WHERE Клиент.Телефон Is Not Null

Реляционные операции в SQL: проекция/селекция SELECT L FROM R WHERE C В реляционной алгебре: L ( c (R))

Агрегатные функции COUNT (Выражение) - определяет количество записей в выходном наборе; MIN/MAX (Выражение) – наименьшее/ наибольшее из множества значений; AVG (Выражение) - среднее значение. SUM (Выражение) - сумма множества значений.

Агрегирование aggregate_function ([ALL | DISTINCT] выражение) Можно использовать только после SELECT и HAVING В качестве выражения могут быть: любая константа, функция комбинация из названий столбцов, констант и функций, соединенных арифметическими или битовыми операциями.

Агрегирование без группировки SELECT COUNT(*), SUM(salary), AVG(salary) FROM emp COUNT(*) – подсчет всех строк, включая NULL Остальные функции перед вычислением отбрасывают нулевые значения. Если DISTINCT отбрасываются дубликаты

Count() nameagephone Иванов23NULL Петров23NULL Сидоров Иванов24NULL SELECT COUNT(*), COUNT(name), COUNT (DISTINCT age), COUNT(phone) FROM T1 WHERE nameСидоров 4, 3, 2, 0 T1

Агрегирование с группировкой SELECT name, AVG(age) AS avg_age FROM T1 WHERE nameСидоров GROUP BY name nameavg_age Иванов23,5 Петров23

Агрегирование с группировкой SELECT name, AVG(age) AS avg_age FROM T1 WHERE nameСидоров GROUP BY name HAVING COUNT(*)>1 nameavg_age Иванов23,5

Агрегирование с группировкой T (курс, группа, фамилия, ср_балл) SELECT курс, группа, AVG(ср_балл) FROM T GROUP BY курс, группа HAVING MIN(ср_балл) >= 4

Вложенные запросы Если список в предложении SELECT содержит итоговые функции, а в тексте запроса отсутствует фраза GROUP BY, обеспечивающая объединение данных в группы, то ни один из элементов списка предложения SELECT не может включать каких-либо ссылок на поля, за исключением ситуации, когда поля выступают в качестве аргументов итоговых функций.

Вложенные запросы SELECT фамилия, Max(ср_балл) FROM T

Вложенные запросы SELECT фамилия, ср_балл FROM T WHERE ср_балл =(SELECT Max(ср_балл) FROM T)

Вложенные запросы SELECT курс, группа, AVG(ср_балл) FROM T GROUP BY курс, группа HAVING AVG(ср_балл)>(SELECT AVG(ср_балл) FROM T)

Сортировка SELECT * FROM emp ORDER BY name [ASC | DESC]

Реляционные операции в SQL:произведение SELECT * FROM person, dept

Операции соединения в SQL SELECT * FROM emp, dept WHERE emp.dno = dept.dno SELECT * FROM Emp JOIN dept ON emp.dno=dept.dno

Внешнее соединение SELECT * FROM имя_таблицы_1 {INNER | LEFT | RIGHT} JOIN имя_таблицы_2 ON условие_соединения

Внешнее соединение SELECT * FROM имя_таблицы_1 {INNER | LEFT | RIGHT|FULL} JOIN имя_таблицы_2 ON условие_соединения Различные типы операций соединения: тета-соединение R F S; соединение по эквивалентности R =S; естественное соединение R S; внешнее соединение R S; R S; полусоединение RFS.

Внешнее соединение JOIN: возвращает строки, когда есть хотя бы одно совпадение в обоих таблицах LEFT JOIN: возвращает строки из левой таблицы, даже если нет ни одного совпадения в правой RIGHT JOIN: возвращает строки из правой таблицы, даже если нет ни одного совпадения в левой FULL JOIN: возвращает строки из обеих таблиц

ГруппаСтудентИн_язык 101СидоровАнглийский 101ПетровНемецкий 102ИвановАнглийский 103НиколаевИспанский АудиторияИн_язык 5Английский 33Немецкий 24Французский S R

INNER JOIN SELECT Группа, студент, ин_язык, аудитория FROM S JOIN R ON S. Ин_язык = R. Ин_язык ГруппаСтудентИн_языкАудитория 101СидоровАнглийский5 101ПетровНемецкий33 102ИвановАнглийский5

LEFT JOIN SELECT Группа, студент, ин_язык, аудитория FROM S LEFT JOIN R ON S. Ин_язык = R. Ин_язык ГруппаСтудентИн_языкАудитория 101СидоровАнглийский5 101ПетровНемецкий33 102ИвановАнглийский5 103НиколаевИспанскийNULL

RIGHT JOIN SELECT Группа, студент, ин_язык, аудитория FROM S RIGHT JOIN R ON S. Ин_язык = R. Ин_язык ГруппаСтудентИн_языкАудитория 101СидоровАнглийский5 101ПетровНемецкий33 102ИвановАнглийский5 NULL Французский24

FULL JOIN SELECT Группа, студент, ин_язык, аудитория FROM S FULL JOIN R ON S. Ин_язык = R. Ин_язык ГруппаСтудентИн_языкАудитория 101СидоровАнглийский5 101ПетровНемецкий33 102ИвановАнглийский5 103НиколаевИспанскийNULL Французский24

Вложенные подзапросы в предикатах IN, NOT IN, EXISTS, NOT EXISTS, = ANY, = ALL Полусоединение: SELECT * FROM R WHERE ин_язык IN ( SELECT ин_язык FROM S) SELECT * FROM R WHERE EXISTS( SELECT ин_язык FROM S WHERE ин_язык =R. ин_язык)

EXISTS T (курс, группа, фамилия, ср_балл) SELECT курс, группа FROM T WHERE NOT EXISTS (SELECT курс, группа FROM T AS T1 WHERE T1.курс= T.курс AND T1.группа= T.группа AND ср_балл = 5 ); Результат – группы, в которых нет ни одного отличника

Теоретико-множественные операции UNION INTERSECT MINUS/EXCEPT При этом отношения должны быть совместимы, т.е. иметь одинаковое количество полей с совпадающими типами данных.

Теоретико-множественные операции SELECT * FROM emp WHERE birthdate< 1990 UNION SELECT * from emp WHERE dno=112

Встроенные функции Арифметические, тригонометрические Функции над строками Явное преобразование типов данных Календарная арифметика Обработка неопределенных значений Получение системной информации (дата, время, идентификатор строки таблицы,…)

Операторы обновления данных Операции DML: –INSERT –UPDATE –DELETE Операции DDL не являются операциями обновления: –CREATE –DROP –ALTER

Добавление данных По одной строке: INSERT INTO t_person(список колонок) VALUES(список скалярных значений) Множественное добавление: INSERT into t_person(список колонок) SELECT … FROM … WHERE …

Создание представлений CREATE VIEW view1 AS SELECT КодКлиента, Фамилия, ГородКлиента FROM Клиент WHERE ГородКлиента='Москва SELECT * FROM view1 INSERT INTO view1 VALUES (12,'Петров', 'Самара')

Деление отношений S (name, course) C (course) CREATE VIEW S1 AS SELECT name FROM S CREATE VIEW S2 AS SELECT name, course FROM S, C

Деление отношений S (name, course) C (course) CREATE VIEW S3 AS SELECT * FROM S2 EXEPT SELECT * FROM S CREATE VIEW S4 AS SELECT name FROM S EXEPT SELECT name FROM S3