MySQL & mSQL

MSQLSQL


CREATE

CREATE TABLE name field_name field_type, [field2 type2, ...]

CREATE SEQUENCE ON table [STEP value] [VALUE value]

CREATE INDEX name ON table ( column, ...)

Создает новые элементы базы данных (или полностью новые базы). Предложение используется для создания БД, таблиц, индексов и счетчиков.

CREATE SEQUENCE создает счетчик на таблицу. Счетчик - это простое значение, связанное с таблицей, за которым следит сервер mSQL. Наиболее часто счетчик используют для создания уникальных идентификаторов в таблицах. При прочтении значение счетчика каждый раз инкрементируется. Спецификатор STEP указывает на какое значение каждый раз инкрементируется счетчик. Спецификатор VALUE задает начальное значение счетчика.

Оператор CREATE INDEX определяет индекс для таблицы. Система mSQL поддерживает индексы, содержащие более одного поля. Вы должны дать индексу имя, необязательно осмысленное, поскольку конечным пользователям редко необходим доступ к индексам.

CREATE TABLE определяет структуру таблицы в базе данных. Этим оператором создаются все таблицы mSQL. Предложение состоит из имени таблицы, за которым идет любое количество определений полей. Синтаксис определения полей включает в себя имя поля, затем его тип, за которым следует любой модификатор (например: name char(30) not null). mSQL поддерживает следующие типы данных:

CHAR (length)

Текстовое значение фиксированной длины. Никакое значение не может быть больше заданной длины.

DATE

Стандартный тип даты.

INT



Стандартное четырехбайтовое целое в диапазоне от -2147483646 до 2147483647.

MONEY

Денежный тип, подходящий для аккуратного хранения денежных значений. Тип позволяет хранить десятичные значения (как 19.99) без необходимости использовать тип числа с плавающей запятой.

REAL

Стандартное восьмибайтовое число с плавающей запятой. Минимальные ненулевые значения +/-4.94Е-324 и максимальные значения +/- 1.79Е+308.

ТЕХТ( length)

Текстовое значение переменной длины. Заданная длина - это максимальное значение для большинства данных, однако могут быть введены и более длинные данные.


TIME

Стандартный тип времени.

UINT

Стандартное четырехбайтовое беззнаковое целое. Диапазон от 0 до 4294967295.

В дополнение к основным типам могут быть использованы несколько спецификаторов для уточнения свойств типа:

length

Это является максимальной длиной символьного типа. Для типа CHAR это абсолютный максимум, для типа TEXT это приблизительный максимум, применяющийся только к большинству данных. Более длинные данные могут быть введены в поле TEXT, однако это замедлит операции с таблицей.

NOT NULL

Указывает, что поле не может содержать нулевое значение. Попытка ввести в это поле такое значение вызовет ошибку.

Примеры

# Создать 'простую таблицу

CREATE TABLE emp_data ( id INT, name CHAR(50) )

# Добавить счетчик к таблице 'checks' с начальным значением '1000' и # шагом инкрементации по умолчанию (1)

CREATE SEQUENCE ON checks VALUE 1000

# Создать индекс для таблицы 'music', включающий в себя

# поля 'artist','publisher' и 'title'.

CREATE INDEX idxl O.N music ( artist, publisher, title )

DELETE

DELETE FROM table [WHERE clause]

Удаляет запись из таблицы. Если применяется без предложения WHERE, будет полностью удалена вся таблица, а затем создана новая пустая

таблица. С использованием WHERE будут удалены записи, отвечающие условиям выражения.

Примеры

# Стереть все данные из таблицы 'olddata'(no не саму таблицу). DELETE FROM olddata

# Стереть все записи в таблице 'sales', в которых поле 'year' равно '1995', DELETE FROM sales WHERE year=1995

DROP

DROP INDEX name DROP TABLE name DROP SEQUENCE FROM table

Полностью удаляет таблицу, индекс или счетчик из системы mSQL.

DROP - это, возможно, самое опасное из выражений SQL. Если вы имеете право на выполнение команд DROP, вы можете полностью стереть таблицу или даже целую базу данных. Это произойдет без предупреждения или запроса на подтверждение. Единственный способ отменить DROP - восстановление базы данных из резервной копии. Поэтому следует запомнить два правиле: (1) всегда сохраняйте резервную копию вашей базы (backup); (2) не используйте DROP до тех пор, пока вы полностью не уверены в том, что это необходимо.



Примеры

# Удалить таблицу 'oh_no'. DROP TABLE oh_no

# Удалить индекс с именем 'my_index' DROP INDEX my_index

# Стереть счетчик для таблицы 'counter'. Другой счетчик может быть

# создан в любое время с помощью команды 'CREATE SEQUENCE'.

DROP SEQUENCE FROM counter

INSERT

INSERT INTO table [ (column, ...) ] VALUES ( values )

Записывает данные в таблицу. Этот оператор вставит указанные значения в заданные столбцы. Поля, значения которых не указаны, получат значение NULL. Если вы не зададите список столбцов, число указанных значений должно точно совпадать с числом столбцов в таблице.

Примеры

# Добавить запись в таблицу'people'.

INSERT INTO people ( name, rank, serial_number )

VALUES ( 'Bob Smith', 'Captain', 12345 )

SELECT

SELECT [DISTINCT] columns FROM table [clause]

Выбирает данные из таблицы. Оператор SELECT является основным методом чтения данных из таблиц баз данных.

Если вы укажете несколько таблиц, mSQL автоматически объединит таблицы для сравнения записей.

Если указано ключевое слово DISTINCT, будет показана только одна запись из каждой группы одинаковых записей возвращаемого набора.

Имена столбцов могут быть указаны как column или как table, column . Длинная форма необходима только для того, чтобы отличать столбцы с одинаковыми именами, но ее можно использовать в любое время (например, SELECT name FROM people; SELECT people, name FROM people ).

Список таблиц для соединения указывается как Table1, Table2, Tab-1еЗ, .... Таблицы будут соединены таким образом, как mSQL сочтет наиболее эффективным. Именам таблиц могут быть присвоены псевдонимы (например, SELECT t1.name, t2.address FROM Iong_table_name=t1, Ionger_table_name=t2 ). Если не указано выражение clause, SELECT вернет все данные из выбранной таблицы (или таблиц).

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

WHERE

Конструкция WHERE является основным способом поиска данных в SQL. В конструкции сравниваются два и более значений. Можно использовать значения с именами (такие как имена столбцов и псевдонимы), числовые константы и строки. Поддерживаются следующие операторы:



AND

Выполняет логическое И ( вернет 0, если хоть один из аргументов равен 0, иначе вернет 1).

OR

Выполняет логическое ИЛИ (возвращает 1, если любой из аргументов не равен 0, иначе возвращает 0).

()

Скобки используются для группировки операторов, чтобы указать старшинство.

=

Возвращает 1, если два значения совпадают, иначе вернет 0. mSQL автоматически преобразует типы при сравнении значений.

<>

Возвращает 1, если два значения не совпадают, иначе возвращает 0.

<=

Возвращает 1, если левое значение меньше или равно правому, иначе возвращает 0.

<

Возвращает 1, если левое значение меньше, чем значение справа, иначе возвращает 0.

>=

Возвращает 1, если левое значение больше или равно правому, иначе возвращает 0.

>

Возвращает 1, если левое значение больше правого, иначе возвращает 0.

ORDER BY column [DESC][, column2 [DESC],...]

Сортирует возвращаемые данные по заданному столбцу (или столбцам). Если указать DESC, данные будут отсортированы в порядке убывания, иначе будет использована сортировка по возрастанию (например, SELECT name, age FROM people ORDER BY age DESC ).

value1 LIKE value2

Сравнивает valuel и value2 и возвращает 1, если они совпадают. Значение справа может содержать знак подстановки « % », который заменяет любое количество символов (в том числе и отсутствие символа), и знак '_', замещающий в точности один символ. Это, возможно, наиболее употребительное в SQL сравнение. Чаще всего используется сравнение поля с некоторой строкой, содержащей знак подстановки (например, SELECT name FROM people WHERE name LIKE 'B%' ).

value1 RLIKE value2

Сравнивает valuel и value2, используя расширенный синтаксис регулярных выражений, и возвращает 1, если они совпадают. Значение справа может содержать полные подстановочные выражения и конструкции Unix (например, SELECT name FROM people WHERE name RLIKE '^В. *').

value1 CLIKE value2

Сравнивает value1 с value2, используя нечувствительную к регистру версию оператора LIKE (например, SELECT name FROM people WHERE name CLIKE 'b%' ).

Предложение WHERE возвращает все записи, для которых значение заданного выражения не равно 0 или NULL. Таким образом, SELECT age FROM people WHERE age>10 вернет только те записи, где 'ages' больше 10.

Примеры

# Найти все имена (пате)в таблице 'people', у которых поле 'state' равно 'МI'. SELECT name FROM people WHERE state='MI' # Показать все данные из таблицы 'mytable'. SELECT * FROM mytable

UPDATE

UPDATE table SET column=value, . . . [WHERE clause]

Изменяет данные в таблице. Используется для обновления существующих данных, не изменяя саму таблицу.

Пример

# Изменить имя 'John Deo' на 'John Doe' во всей таблице 'people'. UPDATE people SET name='John Doe' WHERE name='John Deo'


Содержание раздела