
- •Типы данных столбцов
- •Пример:
- •То автоматически генерируется уникальный id (то же, если поле id вообще не указывать в команде вставки).
- •Обычно, следует выполнять select для set-столбца, используя оператор like или функцию find_in_set():
- •Но и такая форма также работает:
- •'Yyyy-mm-dd',yy-mm-dd' Например '98-12-31', "98.12.31', '98/12/31'
- •Примеры
- •Describe messy # Описать таблицу 'messy'
- •Show databases # Показать все доступные бд
- •Например, drop table people, animals, plants удалит эти три таблицы. Drop table oh_no, help_me, dont_do_it # Удалить таблицы 'oh_no', 'help_me' и 'dont_do_it'
- •Например, можно указать следующее:
- •Но нельзя указать:
- •Например:
- •Быстрая загрузка данных
- •Синтаксис оператора truncate
- •Примеры:
- •# Скопировать все записи, которые старше определенной даты, из таблицы 'data' в таблицу 'old_data'. Обычно за этим следует удаление старых записей из 'data'.
- •(Например, select name from people; select mydata.People.Name from people ).
- •Пример: select date_format(date, "%w, %m %d %y") as nice_date from calendar
- •Пример: # Псевдоним колонки
- •# Псевдоним таблицы в MySql
- •Подзапросы -- Язык sql разрешает использовать в других операторах языка dml подзапросы, которые являются внутренними запросами, определяемыми оператором select.
- •Выбрать заглавие статьи, полный текст ее, и длину (в байтах) полного текста для всех статей, автор которых Stacie Sheldon. Функция lengtho возвращает длину заданной строки в символах.
- •Применение подзапросов в операторах изменения данных
- •Функции условий
- •Математические функции
- •Строковые функции
- •Дата и время
- •Остальные функции
- •Демонстрируется использование mysql в качестве несложного калькулятора:
- •Проверка таблицы при помощи команды describe:
- •Выборка всех данных
- •Выборка определенных строк. Выборка с условием
- •Операторы and и or можно использовать совместно.
- •Выборка определенных столбцов Достаточно просто перечислить имена нужных столбцов, разделив их запятыми.
- •Получить имена владельцев животных можно с помощью следующего запроса:
- •Предположим, нужно узнать, в каком возрасте животные давали приплод:
- •В этом запросе мы указываем псевдонимы имен таблицы, для обращения к столбцам и определения, к какой из таблиц относится каждая ссылка на столбец.
- •Сортировку можно проводить по нескольким столбцам сразу.
- •Отсортировать результаты по возрасту также можно при помощи выражения orderby:
- •Максимальное значение столбца
Примеры
# Добавить поле 'address2' к таблице 'people' и. задать ему тип данных 'VARCHAR' с максимальной длиной 200 символов.
ALTER TABLE people ADD COLUMN address2 VARCHAR(100)
# Добавить два новых индекса к таблице 'hr', обычный индекс для поля 'salary' и уникальный индекс для поля 'id'. Также продолжить выполнение, если найдены дублируемые значения при создании индекса 'id_idx' (очень опасно!).
ALTER TABLE hr ADD INDEX salary_idx ( salary )
ALTER IGNORE TABLE hr ADD UNIQUE id_idx ( id )
# Изменить значение по умолчанию для поля 'price' в таблице 'sprockets' на $19.95.
ALTER TABLE sprockets ALTER price SET DEFAULT '$19.95'
# Удалить значение по умолчанию для поля 'middle_name' в таблице 'names'.
ALTER TABLE names ALTER middle_name DROP DEFAULT
# Изменить тип данных для поля 'profits' с начального значения (которым, возможно, было INTEGER) на BIGINT.
ALTER TABLE finanaces CHANGE COLUMN profits profits BIGINT
# Удалить поле 'secret_stuff' из таблицы 'not_private_anymore'
ALTER TABLE not_private_anymore DROP secret_stuff
# удалить индекс с именем 'id_index' также как и первичный ключ из таблицы 'cars'.
ALTER TABLE cars DROP INDEX id_index, DROP PRIMARY KEY
# Переименовать таблицу 'rates_current' на 'rates_1997'
ALTER TABLE rates_current RENAME AS rates_1997
Определение требований к операционной обстановке
Для выполнения этого этапа необходимо знать (хотя бы ориентировочно) объём хранимых записей, а также иметь представление о характере и интенсивности запросов.
Объём внешней памяти, необходимый для функционирования системы, складывается из двух составляющих: память, занимаемая модулями СУБД (ядро, утилиты, вспомогательные программы), и память, отводимая под данные (МД). Наиболее существенным обычно является МД. Объём памяти МД, требуемый для хранения данных, можно приблизительно оценить по формуле
,
где li– длина записи в i-й таблице (в байтах), Ni– примерное (максимально возможное) количество записей в i-й таблице, Na– количество записей в архиве i-й таблицы. Коэффициент 2 перед суммой нужен для того, чтобы выделить память для хранения индексов, промежуточных данных, для выполнения объёмных операций (например, сортировки) и т.п.
Объём памяти, занимаемый программными модулями пользователя, обычно невелик по сравнению с объёмом самих данных, поэтому может не учитываться. Требуемый объём оперативной памяти определяется на основании анализа интенсивности запросов и объёма результирующих данных.
(DESCRIBE | DESC) table [column]
Описывает таблицу или столбец. [column] - строка, он может содержать символы подстановки.
Describe messy # Описать таблицу 'messy'
DESC big my\_% # Показать информацию о всех столбцах таблицы 'big начинающихся с 'mу_'
Выводит различную информацию о системе MySQL. Выражение можно использовать для выяснения статуса или структуры практически любой части
SHOW DATABASES [LIKE wild]
SHOW KEYS FROM table_name
SHOW TABLES [FROM database] [LIKE wild]
SHOW [COLUMNS|FIELDS] FROM table [FROM database] [LIKE wild]
SHOW INDEX FROM table [FROM database]
SHOW COLUMNS FROM table [FROM database] [LIKE clause]
SHOW FIELDS FROM table [FROM database] [LIKE clause]
SHOW STATUS
SHOW TABLE STATUS [FROM database] [LIKE clause]
SHOWVARIABLES[LIKEclause]
Отображает информацию о базе данных MySQL
ПРИМЕР:
mysql> SHOW fields FROM Widget_Table from WidgetDB;
Field |
Type |
Null |
Key |
Default |
Extra |
|
|
widget_id |
mediumint(8) |
PRI |
0 |
auto_increment |
|
|
|
widget_name |
char(60) |
|
MUL |
|
|
|
|
widget_color_id |
mediumint(8) |
|
MUL |
0 |
|
|
|
widget_size_id |
mediumint(8) |
|
|
0 |
|
|
|
widgets_on_hand |
smallint(5) |
|
|
0 |
|
|
|
widget_price |
float(8,2) |
|
|
|
0.00 |
|
|
commission_percent |
float(4,2) |
|
|
|
0.00 |
|
|
Nullбудет содержатьYES, если это поле может быть равнымNULL,Keyсообщает имеет ли это поле индекс, Default сообщает значение по умолчанию, которое будет назначено этому полю, если там ничего не окажется после выполнения команды INSERT, Extra