Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Объединение таблиц . INNER JOIN; LEFT JOIN; RIGHT JOIN
INNER JOIN Возвращаются все записи из таблиц table_01 и table_02, связанные посредством primary/foreign ключей, и соответствующие условию WHERE для таблицы table_01. Если в какой-либо из таблиц отсутствует запись, соответствующая соседней, то в выдачу такая пара включена не будет. Иными словами, выдадутся только те записи, которые есть и в первой, и во второй таблице. То есть выборка идет фактически по связи (ключу), выдадутся только те записи, которые связаны между собой. «Одинокие» записи, для которых нет пары в связи, выданы не будут. SELECT * FROM table_01 INNER JOIN table_02 ON table_01.primary_key = table_02.foreign_key WHERE table_01.column_01 = ‘value’ LEFT JOIN Возвращаются все данные из «левой» таблицы, даже если не найдено соответствий в «правой» таблице («левая» таблица в SQL-запросе стоит левее знака равно, «правая» — правее, то есть обычная логика правой и левой руки). Иными словами, если мы присоединяем к «левой» таблице «правую», то выберутся все записи в соответствии с условиями WHERE для левой таблицы. Если в «правой» таблице не было соответствий по ключам, они будут возвращены как NULL. Таким образом, здесь главной выступает «левая» таблица, и относительно нее идет выдача. В условии ON «левая» таблица прописывается первой по порядку (table_01), а «правая» – второй (table_02): SELECT * FROM table_01 LEFT JOIN table_02 ON table_01.primary_key = table_02.foreign_key WHERE table_01.column_01 = ‘value’ RIGHT JOIN Возвращаются все данные из «правой» таблицы, даже если не найдено соответствий в «левой» таблице. То есть примерно также, как и в LEFT JOIN, только NULL вернется для полей «левой» таблицы. Грубо говоря, эта выборка ставит во главу угла правую «таблицу», относительно нее идет выдача. Обратите внимание на WHERE в следующем примере, условие выборки затрагивает «правую» таблицу: SELECT * FROM table_01 RIGHT JOIN table_02 ON table_01.primary_key = table_02.foreign_key WHERE table_02.column_01 = ‘value’ 22. SQL INSERT. Структура запроса, пример запроса. Оператор INSERT вставляет новые записи в таблицу. При этом значения столбцов могут представлять собой литеральные константы, либо являться результатом выполнения подзапроса. В первом случае для вставки каждой строки используется отдельный оператор INSERT; во втором случае будет вставлено столько строк, сколько возвращается подзапросом. Синтаксис оператора следующий: INSERT INTO Пример 1 INSERT INTO dept VALUES (50, «ПРОДУКЦИЯ», «САН-ФРАНЦИСКО»); INSERT INTO Customers (city, cname, cnum) VALUES (‘London’, ‘Hoffman’, 2001); INSERT INTO Пример 2 INSERT INTO bonus SELECT ename, job, sal, comm FROM emp WHERE comm > 0.25 * sal; Утверждение INSERT с фразой VALUES добавляет одиночную строку к таблице. Эта строка содержит значения, определенные фразой VALUES. |
Последнее изменение этой страницы: 2019-06-09; Просмотров: 192; Нарушение авторского права страницы