DESCRIBE

Автор: manager Среда, Март 26th, 2008 Нет комментариев

Рубрика: MySQL

DESCRIBE

СИНТАКСИС:

(DESCRIBE | DESC) table [column]

ОПИСАНИЕ:

Описывает таблицу или столбец. Эта команда подобна команде SHOW. Факультативный параметр [column] может быть именем столбца или строкой. Если [column] — строка, он может содержать символы подстановки.

DROP

СИНТАКСИС:

DROP TABLE table_name [table_name ...]

ОПИСАНИЕ:

Удаляет (в оригинальной документации почему-то сказано, что роняет) одну или несколько таблиц.

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

ОСТЕРЕГАЙТЕСЬ! DROP TABLE полностью удалит именованную таблицу(ы) из вашей системы. Не предусмотрено никакого UNDO или UNERASE (если Вы не имеете резервной копии, конечно).

Вы должны иметь права доступа delete, чтобы использовать DROP.

DROP INDEX

СИНТАКСИС:

DROP INDEX index_name

ОПИСАНИЕ:

Эта команда ничего не делает. Чтобы удалить индекс, Вы должны использовать команду ALTER TABLE.

DROP INDEX предусмотрен по причине совместимости. Это вводит в заблуждение некоторые клиенты, которые думают, что получили то, что они просили. Прежде всего это касается тупых ODBC драйверов.

GRANT

СИНТАКСИС:

GRANT (ALL PRIVILEGES | (SELECT, INSERT, UPDATE, DELETE, REFERENCES
(column list), USAGE)) ON table TO user,… [WITH GRANT OPTION]
ОПИСАНИЕ:

Команда GRANT ничего не делает. Она всегда возвращает истину и нужна прежде всего, чтобы ввести в заблуждение некоторые прикладные программы, которые используют ODBC и думают, что команда GRANT, которую они выдали, что-то сделала. Вообще, ODBC такая библиотека, что для совместимости с ней предусмотрена не одна функция… См. главу Администрирование пакета для получения подробностей по поводу прав доступа в MySQL.

SELECT

СИНТАКСИС:

SELECT [STRAIGHT_JOIN] [DISTINCT | ALL] select_expression,…
[FROM tables... [WHERE where_definition] [GROUP BY column,...]
[ORDER BY column [ASC | DESC], …] HAVING full_where_definition
[LIMIT [offset,] rows] [PROCEDURE procedure_name]]
[INTO OUTFILE 'file_name'... ]
Здесь where_definition:

where_definition:
where_expr or where_expr [AND | OR] where_expr
where_expr имеет формат:
where_expr:
column_name [> | >= | = | | <= | = B) AND (A <= C).
BIT_COUNT() Количество бит.
ELT(N,a,b,c,d) Возвращает a, если N == 1, b, если N == 2 и т. д. a,b,c,d строки.
ПРИМЕР:

ELT(3,"First","Second","Third","Fourth")
вернет "Third".

FIELD(Z,a,b,c) Возвращает a, если Z == a, b, если Z == b и т. д. a,b,c,d строки.
ПРИМЕР:

FIELD("Second","First","Second","Third","Fourth")
вернет "Second".

IF(A,B,C) Если A истина (!= 0 and != NULL), то вернет B, иначе вернет C.
IFNULL(A,B) Если A не null, вернет A, иначе вернет B.
ISNULL(A) Вернет 1, если A == NULL, иначе вернет 0. Эквивалент ('A == NULL').
NOT ! NOT, вернет TRUE (1) или FALSE (0).
OR, AND Вернет TRUE (1) или FALSE (0).
SIGN() Вернет -1, 0 или 1 (знак аргумента).
SUM() Сумма столбца.
= <= = > Вернет TRUE (1) или FALSE (0).
expr LIKE expr Вернет TRUE (1) или FALSE (0).
expr NOT LIKE expr Вернет TRUE (1) или FALSE (0).
expr REGEXP expr Проверяет строку на соответствие регулярному выражению expr.
expr NOT REGEXP expr Проверяет строку на соответствие регулярному выражению expr.

select_expression может также содержать один или большее количество следующих математических функций

ABS() Абсолютное значение (модуль числа).
CEILING() ()
EXP() Экспонента.
FORMAT(nr,NUM) Форматирует число в формат '#,###,###.##' с NUM десятичных цифр.
LOG() Логарифм.
LOG10() Логарифм по основанию 10.
MIN(),MAX() Минимум или максимум соответственно. Должна иметь при вызове два или более аргументов, иначе рассматривается как групповая функция.
MOD() Остаток от деления (аналог %).
POW() Степень.
ROUND() Округление до ближайшего целого числа.
RAND([integer_expr]) Случайное число типа float, 0 <= x <= 1.0, используется integer_expr как значение для запуска генератора.
SQRT() Квадратный корень.

select_expression может также содержать одну или больше следующих строковых функций.

CONCAT() Объединение строк.
INTERVAL(A,a,b,c,d) Возвращает 1, если A == a, 2, если A == b… Если совпадений нет, вернет 0. A,a,b,c,d… строки.
INSERT(org,strt,len,new) Заменяет подстроку org[strt...len(gth)] на new. Первая позиция строки=1.
LCASE(A) Приводит A к нижнему регистру.
LEFT() Возвращает строку символов, отсчитывая слева.
LENGTH() Длина строки.
LOCATE(A,B) Позиция подстроки B в строке A.
LOCATE(A,B,C) Позиция подстроки B в строке A, начиная с позиции C.
LTRIM(str) Удаляет все начальные пробелы из строки str.
REPLACE(A,B,C) Заменяет все подстроки B в строке A на подстроку C.
RIGHT() Get string counting from right.
RTRIM(str) Удаляет хвостовые пробелы из строки str.
STRCMP() Возвращает 0, если строки одинаковые.
SUBSTRING(A,B,C) Возвращает подстроку из A, с позиции B до позиции C.
UCASE(A) Переводит A в верхний регистр.

И наконец несколько просто полезных функций, которые тоже можно применить в select_expression.

CURDATE() Текущая дата.
DATABASE() Имя текущей базы данных из которой выполняется выбор.
FROM_DAYS() Меняет день на DATE.
NOW() Текущее время в форматах YYYYMMDDHHMMSS или "YYYY-MM-DD HH:MM:SS". Формат зависит от того в каком контексте используется NOW(): числовом или строковом.
PASSWORD() Шифрует строку.
PERIOD_ADD(P:N) Добавить N месяцев к периоду P (в формате YYMM).
PERIOD_DIFF(A,B) Возвращает месяцы между A и B. Обратите внимание, что PERIOD_DIFF работает только с датами в форме YYMM или YYYMM.
TO_DAYS() Меняет DATE (YYMMDD) на номер дня.
UNIX_TIMESTAMP([date]) Возвращает метку времени unix, если вызвана без date (секунды, начиная с GMT 1970.01.01 00:00:00). При вызове со столбцом TIMESTAMP вернет TIMESTAMP.
date может быть также строкой DATE, DATETIME или числом в формате YYMMDD (или YYYMMDD).

USER() Возвращает логин текущего пользователя.
WEEKDAY() Возвращает день недели (0 = понедельник, 1 = вторник, …).

Групповые функции в операторе select:

Следующие функции могут быть использованы в предложении GROUP:

AVG() Среднее для группы GROUP.
SUM() Сумма элементов GROUP.
COUNT() Число элементов в GROUP.
MIN() Минимальный элемент в GROUP.
MAX() Максимальный элемент в GROUP.
Здесь MIN() и MAX() могут принимать строку или число в качестве аргумента. Эти функции не могут использоваться в выражении, хотя их параметр может быть выражением:

ПРИМЕР: "SUM(value/10)" нормально, но вот "SUM(value)/10" уже нет!

Строки автоматически конвертируются в числа и наоборот по мере необходимости (прямо как в perl). При использовании операторов = = как в инструкции WHERE, левая сторона определяет, выполняется ли тест с числами или со строками. Все сравнения строк независимы от регистра (ISO8859-1).
ПРИМЕР:

«a» < "b" ; Сравнение строк
"a" < 0 ; Сравнение строк
0 < "a" ; Сравнение чисел
a < 5 ; Если поле имеет тип CHAR, то сравниваются строки,
; иначе сравниваются числа.

Если надо учитывать регистр, используйте REGEXP в HAVING.
Имя столбца не должно иметь префикса таблицы, если данное имя столбца уникально.
В LIKE выражения % и _ могут предваряться символом \ для получения символьного выражения.
DATE является строкой с одним из синтаксисов:
YYMMDD (Год считается 2000, если YY 10
Вместо этого, используйте нечто вроде следующего (это хороший пример использования псевдонимов столбцов):
SELECT user,MAX(salary) AS sum FROM users GROUP BY users HAVING sum > 10

LIMIT принимает один или два аргумента. Один аргумент задает максимальное число строк в результате. В случае двух аргументов этот максимум задает второй аргумент, а первый указывает смещение первой строки.
INTO OUTFILE ‘filename’ пишет результаты в файл. Файл не должен существовать на момент выполнения этой команды. См. раздел LOAD DATA INFILE для более подробной информации. Это может быть весьма опасной командой, если daemon запущен от имени root. Самое лучшее предоставить право доступа file только когда это абсолютно необходимо.

Вы можете использовать числовое значение в предложении ORDER BY для определения столбца, который Вас интересует. ТО ЕСТЬ, если Вы желаете провести сортировку второго столбца, определенного в вашем запросе SELECT, следует написать «ORDER BY 2;». Это также полезно, когда Вы использовали функцию в вашем SELECT.
ПРИМЕР:

SELECT Widget_Table.widget_id, Widget_Table.widget_name,
Purchase_Order_Item.widget_id, sum(Purchase_Order_Item.quantity)
FROM Widget_Table, Purchase_Order_Item
WHERE Widget_Table.widget_id = Purchase_Order_Item.widget_id
GROUP BY Widget_Table.widge t_name ORDER BY 4;

Оставить комментарий

Чтобы оставлять комментарии Вы должны быть авторизованы.

Похожие посты