Инструкции языка SQL: обзор наиболее важных команд и слов

Команды, слова и инструкции SQL

В SQL имеется около сорока инструкций (наиболее важные и часто используе­мые из них представлены в таблицах ниже). Каждая из них "просит" СУБД выполнить определенное действие, например извлечь данные, создать таблицу или добавить в таблицу новые данные. Все инструкции SQL имеют подобную структуру, кото­рая изображена на рис. 1.


Оглавление статьи[Показать]


Инструкции SQL для обработки данных

SELECT

Извлекает данные из базы данных

INSERT

Добавляет новые строки в базу данных

UPDATE

Обновляет данные, имеющиеся в базе данных

MERGE

Добавляет/обновляет/удаляет новые и старые строки на основе условий

DELETE

Удаляет строки из базы данных

 

Команды SQL по Определению данных

CREATE TABLE

Добавляет новую таблицу в базу данных

DROP TABLE

Удаляет таблицу из базы данных

ALTER TABLE

Изменяет структуру существующей таблицы

CREATE VIEW

Добавляет новое представление в базу данных

DROP VIEW

Удаляет представление из базы данных

CREATE INDEX

Создает индекс для столбца

DROP INDEX

Удаляет индекс столбца

CREATE SCHEMA

Добавляет новую схему в базу данных

DROP SCHEMA

Удаляет схему из базы данных

CREATE DOMAIN

Добавляет новый домен значений данных

ALTER DOMAIN

Изменяет определение домена

DROP DOMAIN

Удаляет домен из базы данных

 

Инструкции SQL по Управлению доступом

GRANT

Предоставляет пользователю привилегии доступа

REVOKE

Отменяет пользовательские привилегии доступа

CREATE ROLE

Добавляет в базу данных новую роль

GRANT ROLE

Предоставляет роль, содержащую привилегии доступа

DROP ROLE

Удаляет роль из базы данных


 

Инструкции SQL по Управлению транзакциями

COMMIT

Завершает текущую транзакцию

ROLLBACK

Отменяет текущую транзакцию

SET TRANSACTION

Определяет характеристики доступа к данным в текущей транзакции

START TRANSACTION

Явно начинает новую транзакцию

SAVEPOINT

Устанавливает точку восстановления транзакции

 

Команды Программного SQL

DECLARE

Определяет курсор запроса

EXPLAIN

Возвращает описание плана доступа к данным в запросе

OPEN

Открывает курсор для получения результатов запроса

FETCH

Извлекает строку из результатов запроса

CLOSE

Закрывает курсор

PREPARE

Подготавливает инструкцию SQL к динамическому выполнению

EXECUTE

Динамически выполняет инструкцию SQL

DESCRIBE

Описывает подготовленный запрос

Рис. 1. Структура инструкции SQL

Каждая инструкция SQL начинается с команды, т.е. ключевого слова, описы­вающего действие, выполняемое инструкцией. Типичными командами являются CREATE (создать), INSERT (добавить), delete (удалить) и COMMIT (зафиксировать). После команды идет одно или несколько предложений. Предложение может опи­сывать данные, с которыми работает инструкция, или содержать уточняющую информацию о действии, выполняемом инструкцией. Каждое предложение также начинается с ключевого слова, такого как WHERE (где), FROM (откуда), into (куда) или HAVING (имеющий). Одни предложения в инструкции являются обязательны­ми, а другие — нет. Конкретная структура и содержимое предложения могут из­меняться. Многие предложения содержат имена таблиц или столбцов; некоторые из них могут содержать дополнительные ключевые слова, константы и выражения.

В стандарте ANSI/ISO определен набор зарезервированных (а также незарезер­вированных) ключевых слов, которые используются в инструкциях SQL. В соответст­вии со стандартом, зарезервированные ключевые слова нельзя использовать для именования объектов базы данных, таких как таблицы, столбцы и пользователи. Во многих реализациях СУБД этот запрет ослаблен, но тем не менее следует избегать использования ключевых слов в качестве имен таблиц и столбцов. В табл. 1 пере­числены ключевые слова, включенные в стандарт ANSI/ISO SQL:2006.

Таблица 1. Зарезервированные ключевые слова SQL:2006

ABS

ALL

ALLOCATE

ALTER

AND

ANY

ARE

ARRAY

AS

ASENSITIVE

ASYMMETRIC

AT

ATOMIC

AUTHORIZATION

AVG

BEGIN

BETWEEN

BIGINT

BINARY

BLOB

BOOLEAN

BOTH

BY

CALL

CALLED

CARDINALITY

CASCADED

CASE

CAST

CEIL

CEILING

CHAR

CHAR_LENGTH

CHARACTER

CHARACTER_LENGTH

CHECK

CLOB

CLOSE

COALESCE

COLLATE

COLLECT

COLUMN

COMMIT

CONDITION

CONNECT

CONSTRAINT

CONVERT

CORR

CORRESPONDING

COUNT

COVAR_POP

COVAR_SAMP

CREATE

CROSS

CUBE

CUME_DIST

CURRENT

CURRENT_DATE

CURRENT_DEFAULT_TRANSFORM_GROUP

CURRENT_PATH

CURRENT_ROLE

CURRENT_TIME

CURRENT_TIMESTAMP

CURRENT_TRANS_FORM_GROUP_FOR_TYPE

CURRENTJJSER

CURSOR

CYCLE

DATE

DAY

DEALLOCATE

DEC

DECIMAL

DECLARE

DEFAULT

DELETE

DENSE_RANK

DEREF

DESCRIBE

DETERMINISTIC

DISCONNECT

DISTINCT

DOUBLE

DROP

DYNAMIC

EACH

ELEMENT

ELSE

END

END-EXEC

ESCAPE

EVERY

EXCEPT

EXEC

EXECUTE

EXISTS

EXP

EXTERNAL

EXTRACT

FALSE

FETCH

FILTER

FLOAT

FLOOR

FOR

FOREIGN

FREE

FROM

FULL

FUNCTION

FUSION

GET

GLOBAL

GRANT

GROUP

GROUPING

HAVING

HOLD

HOUR

IDENTITY

IN

INDICATOR

INNER

INOUT

INSENSITIVE

INSERT

INT

INTEGER

INTERSECT

INTERSECTION

INTERVAL

INTO

IS

JOIN

LANGUAGE

LARGE

LATERAL

LEADING

LEFT

LIKE

LN

LOCAL

LOCALTIME

LOCALTIMESTAMP

LOWER

MATCH

MAX

MEMBER

MERGE

METHOD

MIN

MINUTE

MOD

MODIFIES

MODULE

MONTH

MULTISET

NATIONAL

NATURAL

NCHAR

NCLOB

NEW

NO

NONE

NORMALIZE

NOT

NULL

NULLIF

NUMERIC

OCTET_LENGTH

OF

OLD

ON

ONLY

OPEN

OR

ORDER

OUT

OUTER

OVER

OVERLAPS

OVERLAY

PARAMETER

PARTITION

PERCENT_RANK

PERCENTILE_CONT

PERCENTILE_DISC

POSITION

POWER

PRECISION

PREPARE

PRIMARY

PROCEDURE

RANGE

RANK

READS

REAL

RECURSIVE

REF

REFERENCES

REFERENCING

REGR_AVGX

REGR_AVGY

REGR_COUNT

REGR_INTERCEPT

REGR_R2

REGR_SLOPE

REGR_SXX

REGR_SXY

REGR_SYY

RELEASE

RESULT

RETURN

RETURNS

REVOKE

RIGHT

ROLLBACK

ROLLUP

ROW

ROW_NUMBER

ROWS

SAVEPOINT

SCOPE

SCROLL

SEARCH

SECOND

SELECT

SENSITIVE

SESSION_USER

SET

SIMILAR

SMALLINT

SOME

SPECIFIC

SPECIFICTYPE

SQL

SQLEXCEPTION

SQLSTATE

SQLWARNING

SQRT

START

STATIC

STDDEV_POP

STDDEV_SAMP

SUBMULTISET

SUBSTRING

SUM

SYMMETRIC

SYSTEM

SYSTEM_USER

TABLE

TABLESAMPLE

THEN

TIME

TIMESTAMP

TIMEZONE_HOUR

TIMEZONE_MINUTE

TO

TRAILING

TRANSLATE

TRANSLATION

TREAT

TRIGGER

TRIM

TRUE

UESCAPE

UNION

UNIQUE

UNKNOWN

UNNEST

UPDATE

UPPER

USER

USING

VALUE

VALUES

VAR_POP

VAR_SAMP

VARCHAR

VARYING

WHEN

WHENEVER

WHERE

WIDTH_BUCKET

WINDOW

WITH

WITHIN

WITHOUT

YEAR

Следует также избегать при именовании объектов баз данных незарезервированных ключевых слов, поскольку они являются кандидатами в зарезервирован­ные в будущих версиях стандарта. В табл. 2 перечислены ключевые слова, вклю­ченные в стандарт ANSI/ISO SQL:2006.

Таблица 2. Незарезервированные ключевые слова SQL:2006

ABSOLUTE

ACTION

ADA

ADD

ADMIN

AFTER

ALWAYS

ASC

ASSERTION

ASSIGNMENT

ATTRIBUTE

ATTRIBUTES

BEFORE

BERNOULLI

BREADTH

CASCADE

CATALOG

CATALOG_NAME

CHAIN

CHARACTER_SET­_CATALOG

CHARACTER_SET_NAME

CHARACTER_SET_SCHEMA

CHARACTERISTICS

CHARACTERS

CLASS_ORIGIN

COBOL

COLLATION

COLLATION_CATALOG

COLLATION_NAME

COLLATION_SCHEMA

COLUMN_NAME

COMMAND_FUNCTION

COMMAND_FUNCTION_CODE

COMMITTED

CONDITION_NUMBER

CONNECTION

CONNECTION_NAME

CONSTRAINT_CATALOG

CONSTRAINT_NAME

CONSTRAINT_SCHEMA

CONSTRAINTS

CONSTRUCTOR

CONTAINS

CONTINUE

CURSOR_NAME

DATA

DATETIME_INTERVAL_CODE

DATETIME_INTERVAL_PRECISION

DEFAULTS

DEFERRABLE

DEFERRED

DEFINED

DEFINER

DEGREE

DEPTH

DERIVED

DESC

DESCRIPTOR

DIAGNOSTICS

DISPATCH

DOMAIN

DYNAMIC_FUNCTION

DYNAMIC_FUNCTION_CODE

EQUALS

EXCEPTION

EXCLUDE

EXCLUDING

FINAL

FIRST

FOLLOWING

FORTRAN

FOUND

GENERAL

GENERATED

GO

GOTO

GRANTED

IMMEDIATE

IMPLEMENTATION

INCLUDING

INCREMENT

INITIALLY

INPUT

INSTANCE

INSTANTIABLE

INVOKER

ISOLATION

KEY

KEY_MEMBER

KEY_TYPE

LAST

LENGTH

LEVEL

LOCATOR

MAP

MATCHED

MAXVALUE

MESSAGE_LENGTH

MESSAGE_OCTET_LENGTH

MESSAGE_TEXT

MINVALUE

MORE

MUMPS

NAME

NAMES

NESTING

NEXT

NORMALIZED

NULLABLE

NULLS

NUMBER

OBJECT

OCTETS

OPTION

OPTIONS

ORDERING

ORDINALITY

OTHERS

OUTPUT

OVERRIDING

PAD

PARAMETER_MODE

PARAMETER_NAME

PARAMETER_ORDINAL_POSITION

PARAMETER_SPECIFIC_CATALOG

PARAMETER_SPECIFIC_NAME

PARAMETER_SPECIFIC_SCHEMA

PARTIAL

PASCAL

PATH

PLACING

PLI

PRECEDING

PRESERVE

PRIOR

PRIVILEGES

PUBLIC

READ

RELATIVE

REPEATABLE

RESTART

RESTRICT

RETURNED_CARDINALITY

RETURNED_LENGTH

RETURNED_OCTET_LENGTH

RETURNED_SQLSTATE

ROLE

ROUTINE

ROUTINE_CATALOG

ROUTINE_NAME

ROUTINE_SCHEMA

ROW_COUNT

SCALE

SCHEMA

SCHEMA_NAME

SCOPE_CATALOG

SCOPE_NAME

SCOPE_SCHEMA

SECTION

SECURITY

SELF

SEQUENCE

SERIALIZABLE

SERVER_NAME

SESSION

SETS

SIMPLE

SIZE

SOURCE

SPACE

SPECIFIC_NAME

STATE

STATEMENT

STRUCTURE

STYLE

SUBCLASS_ORIGIN

TABLE_NAME

TEMPORARY

TIES

TOP_LEVEL_COUNT

TRANSACTION

TRANSACTION-ACTIVE

TRANSACTIONS_COMMITTED

TRANSACTIONS_ROLLED_BACK

TRANSFORM

TRANSFORMS

TRIGGER_CATALOG

TRIGGER_NAME

TRIGGER_SCHEMA

TYPE

UNBOUNDED

UNCOMMITTED

UNDER

UNNAMED

USAGE

USER_DEFINED_TYPE_CATALOG

USER_DEFINED_TYPE_CODE

USER_DEFINED_TYPE_NAME

USER_DEFINED_TYPE_SHEMA

VIEW

WORK        

WRITE 

ZONE

 

В моём блоге допустимые формы инструкций SQL иллюстрируются с помо­щью синтаксических диаграмм, таких как показанная на рис. 2. Чтобы создать правильную инструкцию или предложение, необходимо пройти по синтаксиче­ской диаграмме вдоль линий до точки, которая служит концом диаграммы. На синтаксической диаграмме и в примерах ключевые слова всегда напечатаны про­писными буквами (как слова delete и from на рис. 2), но почти во всех СУБД ключевые слова можно набирать как прописными, так и строчными буквами, и часто последнее оказывается более удобным.

 Пример синтаксической диаграммы SQL

Рис. 2. Пример синтаксической диаграммы

Изменяемые элементы инструкции SQL в синтаксической диаграмме указаны строчными буквами и выделены курсивом (имя таблицы и условие отбора на рис. 2). При создании инструкции программист должен самостоятельно опреде­лить каждый из таких элементов. Необязательные предложения и ключевые слова (например, предложение where на рис. 2) на синтаксической диаграмме показа­ны с помощью дополнительных линий. Если имеется возможность необязательно­го выбора из нескольких ключевых слов, тогда то из них, которое принято по умолчанию (т.е. действие, выполняемое инструкцией, если не указано ни одно из ключевых слов, выполняется, как если бы было указано слово по умолчанию), подчеркивается.

Вас заинтересует / Intresting for you:

Назначение языка SQL и необход...
Назначение языка SQL и необход... 3603 просмотров Ирина Светлова Mon, 28 Jun 2021, 19:23:28
Типы данных SQL: стандарт ANSI...
Типы данных SQL: стандарт ANSI... 4964 просмотров Дэн Sat, 05 Jun 2021, 09:43:17
Правила именование объектов SQ...
Правила именование объектов SQ... 9849 просмотров Дэн Sat, 05 Jun 2021, 09:02:07
Язык SQL: краткая инструкция п...
Язык SQL: краткая инструкция п... 2519 просмотров Дэн Sun, 30 May 2021, 07:39:59
Войдите чтобы комментировать