Операторы определения данных и манипулирования данными.



Операторы определения данных DDL

Оператор Смысл Действие
CREATE TABLE Создать таблицу Создает новую таблицу в БД
DROP TABLE Удалить таблицу Удаляет таблицу из БД
ALTER TABLE Изменить таблицу Изменяет структуру существующей таблицы или ограничения целостности, задаваемые для данной таблицы
CREATE VIEW Создать представление Создает виртуальную таблицу, соответствующую некоторому SQL-запросу
ALTER VIEW /Изменить представление Изменяет ранее созданное представление
DROP VIEW Удалить представление Удаляет ранее созданное представление
CREATE INDEX Создать индекс Создает индекс для некоторой таблицы для обеспечения быстрого доступа по атрибутам, входящим в индекс
DROP INDEX Удалить индекс Удаляет ранее созданный индекс

Созданиебазыданных
CREATE DATABASE University

 

Установление текущей базы данных
USEUniversity

 

Создание таблицы (сокращенный вариант)
CREATETABLE<имя таблицы>

(<описание элемента таблицы>[,…n])

<описание элемента таблицы> ::=<определение столбца> | [… опускаем]

<определение столбца> ::=<имя столбца><тип данных> [<значение по умолчанию>] [<ограничения столбца>]

<значение по умолчанию> ::=DEFAULT {<литерал> | NULL | [… опускаем]}

<ограничение столбца> ::=NOTNULL […опускаем]

 

Скрипты создания БД для примера «Библиотека»

CREATE DATABASE Library

GO

CREATE TABLE [dbo].[Readers](

       [reader_id] [int] IDENTITY(1,1) NOT NULL PRIMARY KEY,

       [last_name] [varchar](50) NOT NULL,

       [first_name] [varchar](50) NOT NULL,

       [second_name] [varchar](50) NULL,

       [work_phone] [char](11) NULL,

       [home_phone] [char](11) NULL,

)

CREATE TABLE [dbo].[Publications](

       [isbn] [varchar](14) NOT NULL PRIMARY KEY,

       [title] [varchar](120) NOT NULL,

       [author] [varchar](30) NULL,

       [public_year] [int] NULL,

       [pages] [int] NULL,

)

CREATE TABLE [dbo].[Exemplars](

       [inv] [varchar](10) NOT NULL PRIMARY KEY,

       [isbn] [varchar](14) NOT NULL FOREIGN KEY REFERENCES Publications(isbn),

       [reader_id] [int] NULL FOREIGN KEY REFERENCES Readers(reader_id),

       [date_out] [datetime] NULL,

)

 

Удалениебазыданных

DROP DATABASE University

 

Удалениетаблицы

DROP TABLE Exams

 

Изменение таблицы (сокращенный вариант)
ALTERTABLE<имя таблицы> {
ADD<определение столбца> |

ALTERCOLUMN<имя столбца><тип и свойства>
DROPCOLUMN<имя столбца> [… опускаем] }

 

Добавление нового столбца

ALTERTABLEEADD [Комментарий] NVARCHAR(255)

 

Изменение свойств столбца

ALTERTABLEEALTERCOLUMN [Комментарий] NVARCHAR(500)

Для переименования – хранимая процедура

sp_rename 'object_name', 'new_name' , 'object_type‘ 

где 'object_type‘ принимает значения:

COLUMN – столбец

DATABASE – пользовательская БД

INDEX – пользовательский индекс.

OBJECT – объект из каталога (таблица, процедура, ограничение и т.п.)

 

Переименовать столбец

EXECsp_rename 'E.[Оц]', 'Оценка', 'COLUMN' 

 

Переименоватьтаблицу

EXECsp_rename 'E', 'Exams', 'OBJECT'

 

Операторы манипулирования данными DataManipulationLanguage (DMP)

Оператор Смысл Действие
DELETE Удалить строки Удаляет одну или несколько строк, соответствующих условиям фильтрации, из базовой таблицы. Применение оператора согласуется с принципами поддержки целостности, поэтому этот оператор не всегда может быть выполнен корректно, даже если синтаксически он записан правильно
INSERT Вставить строку Вставляет одну строку в базовую таблицу. Допустимы модификации оператора, при которых сразу несколько строк могут быть перенесены из одной таблицы или запроса в базовую таблицу
UPDATE Обновить строку Обновляет значения одного или нескольких столбцов в одной или нескольких строках, соответствующих условиям фильтрации

Добавление строк

INSERTINTO<имя таблицы>
[(<список столбцов>)]
VALUES (<список значений>)

INSERT INTO Exemplars (inv, isbn, reader_id, date_out)
VALUES (202, ‘5-132’, 533, GetDate())

 

Если значения в порядке объявления столбцов

INSERT INTO Exemplars
VALUES (202, ‘5-132’, 533, GetDate())

 

Вставкаиздругойтаблицы

INSERT INTO Readers (name) SELECT student_name FROM Students

 

Удаление

DELETE FROM <имятаблицы>
[WHERE <предикат>]

 

Удалить одну запись

DELETEFROMG
WHERE [ФИО] = ‘Петров’

 

Удалить студентов, имеющих две или более двоек

DELETE FROM G
WHERE G.[ФИО] IN
(SELECT E.[ФИО] FROM E
WHERE [Оценка]=2
GROUP BY E.[ФИО]
HAVING COUNT(*) >=2)

 

 

Изменение значений в строке

UPDATE<имя таблицы>
SET<имя столбца> = <выражение>, …n
[WHERE<предикат>]

 

Изменение в одной строке

UPDATEE
SET [Оц] = 5, [Дисц] = ‘ОС’
WHERE [ФИО] = ‘Петров’ AND [Дисц] = ‘БД’

UPDATE E SET [Оц] = [Оц] + 1
WHERE [Дисц] = ‘БД’ AND [Оц] < 5

 

Использованиеподзапроса

UPDATE E SET E.[Оц] = [Оц] + 1
WHERE E.[ФИО] IN
(SELECT G.[ФИО] FROM G
WHERE G.[Группа] IN (‘ВТ-100’, ‘ВТ-200’, ‘ВТ-300’))

 

Оператор SELECT.

 

 

Язык запросов (DataQueryLanguage) в SQL состоит из единственного оператора SELECT. Этот единственный оператор поиска реализует все операции реляционной алгебры.

Синтаксис оператора SELECT имеет следующий вид:

SELECT( [ALL | DISTINCT] <списокполей>|*)

FROM <Список таблиц>

[WHERE <Предикат-условие выборки или соединения>]

[GROUP BY <Список полей результата>]

[HAVING <Предикат-условие для группы>]

[ORDER BY <Список полей, по которым упорядочить вывод>]

Здесь ключевое слово ALL означает, что в результирующий набор строк включаются все строки, удовлетворяющие условиям запроса. Ключевое слово DISTINCT означает, что в результирующий набор включаются только различные строки, то есть дубликаты строк результата не включаются в набор. Символ *. (звездочка) означает, что в результирующий набор включаются все столбцы из исходных таблиц запроса.

В разделе FROM задается перечень исходных отношений (таблиц) запроса.

В разделе WHERE задаются условия отбора строк результата или условия соединения кортежей исходных таблиц, подобно операции условного соединения в реляционной алгебре.

В разделе GROUP BY задается список полей группировки.

В разделе HAVING задаются предикаты-условия, накладываемые на каждую группу.

В части ORDER BY задается список полей упорядочения результата, то есть список полей, который определяет порядок сортировки в результирующем отношении.

SELECT — ключевое слово, которое сообщает СУБД, что эта команда — запрос. За ним может следовать способ выборки — с удалением дубликатов (DISTINCT) или без удаления (ALL, подразумевается по умолчанию). Затем следует список перечисленных через запятую столбцов, которые выбираются запросом из таблиц, или символ '*' (звездочка) для выбора всей строки.

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

Все последующие разделы оператора SELECT являются необязательными.

В выражении условий раздела WHERE могут быть использованы следующие предикаты:

• Предикаты сравнения { =, <>, >,<, >=,<= }, которые имеют традиционный смысл.

• Предикат Between A and В — принимает значения между А и В. \

• Предикат вхождения в множество IN (множество) истинен тогда, когда сравниваемое значение входит в множество заданных значений.

• Предикаты сравнения с образцом LIKE и NOT LIKE.

Предикат сравнения с неопределенным значением IS NULL

 

 


Дата добавления: 2018-08-06; просмотров: 252; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!