Учебник по языку sql (ddl, dml) на примере диалекта ms sql server. часть четвертая
Содержание:
- RIGHT OUTER JOIN (правое внешнее соединение)
- INNER JOIN
- СинтаксисSyntax
- Самостоятельная работа для закрепления материала
- SQL INNER JOIN (простое соединение)
- ПримечанияRemarks
- SQL Учебник
- FULL OUTER JOIN
- Демо база данных
- Объединение с подзапросом
- INNER JOIN
- Смотрите также
- SQL Учебник
- Обратная связь
- Как установить Вайбер (Viber) на телефон
- Understanding Nested Loops joins
- Как проверить (узнать) Тиц и Пр сайта
- SQL OUTER JOIN – left outer join
- Demo Database
- SQL References
RIGHT OUTER JOIN (правое внешнее соединение)
Запрос с оператором RIGHT OUTER JOIN предназначен для соединения таблиц и вывода результирующей таблицы,
в которой данные полностью пересекаются по условию, указанному после ON, и дополняются записями
из второй по порядку (правой) таблицы, даже если они не соответствуют условию. У записей правой таблицы,
которые не соответствуют условию, значение столбца из левой таблицы будет NULL (неопределённым).
Пример 5. База данных и таблицы —
те же, что и в предыдущих примерах.
Для получения результирующей таблицы, в которой данные из двух таблиц полностью
пересекаются по условию и дополняются всеми данными из таблицы Categories, которые не соответствуют условию,
пишем следующий запрос:
SELECT Parts.Part, Categories.Catnumb AS Cat, Categories.Price
FROM Parts RIGHT OUTER JOIN Categories
ON Parts.Cat = Categories.Catnumb
Результатом выполнения запроса будет следующая таблица:
Part | Cat | Price |
Квартиры | 505 | 210,00 |
Автомашины | 205 | 160,00 |
Доски | 10 | 105,00 |
Шкафы | 30 | 77,00 |
NULL | 45 | 65,00 |
В результирующей таблице, в отличие от таблицы из примера 1, есть запись с категорией
45 и ценой 65,00, но значение
столбца Части (Part) у неё — NULL, так как эта запись имеет идентификатор категории, на которую нет
ссылок в таблице Parts.
INNER JOIN
Внутреннее присоединение. Равносильно просто JOIN или CROSS JOIN.
SELECT p.id, p.name `Имя сотрудника`, ps.id `pos.id`, ps.name `Должность`
FROM `persons` p
INNER JOIN `positions` ps ON ps.id = p.post_id
1 |
SELECTp.id,p.name`Имясотрудника`,ps.id`pos.id`,ps.name`Должность` FROM`persons`p INNER JOIN`positions`ps ON ps.id=p.post_id |
Такое присоединение покажет нам данные из таблиц только если условие связывания соблюдается — т.е. для сотрудника указан существующий в словаре идентификатор должности.
Если поменять порядок соединения таблиц — получим тот же результат.
Условно представим себе эти таблицы, как пересекающиеся множества, где пересечение — это наличие связи между таблицами. Получим картинку:
Далее проследим как получить разные части (подмножества) данного множества.
СинтаксисSyntax
FROM таблица1 JOIN таблица2 ON таблица1.поле1 оператор_сравнения таблица2.поле2FROM table1 JOIN table2 ON table1.field1 compopr table2.field2
Операции LEFT JOIN и RIGHT JOIN состоят из следующих элементов:The LEFT JOIN and RIGHT JOIN operations have these parts:
ЧастьPart |
ОписаниеDescription |
---|---|
таблица1, таблица2table1, table2 |
Имена таблиц, содержащих объединяемые записи.The names of the tables from which records are combined. |
поле1, поле2field1, field2 |
Имена объединяемых полей.The names of the fields that are joined. Поля должны относиться к одному типу данных и содержать данные одного вида. Однако имена этих полей могут быть разными.The fields must be of the same data type and contain the same kind of data, but they do not need to have the same name. |
оператор_сравненияcompopr |
Любой оператор сравнения: «=,» «<,» «>,» «<=,» «>=,» или «<>.»Any relational comparison operator: «=,» «<,» «>,» «<=,» «>=,» or «<>.» |
Самостоятельная работа для закрепления материала
LCode | LDescr |
---|---|
1 | L-1 |
2 | L-2a |
2 | L-2b |
3 | L-3 |
5 | L-5 |
RCode | RDescr |
---|---|
2 | B-2a |
2 | B-2b |
3 | B-3 |
4 | B-4 |
LCode | LDescr | RCode | RDescr |
---|---|---|---|
2 | L-2a | 2 | B-2a |
2 | L-2a | 2 | B-2b |
2 | L-2b | 2 | B-2a |
2 | L-2b | 2 | B-2b |
3 | L-3 | 3 | B-3 |
LCode | LDescr | RCode | RDescr |
---|---|---|---|
1 | L-1 | NULL | NULL |
2 | L-2a | 2 | B-2a |
2 | L-2a | 2 | B-2b |
2 | L-2b | 2 | B-2a |
2 | L-2b | 2 | B-2b |
3 | L-3 | 3 | B-3 |
5 | L-5 | NULL | NULL |
LCode | LDescr | RCode | RDescr |
---|---|---|---|
2 | L-2a | 2 | B-2a |
2 | L-2b | 2 | B-2a |
2 | L-2a | 2 | B-2b |
2 | L-2b | 2 | B-2b |
3 | L-3 | 3 | B-3 |
NULL | NULL | 4 | B-4 |
LCode | LDescr | RCode | RDescr |
---|---|---|---|
1 | L-1 | NULL | NULL |
2 | L-2a | 2 | B-2a |
2 | L-2a | 2 | B-2b |
2 | L-2b | 2 | B-2a |
2 | L-2b | 2 | B-2b |
3 | L-3 | 3 | B-3 |
5 | L-5 | NULL | NULL |
NULL | NULL | 4 | B-4 |
LCode | LDescr | RCode | RDescr |
---|---|---|---|
1 | L-1 | 2 | B-2a |
2 | L-2a | 2 | B-2a |
2 | L-2b | 2 | B-2a |
3 | L-3 | 2 | B-2a |
5 | L-5 | 2 | B-2a |
1 | L-1 | 2 | B-2b |
2 | L-2a | 2 | B-2b |
2 | L-2b | 2 | B-2b |
3 | L-3 | 2 | B-2b |
5 | L-5 | 2 | B-2b |
1 | L-1 | 3 | B-3 |
2 | L-2a | 3 | B-3 |
2 | L-2b | 3 | B-3 |
3 | L-3 | 3 | B-3 |
5 | L-5 | 3 | B-3 |
1 | L-1 | 4 | B-4 |
2 | L-2a | 4 | B-4 |
2 | L-2b | 4 | B-4 |
3 | L-3 | 4 | B-4 |
5 | L-5 | 4 | B-4 |
SQL INNER JOIN (простое соединение)
Скорее всего, вы уже писали SQL запрос, который использует SQL INNER JOIN. Это наиболее распространенный тип соединения SQL. INNER JOIN возвращает все строки из нескольких таблиц, где выполняется условие соединения.
Синтаксис INNER JOIN в SQL:
SELECT columns FROM table1 INNER JOIN table2 ON table1.column = table2.column;
Рисунок.
На этом рисунке SQL INNER JOIN возвращает затененную область: SQL INNER JOIN будет возвращать записи, где пересекаются table1 и table2.
Пример
Давайте рассмотрим пример использования INNER JOIN в запросе.
В этом примере у нас есть таблица customer и следующими данными:
customer_id | first_name | last_name | favorite_website |
---|---|---|---|
4000 | Justin | Bieber | google.com |
5000 | Selena | Gomez | bing.com |
6000 | Mila | Kunis | yahoo.com |
7000 | Tom | Cruise | oracle.com |
8000 | Johnny | Depp | NULL |
9000 | Russell | Crowe | google.com |
И таблица orders со следующими данными:
order_id | customer_id | order_date |
---|---|---|
1 | 7000 | 2019/06/18 |
2 | 5000 | 2019/06/18 |
3 | 8000 | 2019/06/19 |
4 | 4000 | 2019/06/20 |
5 | NULL | 2019/07/01 |
Выполним следующий SQL оператор:
PgSQL
SELECT customers.customer_id,
orders.order_id,
orders.order_date
FROM customers
INNER JOIN orders
ON customers.customer_id = orders.customer_id
ORDER BY customers.customer_id;
1 2 3 4 5 6 7 |
SELECTcustomers.customer_id, orders.order_id, orders.order_date FROMcustomers INNER JOINorders ONcustomers.customer_id=orders.customer_id ORDERBYcustomers.customer_id; |
Будет выбрано 4 записи. Вот результаты, которые вы должны получить:
customer_id | order_id | order_date |
---|---|---|
4000 | 4 | 2019/06/20 |
5000 | 2 | 2019/06/18 |
7000 | 1 | 2019/06/18 |
8000 | 3 | 2019/06/19 |
В этом примере будут возвращены все строки из таблиц customers и orders, в которых совпадают значения поля customer_id в обоих таблицах.
Строки, где значение customer_id равен 6000 и 9000 в таблице customers, будут опущены, поскольку они не существуют в обеих таблицах. Строка, в которой значение order_id равно 5 из таблицы orders, будет опущена, поскольку customer_id со значением NULL не существует в таблице customers.
ПримечанияRemarks
Операция LEFT JOIN создает левое внешнее соединение.Use a LEFT JOIN operation to create a left outer join. С помощью левого внешнего соединения выбираются все записи первой (левой) таблицы, даже если они не соответствуют записям во второй (правой) таблице.Left outer joins include all of the records from the first (left) of two tables, even if there are no matching values for records in the second (right) table.
Операция RIGHT JOIN создает правое внешнее соединение.Use a RIGHT JOIN operation to create a right outer join. С помощью правого внешнего соединения выбираются все записи второй (правой) таблицы, даже если они не соответствуют записям в первой (левой) таблице.Right outer joins include all of the records from the second (right) of two tables, even if there are no matching values for records in the first (left) table.
Например, в случае с таблицами «Отделы» (левая) и «Сотрудники» (правая) можно воспользоваться операцией LEFT JOIN для выбора всех отделов (включая те, в которых нет сотрудников).For example, you could use LEFT JOIN with the Departments (left) and Employees (right) tables to select all departments, including those that have no employees assigned to them. Чтобы выбрать всех сотрудников (в том числе и не закрепленных за каким-либо отделом), используйте RIGHT JOIN.To select all employees, including those who are not assigned to a department, you would use RIGHT JOIN.
В следующем примере показано, как можно объединить таблицы Categories и Products по полю CategoryID.The following example shows how you could join the Categories and Products tables on the CategoryID field. Результат запроса представляет собой список категорий, включая те, которые не содержат товаров.The query produces a list of all categories, including those that contain no products:
В этом примере CategoryID является объединенным полем, но оно не включается в результаты запроса, поскольку не указано в инструкции SELECT.In this example, CategoryID is the joined field, but it is not included in the query results because it is not included in the SELECT statement. Чтобы включить объединенное поле в результаты запроса, укажите его имя в инструкции SELECT. В данном случае это Categories.CategoryID.To include the joined field, enter the field name in the SELECT statement — in this case, Categories.CategoryID.
Примечание
- Чтобы создать запрос, результатом которого являются только те записи, для которых совпадают данные в объединенных полях, воспользуйтесь операцией INNER JOIN.To create a query that includes only records in which the data in the joined fields is the same, use an INNER JOIN operation.
- Операции LEFT JOIN и RIGHT JOIN могут быть вложены в операцию INNER JOIN, но операция INNER JOIN не может быть вложена в операцию LEFT JOIN или RIGHT JOIN.A LEFT JOIN or a RIGHT JOIN can be nested inside an INNER JOIN, but an INNER JOIN cannot be nested inside a LEFT JOIN or a RIGHT JOIN. Подробные сведения о вложении объединений можно найти в статье, посвященной операции INNER JOIN.See the discussion of nesting in the INNER JOIN topic to see how to nest joins within other joins.
- Вы можете связать несколько предложений ON.You can link multiple ON clauses. Сведения о связывании предложений см. в статье, посвященной операции INNER JOIN.See the discussion of clause linking in the INNER JOIN topic to see how this is done.
- При попытке связи полей, содержащих данные типа Memo или объекты OLE, возникнет ошибка.If you try to join fields containing Memo or OLE Object data, an error occurs.
SQL Учебник
SQL ГлавнаяSQL ВведениеSQL СинтаксисSQL SELECTSQL SELECT DISTINCTSQL WHERESQL AND, OR, NOTSQL ORDER BYSQL INSERT INTOSQL Значение NullSQL Инструкция UPDATESQL Инструкция DELETESQL SELECT TOPSQL MIN() и MAX()SQL COUNT(), AVG() и …SQL Оператор LIKESQL ПодстановочныйSQL Оператор INSQL Оператор BETWEENSQL ПсевдонимыSQL JOINSQL JOIN ВнутриSQL JOIN СлеваSQL JOIN СправаSQL JOIN ПолноеSQL JOIN СамSQL Оператор UNIONSQL GROUP BYSQL HAVINGSQL Оператор ExistsSQL Операторы Any, AllSQL SELECT INTOSQL INSERT INTO SELECTSQL Инструкция CASESQL Функции NULLSQL ХранимаяSQL Комментарии
FULL OUTER JOIN
The command returns all rows
when there is a match in either left table or right table.
The following SQL statement selects all customers, and all orders:
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
FULL OUTER JOIN Orders
ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;
Note: The keyword returns all the rows from
the left table (Customers), and all the rows from the right table (Orders). If
there are rows in «Customers» that do not have matches in «Orders», or if there
are rows in «Orders» that do not have matches in «Customers», those rows will be
listed as well.
Демо база данных
В этом уроке мы будем использовать хорошо известный пример базы данных Northwind.
Ниже приведен выбор из таблицы «Orders»:
OrderID | CustomerID | EmployeeID | OrderDate | ShipperID |
---|---|---|---|---|
10308 | 2 | 7 | 1996-09-18 | 3 |
10309 | 37 | 3 | 1996-09-19 | 1 |
10310 | 77 | 8 | 1996-09-20 | 2 |
И выбор из таблицы «Customers»:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
Объединение с подзапросом
При использовании объединения часто бывает необходимо, чтобы результирующая выборка содержала данные только по одной конкретной строке
Пример БД Институт: Выбрать данные по учителям и проведенным ими урокам, только для уроков по курсу «php»
Решение:
SELECT t1.*, t2.* FROM teachers t1 INNER JOIN (SELECT * FROM lessons WHERE course = "php" LIMIT 1) t2 ON t1.id = t2.tid |
Результат:
Разберем еще один пример:
Пример: . Выбрать все данные по компьютерам из таблиц и .
Решение:
1 2 3 4 5 6 7 |
SELECT t1.производитель, t1.Тип, t2 . * FROM pc t2 INNER JOIN ( SELECT * FROM product WHERE Тип = "Компьютер" ) t1 ON t2.Номер = t1.Номер |
Так как в таблице находятся данные не только по компьютерам, то мы использовали подзапрос, при этом сохранив внутреннее соединение таблиц.
Результат:
Задание 3_6: . Отобразить фамилии и оценки студентов, у которых по дисциплине оценка «отлично».
INNER JOIN
The command returns rows that have matching values in both tables.
The following SQL selects all orders with customer information:
Example
SELECT Orders.OrderID, Customers.CustomerNameFROM OrdersINNER JOIN
Customers ON Orders.CustomerID = Customers.CustomerID;
Note: The INNER JOIN keyword selects all rows from both
tables as long as there is a match between the columns. If there are records in the
«Orders» table that do not have matches in «Customers», these orders will not
be shown!
The following SQL statement selects all orders with customer and shipper
information:
Example
SELECT Orders.OrderID, Customers.CustomerName, Shippers.ShipperNameFROM
((OrdersINNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID)
INNER JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID);
Смотрите также
SQL Учебник
SQL ГлавнаяSQL ВведениеSQL СинтаксисSQL SELECTSQL SELECT DISTINCTSQL WHERESQL AND, OR, NOTSQL ORDER BYSQL INSERT INTOSQL Значение NullSQL Инструкция UPDATESQL Инструкция DELETESQL SELECT TOPSQL MIN() и MAX()SQL COUNT(), AVG() и …SQL Оператор LIKESQL ПодстановочныйSQL Оператор INSQL Оператор BETWEENSQL ПсевдонимыSQL JOINSQL JOIN ВнутриSQL JOIN СлеваSQL JOIN СправаSQL JOIN ПолноеSQL JOIN СамSQL Оператор UNIONSQL GROUP BYSQL HAVINGSQL Оператор ExistsSQL Операторы Any, AllSQL SELECT INTOSQL INSERT INTO SELECTSQL Инструкция CASESQL Функции NULLSQL ХранимаяSQL Комментарии
Обратная связь
Как установить Вайбер (Viber) на телефон
По завершению скачивания установочного файла на смартфон, переходим к процессу установки приложения, который не займет больше двух минут.
Ожидаем окончание загрузки приложения.
Ожидаем пока завершится установка мессенджера.
Нажимаем кнопку «Открыть».
Кликаем «Продолжить», принимая лицензионное соглашение.
Осуществляем ввод номера телефона и кликаем «Продолжить».
Внимательно перепроверяем введенные данные и жмем кнопку «Да».
Вот и все. Мессенджер Viber установлен, настроен и готов дарить вам отличное настроение и удовольствие от бесплатного общения с родными и близкими.
Understanding Nested Loops joins
If one join input is small (fewer than 10 rows) and the other join input is fairly large and indexed on its join columns, an index nested loops join is the fastest join operation because they require the least I/O and the fewest comparisons.
The nested loops join, also called nested iteration, uses one join input as the outer input table (shown as the top input in the graphical execution plan) and one as the inner (bottom) input table. The outer loop consumes the outer input table row by row. The inner loop, executed for each outer row, searches for matching rows in the inner input table.
In the simplest case, the search scans an entire table or index; this is called a naive nested loops join. If the search exploits an index, it is called an index nested loops join. If the index is built as part of the query plan (and destroyed upon completion of the query), it is called a temporary index nested loops join. All these variants are considered by the Query Optimizer.
A nested loops join is particularly effective if the outer input is small and the inner input is preindexed and large. In many small transactions, such as those affecting only a small set of rows, index nested loops joins are superior to both merge joins and hash joins. In large queries, however, nested loops joins are often not the optimal choice.
When the OPTIMIZED attribute of a Nested Loops join operator is set to True, it means that an Optimized Nested Loops (or Batch Sort) is used to minimize I/O when the inner side table is large, regardless of it being parallelized or not. The presence of this optimization in a given plan may not be very obvious when analyzing an execution plan, given the sort itself is a hidden operation. But by looking in the plan XML for the attribute OPTIMIZED, this indicates the Nested Loops join may try to reorder the input rows to improve I/O performance.
Как проверить (узнать) Тиц и Пр сайта
Вопрос, как определить Тиц и Пр сайта, возникает практически у всех начинающих вебмастеров сразу после того, как они узнают, что это такое и для чего они нужны. Как правило, поначалу вас будет ждать разочарование в виде нулевого значения, или, как пишет само зеркало рунета: «Индекс цитирования ресурса меньше 10».
Вообще самый простой и надежный способ проверить Тиц — это спросить у самого Яндекса. Для этого вам нужно будет добавить в адресную строку своего браузера следующий URL:
http://search.yaca.yandex.ru/yca/cy/ch/ktonanovenkogo.ru/
Только не забудьте заменить доменное имя «ktonanovenkogo.ru» на свое. Апдейт (читайте про все типы апдейтов Яндекса) индекса цитирования происходит примерно один раз в месяц или два. Как такового точного графика не существует. Как правило, ап приходит неожиданно, когда ты его совсем не ждешь (прямо-таки, как зима для наших коммунальных служб).
Вот список онлайн сервисов, где вы сможете узнать и проверить Пр и Тиц:
Я брожу по интернету через браузер Opera и использую для него просто замечательной SEO плагин — SEObar. Он позволяет видеть показатели открываемых в браузере ресурсов, определять открыты ли обратные ссылки на странице и многое другое из области оценки успешности продвижения и раскрутки сайта.
Так же для любого браузера можно установить, так называемый, Яндекс.Бар (тут про него читайте, хотя сейчас он называется Элементы Яндекса ), который среди прочих возможностей может проверять Тиц для открытой в данный момент в браузере странницы.
Определить пузомерки можно так же и с помощью различных Seo программ, из которых я бы выделил отдельно Site-Auditor (здесь читайте про Сайт Аудитор и проверку позиций в нем).
Счетчики, информеры и кнопки с отображением Тица и ПРа вашего сайта
Ну и, конечно же, для того, чтобы посетители могли узнать накопленные вами пузомерки, можно установить на своем сайте специальный счетчик или информер. Самый очевидный способ — это «кнопка Яндекса», которая выглядит как денежная купюра с номиналом равным значению индекса цитирования вашего ресурса. Например, для моего блога такая кнопка имеет вид:
<a href="http://yandex.ru/cy?base=0&host=https://ktonanovenkogo.ru/"><img src="http://www.yandex.ru/cycounter?https://ktonanovenkogo.ru/" width="88" height="31" border="0" /></a>
Вы можете вставить этот код кнопки (счетчика) в нужное место шаблона вашего web проекта. А заключив его в теги DIV и прописав в нем атрибут CLASS с названием параметра, вы можете затем его позиционировать с помощью свойств CSS относительно соседних элементов шаблона.
Например:
<div class="tic"><a href="http://yandex.ru/cy?base=0&host=https://ktonanovenkogo.ru/"><img src="http://www.yandex.ru/cycounter?https://ktonanovenkogo.ru/" width="88" height="31" border="0" /></a></div>
а в файле CSS для вашего шаблона оформления можно вставить свойства для данного класса:
.tic { float:right; margin: 5px 40px 5px 0px; }
В результате получится примерно такой код счетчика:
Поясню CSS свойства для класса :
- float:right; (здесь читайте про Float и clear в CSS) — заставляет данный блок с кнопкой прижаться к соседнему элементу дизайна, расположенному справа.
- margin: 5px 40px 5px 0px; (читайте про padding, margin и border ) — задает отступ в пикселях данного блока с кнопкой относительно соседних блоков. Отступы перечисляются в таком порядке: сверху, справа, снизу, слева
а затем скопировать получившийся код и вставить его в шаблон своего ресурса:
SQL OUTER JOIN – left outer join
SQL left outer join is also known as SQL left join. Suppose, we want to join two tables: A and B. SQL left outer join returns all rows in the left table (A) and all the matching rows found in the right table (B). It means the result of the SQL left join always contains the rows in the left table.
The following illustrate SQL left outer syntax of joining 2 tables: table_A and table_B:
1 2 3 4 |
SELECTcolumn1,column2… FROMtable_A LEFTJOINtable_BONjoin_condition WHERErow_condition |
SQL OUTER JOIN – left outer join example
The following query selects all customers and their orders:
1 2 3 4 5 6 |
SELECTc.customerid, c.companyName, orderid FROMcustomersc LEFTJOINordersoONo.customerid=c.customerid ORDERBYorderid |
All rows in the customers table are listed. In case, there is no matching row in the orders table found for the row in the customers table, the orderid column in the orders table is populated with NULL values.
We can use Venn diagram to visualize how SQL LEFT OUTER JOIN works.
Demo Database
In this tutorial we will use the well-known Northwind sample database.
Below is a selection from the «Orders» table:
OrderID | CustomerID | EmployeeID | OrderDate | ShipperID |
---|---|---|---|---|
10308 | 2 | 7 | 1996-09-18 | 3 |
10309 | 37 | 3 | 1996-09-19 | 1 |
10310 | 77 | 8 | 1996-09-20 | 2 |
And a selection from the «Customers» table:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
SQL References
SQL Keywords
ADD
ADD CONSTRAINT
ALTER
ALTER COLUMN
ALTER TABLE
ALL
AND
ANY
AS
ASC
BACKUP DATABASE
BETWEEN
CASE
CHECK
COLUMN
CONSTRAINT
CREATE
CREATE DATABASE
CREATE INDEX
CREATE OR REPLACE VIEW
CREATE TABLE
CREATE PROCEDURE
CREATE UNIQUE INDEX
CREATE VIEW
DATABASE
DEFAULT
DELETE
DESC
DISTINCT
DROP
DROP COLUMN
DROP CONSTRAINT
DROP DATABASE
DROP DEFAULT
DROP INDEX
DROP TABLE
DROP VIEW
EXEC
EXISTS
FOREIGN KEY
FROM
FULL OUTER JOIN
GROUP BY
HAVING
IN
INDEX
INNER JOIN
INSERT INTO
INSERT INTO SELECT
IS NULL
IS NOT NULL
JOIN
LEFT JOIN
LIKE
LIMIT
NOT
NOT NULL
OR
ORDER BY
OUTER JOIN
PRIMARY KEY
PROCEDURE
RIGHT JOIN
ROWNUM
SELECT
SELECT DISTINCT
SELECT INTO
SELECT TOP
SET
TABLE
TOP
TRUNCATE TABLE
UNION
UNION ALL
UNIQUE
UPDATE
VALUES
VIEW
WHERE
MySQL Functions
String Functions
ASCII
CHAR_LENGTH
CHARACTER_LENGTH
CONCAT
CONCAT_WS
FIELD
FIND_IN_SET
FORMAT
INSERT
INSTR
LCASE
LEFT
LENGTH
LOCATE
LOWER
LPAD
LTRIM
MID
POSITION
REPEAT
REPLACE
REVERSE
RIGHT
RPAD
RTRIM
SPACE
STRCMP
SUBSTR
SUBSTRING
SUBSTRING_INDEX
TRIM
UCASE
UPPER
Numeric Functions
ABS
ACOS
ASIN
ATAN
ATAN2
AVG
CEIL
CEILING
COS
COT
COUNT
DEGREES
DIV
EXP
FLOOR
GREATEST
LEAST
LN
LOG
LOG10
LOG2
MAX
MIN
MOD
PI
POW
POWER
RADIANS
RAND
ROUND
SIGN
SIN
SQRT
SUM
TAN
TRUNCATE
Date Functions
ADDDATE
ADDTIME
CURDATE
CURRENT_DATE
CURRENT_TIME
CURRENT_TIMESTAMP
CURTIME
DATE
DATEDIFF
DATE_ADD
DATE_FORMAT
DATE_SUB
DAY
DAYNAME
DAYOFMONTH
DAYOFWEEK
DAYOFYEAR
EXTRACT
FROM_DAYS
HOUR
LAST_DAY
LOCALTIME
LOCALTIMESTAMP
MAKEDATE
MAKETIME
MICROSECOND
MINUTE
MONTH
MONTHNAME
NOW
PERIOD_ADD
PERIOD_DIFF
QUARTER
SECOND
SEC_TO_TIME
STR_TO_DATE
SUBDATE
SUBTIME
SYSDATE
TIME
TIME_FORMAT
TIME_TO_SEC
TIMEDIFF
TIMESTAMP
TO_DAYS
WEEK
WEEKDAY
WEEKOFYEAR
YEAR
YEARWEEK
Advanced Functions
BIN
BINARY
CASE
CAST
COALESCE
CONNECTION_ID
CONV
CONVERT
CURRENT_USER
DATABASE
IF
IFNULL
ISNULL
LAST_INSERT_ID
NULLIF
SESSION_USER
SYSTEM_USER
USER
VERSION
SQL Server Functions
String Functions
ASCII
CHAR
CHARINDEX
CONCAT
Concat with +
CONCAT_WS
DATALENGTH
DIFFERENCE
FORMAT
LEFT
LEN
LOWER
LTRIM
NCHAR
PATINDEX
QUOTENAME
REPLACE
REPLICATE
REVERSE
RIGHT
RTRIM
SOUNDEX
SPACE
STR
STUFF
SUBSTRING
TRANSLATE
TRIM
UNICODE
UPPER
Numeric Functions
ABS
ACOS
ASIN
ATAN
ATN2
AVG
CEILING
COUNT
COS
COT
DEGREES
EXP
FLOOR
LOG
LOG10
MAX
MIN
PI
POWER
RADIANS
RAND
ROUND
SIGN
SIN
SQRT
SQUARE
SUM
TAN
Date Functions
CURRENT_TIMESTAMP
DATEADD
DATEDIFF
DATEFROMPARTS
DATENAME
DATEPART
DAY
GETDATE
GETUTCDATE
ISDATE
MONTH
SYSDATETIME
YEAR
Advanced Functions
CAST
COALESCE
CONVERT
CURRENT_USER
IIF
ISNULL
ISNUMERIC
NULLIF
SESSION_USER
SESSIONPROPERTY
SYSTEM_USER
USER_NAME
MS Access Functions
String Functions
Asc
Chr
Concat with &
CurDir
Format
InStr
InstrRev
LCase
Left
Len
LTrim
Mid
Replace
Right
RTrim
Space
Split
Str
StrComp
StrConv
StrReverse
Trim
UCase
Numeric Functions
Abs
Atn
Avg
Cos
Count
Exp
Fix
Format
Int
Max
Min
Randomize
Rnd
Round
Sgn
Sqr
Sum
Val
Date Functions
Date
DateAdd
DateDiff
DatePart
DateSerial
DateValue
Day
Format
Hour
Minute
Month
MonthName
Now
Second
Time
TimeSerial
TimeValue
Weekday
WeekdayName
Year
Other Functions
CurrentUser
Environ
IsDate
IsNull
IsNumeric
SQL Quick Ref