Главная страница

основы sql. Основы языка sql аннотация


Скачать 88.91 Kb.
НазваниеОсновы языка sql аннотация
Дата29.03.2023
Размер88.91 Kb.
Формат файлаdocx
Имя файлаосновы sql.docx
ТипЛитература
#1024706
страница4 из 4
1   2   3   4

SELECT e.id, node1.x, node1.y, node2.x, node2.y, node3.x, node3.y

    FROM elements e, nodes node1, nodes node2, nodes node3

    WHERE e.n1 = node1.id

        AND e.n2 = node2.id

        AND e.n3 = node3.id;

+----+--------+--------+--------+--------+--------+--------+

| id | x      | y      | x      | y      | x      | y      |

+----+--------+--------+--------+--------+--------+--------+

| 29 |  65.00 | -25.00 |  80.00 | -20.00 |  75.00 | -35.00 |

| 30 |  65.00 | -25.00 |  75.00 | -35.00 |  60.00 | -39.00 |

| 31 |  60.00 | -15.00 |  80.00 | -20.00 |  65.00 | -25.00 |

|  1 | -87.50 |  20.00 | -80.00 |  20.00 | -80.00 |  15.00 |

|  2 | -95.00 |  20.00 | -87.50 |  20.00 | -95.00 |  10.00 |

|  3 | -87.50 |  20.00 | -80.00 |  15.00 | -95.00 |  10.00 |

|  4 | -95.00 |  10.00 | -80.00 |  15.00 | -85.00 |  -1.00 |

| 25 |  65.00 | -25.00 |  60.00 | -39.00 |  50.00 | -25.00 |

| 20 |  40.00 |  -3.00 |  30.00 | -27.00 |  20.00 | -10.00 |

| 21 |  50.00 | -25.00 |  30.00 | -27.00 |  40.00 |  -3.00 |

| 22 |  50.00 | -25.00 |  60.00 | -39.00 |  30.00 | -27.00 |

| 12 | -15.00 |  15.00 |   0.00 |   0.00 | -15.00 | -14.00 |

| 13 | -15.00 |  15.00 |   5.00 |  20.00 |   0.00 |   0.00 |

| 14 | -15.00 | -14.00 |   0.00 |   0.00 |  10.00 | -20.00 |

| 26 |  65.00 |  -5.00 |  75.00 |  -7.00 |  60.00 | -15.00 |

|  7 | -75.00 |  -3.00 | -65.00 |  15.00 | -55.00 |  -6.00 |

|  8 | -65.00 |  15.00 | -40.00 |  15.00 | -55.00 |  -6.00 |

|  9 | -55.00 |  -6.00 | -40.00 |  15.00 | -35.00 | -10.00 |

| 10 | -40.00 |  15.00 | -15.00 |  15.00 | -35.00 | -10.00 |

| 11 | -35.00 | -10.00 | -15.00 |  15.00 | -15.00 | -14.00 |

| 16 |  20.00 |   8.00 |  20.00 | -10.00 |   0.00 |   0.00 |

| 17 |  10.00 | -20.00 |  20.00 | -10.00 |   0.00 |   0.00 |

| 18 |  20.00 |   8.00 |  40.00 |  -3.00 |  20.00 | -10.00 |

| 19 |  30.00 | -27.00 |  10.00 | -20.00 |  20.00 | -10.00 |

| 15 |   5.00 |  20.00 |  20.00 |   8.00 |   0.00 |   0.00 |

| 27 |  75.00 |  -7.00 |  83.00 |  -9.00 |  80.00 | -20.00 |

| 28 |  60.00 | -15.00 |  75.00 |  -7.00 |  80.00 | -20.00 |

|  5 | -80.00 |  15.00 | -75.00 |  -3.00 | -85.00 |  -1.00 |

|  6 | -80.00 |  15.00 | -65.00 |  15.00 | -75.00 |  -3.00 |

| 23 |  40.00 |  -3.00 |  60.00 | -15.00 |  50.00 | -25.00 |

| 24 |  65.00 | -25.00 |  50.00 | -25.00 |  60.00 | -15.00 |

+----+--------+--------+--------+--------+--------+--------+

Примечание. Обратите внимание, что необходимая для выполнения данного запроса промежуточная таблица в виде декартового произведения (если бы она реально строилась) имеет размер в 31*29*29*29=756059 строк (31 строка в таблице elements и 29 строк в таблице nodes).
 

Манипулирование строками таблиц

Для удаления и изменения строк таблиц SQL БД применяются операторы DELETE и UPDATE.

Удаление строк

Удаление строк таблицы реализуется оператором DELETE FROM, имеющим следующий синтаксис

DELETE FROM имя_табл [WHERE сложн_условие]

где сложн_условие имеет описанный выше синтаксис. В результате выполнения оператора из таблицы удаляются все строки, удовлетворяющие критерию сложн_условие. Если в операторе DELETE FROM конструкция WHERE опущена, то удаляются все строки таблицы.

Модификация строк

Изменение содержимого строк таблицы реализуется оператором UPDATE, имеющим следующий синтаксис

UPDATE имя_табл SET имя_столбца=выражение, ...

[WHERE сложн_условие]

где выражение - выражение (в простейшем случае - константа), согласующееся по результату с типом данных столбца. В выражение допустимо использование значений ячеек любых столбцов таблицы, рассмотренных ранее операций и функций (но не агрегативных), а также прежнего содержимого модифицуруемой ячейки. Обновлению подлежат столбцы строк, отвечающих критерию сложн_условие. Если конструкция WHERE в операторе отсутствует, то обновляются все строки таблицы.
Пример
Для изменения наименования материала, из которого выполнена механическая конструкция, для всех элементов КЭ-сетки можно использовать следующий оператор

UPDATE elements SET props='brass';

SELECT * FROM elements;

+----+----+----+----+-------+

| id | n1 | n2 | n3 | props |

+----+----+----+----+-------+

| 29 | 24 | 26 | 25 | brass |

| 30 | 24 | 25 | 23 | brass |

| 31 | 22 | 26 | 24 | brass |

|  1 |  2 |  3 |  5 | brass |

|  2 |  1 |  2 |  4 | brass |

. . .

| 28 | 22 | 27 | 26 | brass |

|  5 |  5 |  7 |  6 | brass |

|  6 |  5 |  8 |  7 | brass |

| 23 | 20 | 22 | 21 | brass |

| 24 | 24 | 21 | 22 | brass |

+----+----+----+----+-------+

Пример
В нашей КЭ-сетке элемент 22 имеет ?неправильную? форму. Ставится задача заменить его двумя новыми конечными элементами, имеющими форму, более близкую к равносторонней. Эта задача может быть решена следующей последовательностью операторов

DELETE FROM elements WHERE id=22;

INSERT INTO nodes VALUES (30, 45.0, -33.5);

INSERT INTO elements VALUES (22, 21, 30, 19);

INSERT INTO elements VALUES (32, 21, 23, 30);

Пример
Для решения предыдущей задачи можно также использовать и другой набор операторов

INSERT INTO nodes VALUES (30, 45.0, -33.5);

UPDATE elements SET n2 = 30 WHERE id = 22;

INSERT INTO elements VALUES (32, 21, 23, 30);

Литература

    • Дж. Мартин. Организация баз данных в вычислительных системах. - М.;Мир,1980. - 662с.

    • С.Д. Кузнецов. Стандарты языка реляционных баз данных SQL: краткий обзор. //СУБД,  1996, N2, сс. 6-36.

    • С.Д. Некузнецов

    • Зенкевич О., Морган К. Конечные элементы и аппроксимации. - М.:Мир, 1979. - 318с.

Упражнения

 Ниже приведены задания, которые необходимо выполнить, используя оператор SELECT выборки информации из учебной базы данных. Выполнение некоторых заданий значительно упростится, если учесть приведенные ниже рекомендации.
 

    • Определить наилучший материал по показателю ?прочность/плотность?.

    • Получить таблицу, содержащую значения наибольших разностей идентификаторов узлов - вершин для каждого конечного элемента.Таблица должна быть упорядочена по убыванию значений разностей.

    • Определить максимальное значение в таблице из предыдущего задания.

    • Определить протяженность механического объекта вдоль оси x.

    • Определить расстояние каждого узла КЭ-сетки до начала системы координат.

    • Определить расстояние каждого узла КЭ-сетки до узла, в котором приложено граничное условие в виде горизонтальной силы (подчеркнем, не до узла с заданным идентификатором, а до узла с заданным типом граничного условия).

    • Найти наибольшее расстояние между узлами КЭ-сетки.

    • Получить таблицу длин сторон всех элементов КЭ-сетки в виде ?идентификатор элемента - длина стороны 1 - длина стороны 2 - длина стороны 3?.

    • Получить таблицу расстояний между узлами КЭ-сетки, соединенных сторонами конечных элементов, в виде ?идентификатор узла 1 - идентификатор узла 2 - длина?.

    • Получить таблицу площадей всех конечных элементов. Напомним, для вычисления площади треугольника можно использовать формулу

s = SQRT(p*(p-a)*(p-b)*(p-c))

где a, b, c - длины сторон треугольника, а p - его полупериметр.

    • Определить общую массу механического объекта при условии, что его толщина (в направлении z) равна 5 мм.

    • Получить таблицу значений отношения maxL/minL для каждого конечного элемента с указанием тех элементов, для которых это отношение превышает величину 1,4 (здесь maxL - наибольшая длина стороны конечного элемента, minL - наименьшая длина стороны конечного элемента).

    • Получить таблицу ?степеней? узлов КЭ-сетки. Степенью узла в теории графов называется количество ребер, соединяющих данный узел с соседними.

    • Определить для каждого узла КЭ-сетки количество ?подключенных? к нему конечных элементов.

    • Получить список идентификаторов ?угловых? узлов КЭ-сетки (назовем унловыми узлы, являющиеся вершиной только одного элемента).

    • Получить список идентификаторов конечных элементов, одна или более сторон которых образуют границу области.

    • Предложить способ определения факта расположения узла КЭ-сетки на границе области. Выдать список всех таких узлов.

 
Рекомендация. В СУБД mySQL синтаксис оператора SELECT выглядит следующим образом:

SELECT [ALL|DISTINCT] в_выражение [AS син_столбца], ...

    FROM ... и т.д.

где син_столбца - имя, назначаемое столбцу результирующей таблицы. Это имя используется при выводе результирующей таблицы (в ее ?шапке?) вместо текста в_выражение. Однако, более полезно то, что син_столбца можно использовать в в_выражение, расположенном правее в списке оператора SELECT. Это в ряде случаев позволяет существенно уменьшить сложность конструкции в_выражение. Необходимо также отметить, что аналогичные средства именования (введения синонимов) столбцов результирующей таблицы предлагают все СУБД, поддерживающие язык SQL.
1   2   3   4


написать администратору сайта