Создание и удаление таблиц
Создание таблицы:
Пользователь обязан указать имя таблицы и список столбцов. Для каждого столбца обязательно указываются его имя и тип (см. таблицу в предыдущем разделе), а также опционально могут быть указаны параметры
- NOT NULL - в этом случае элементы столбца всегда должны иметь определенное значение (не NULL)
- один из взаимоисключающих параметров UNIQUE - значение каждого элемента столбца должно быть уникальным или PRIMARY KEY - столбец является первичным ключом.
- REFERNECES <имя_мастер_таблицы> [<имя_столбца>] - эта конструкция определяет, что данный столбец является внешним ключом и указывает на ключ какой мастер_таблицы он ссылается.
· Удаление таблицы:
DROP TABLE <имя_таблицы>
· Модификация таблицы:
·
Добавить столбцы | ALTER TABLE <имя_таблицы> ADD (<имя_столбца> <тип_столбца> [NOT NULL] [UNIQUE | PRIMARY KEY] [REFERENCES <имя_мастер_таблицы> [<имя_столбца>]] ,...) |
Удалить столбцы | ALTER TABLE <имя_таблицы> DROP (<имя_столбца>,...) |
Модификация типа столбцов | ALTER TABLE <имя_таблицы> MODIFY (<имя_столбца> <тип_столбца> [NOT NULL] [UNIQUE | PRIMARY KEY] [REFERENCES <имя_мастер_таблицы> <имя_столбца>]] ,...) |
10)Операторы SQL для вставки новых записей.
INSERT — оператор языка SQL, который позволяет добавить строки в таблицу, заполняя их значениями. Значения можно вставлять перечислением с помощью слова values и перечислив их в круглых скобках через запятую или оператором select.
К этой группе относятся операторы добавления, изменения и удаления записей.
Добавить новую запись в таблицу:
INSERT INTO <имя_таблицы> [ (<имя_столбца>,<имя_столбца>,...) ] VALUES (<значение>,<значение>,..)Список столбцов в данной команде не является обязательным параметром. В этом случае должны быть указаны значения для всех полей таблицы в том порядке, как эти столбцы были перечислены в команде CREATE TABLE, например:
Пример с указанием списка столбцов:
INSERT INTO publishers (publisher,pub_id) VALUES ("Super Computer Publishing",17);Примеры использования
Используя перечисление значений, с указанием столбцов:
INSERT INTO <название таблицы> ([<Имя столбца>, ... ]) VALUES (<Значение>,...)Используя перечисление значений, без указания столбцов:
не работает если использовать с set identity_insert
INSERT INTO <название таблицы> VALUES (<Значение>,...)Используя select:
INSERT INTO <название таблицы> SELECT <имя столбца>,... FROM <название таблицы>В последнем случае, в таблицу может вставиться более одной записи. Если в таблице есть другие поля требующие заполнения, но не указанные в операторе insert, для них будет установлено значение по умолчанию, либо null, если значение по умолчанию не указано.
11)Операторы SQL для модификации и удалению записей.
Модификация записей:
UPDATE <имя_таблицы> SET <имя_столбца>=<значение>,... [WHERE <условие>]Если задано ключевое слово WHERE и условие, то команда UPDATE применяется только к тем записям, для которых оно выполняется. Если условие не задано, UPDATE применяется ко всем записям. Пример:
UPDATE publishers SET url="http://www.superpub.com" WHERE pub_id=17;В качестве условия используются логические выражения над константами и полями. В условиях допускаются:
- операции сравнения: > , < , >= , <= , = , <> , != . В SQL эти операции могут применяться не только к числовым значениям, но и к строкам ( "<" означает раньше, а ">" позже в алфавитном порядке) и датам ( "<" раньше и ">" позже в хронологическом порядке).
- оперции проверки поля на значение NULL: IS NULL, IS NOT NULL
- операции проверки на вхождение в диапазон: BETWEEN и NOT BETWEEN.
- операции проверки на вхождение в список: IN и NOT IN
- операции проверки на вхождение подстроки: LIKE и NOT LIKE
- отдельные операции соединяются связями AND, OR, NOT и группируются с помощью скобок.
Подробно все эти ключевые слова будут описаны и проиллюстрированы в параграфе, посвященном оператору SELECT. Здесь мы ограничимся приведением несложного примера:
UPDATE publishers SET url="url not defined" WHERE url IS NULL;Эта команда находит в таблице publishers все неопределенные значения столбца url и заменяет их строкой "url not defined".
Удаление записей
DELETE FROM <имя_таблицы> [ WHERE <условие> ]Удаляются все записи, удовлетворяющие указанному условию. Если ключевое слово WHERE и условие отстутствуют, из таблицы удаляются все записи. Пример:
DELETE FROM publishers WHERE publisher = "Super Computer Publishing";Эта команда удаляет запись об издательстве Super Computer Publishing.
12)Операторы SQL для выборки записей.
Выборка данных.
Для извлечения записей из таблиц в SQL определен оператор SELECT. С помощью этой команды осуществляется не только операция реляционной алгебры "выборка" (горизонтальное подмножество), но и предварительное соединение (join) двух и более таблиц. Это наиболее сложное и мощное средство SQL, полный синтаксис оператора SELECT имеет вид:
SELECT [ALL | DISTINCT] <список_выбора> FROM <имя_таблицы>, ... [ WHERE <условие> ] [ GROUP BY <имя_столбца>,... ] [ HAVING <условие> ] [ORDER BY <имя_столбца> [ASC | DESC],... ]Порядок предложений в операторе SELECT должен строго соблюдаться (например, GROUP BY должно всегда предшествовать ORDER BY), иначе это приведет к появлению ошибок.
Мы начнем рассмотрение SELECT с наиболее простых его форм. Все примеры, приведенные ниже, касающиеся базы данных publications, можно выполнить самостоятельно, зайдя на эту страничку, поэтому результаты запросов здесь не приводятся.
Этот оператор всегда начинается с ключевого слова SELECT. В кострукции <список_выбора> определяется столбец или столбцы, включаемые в результат. Он может состоять из имен одного или нескольких столбцов, или из одного символа * (звездочка), определяющего все столбцы. Элементы списка разделяются запятыми.
Пример: получить список всех авторов
SELECT author FROM authors;получить список всех полей таблицы authors:
SELECT * FROM authors;В том случае, когда нас интересуют не все записи, а только те, котрые удовлетворяют некому условию, это условие можно указать после ключевого слова WHERE. Например, найдем все книги, опубликованные после 1996 года:
SELECT title FROM titles WHERE yearpub > 1996;SQL предусмотрена возможность выполнения операции реляционной алгебры "ОБЪЕДИНЕНИЕ" (UNION) над отношениями, являющимися результатами оператора SELECT. Естественно, эти отношения должны быть определены по одной схеме.Пример: получить все Интеренет-ссылки, хранимые в базе данных publications. Эти ссылки хранятся в таблицах publishers и wwwsites. Для того, чтобы получить их в одной таблице, мы должны построить следующие запрос:
SELECT publisher,url FROM publishers UNION SELECT site,url FROM wwwsites;13)Использование агрегирующих функций. Подзапросы. Предложения ANY, ALL, EXISTS.
SQL-функции
В SQL существует ряд специальных стандартных функций (SQL-функций). Кроме специального случая COUNT(*) каждая из этих функций оперирует совокупностью значений столбца некоторой таблицы и создает единственное значение, определяемое так:
COUNT
- число значений в столбце,
SUM
- сумма значений в столбце,
AVG
- среднее значение в столбце,
MAX
- самое большое значение в столбце,
MIN
- самое малое значение в столбце.