Список полей в конкретной таблице MySQL


Содержание

MySQL список таблиц и их структура

Команды для работы со списком таблиц и их структурой.

список баз данных

список таблиц в базе

список столбцов в таблице

показать структуру таблицы в формате «CREATE TABLE»

привилегии для пользователя.

значения системных переменных

статистика по mysqld процессам

статистика по всем таблицам в базе

статистика по всем таблицам wp_ в базе

Проверка настроек кодировки

Проверка настроек кодировки

Проверка кодировки текущей базы данных

Для настройки кодировки utf8 по умолчанию
Необходимо внести следующие изменения в файл my.cnf (my.ini):

[client]
default-character-set = utf8

Информация об установленной версии pkg_info | grep mysql (FreeBSD)

добавить столбец в таблице в базе mysql

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

внести изменения в столбцы таблицы

В будущем, если включите innodb_file_per_table, сможете уменьшать объем tablespace путем
пересоздания таблиц сразу в InnoDB (т.к. в режиме файл-на-таблицу файл при удалении таблицы
стирается) командой

Определение размера таблицы

Показывает обьем и количество строк в таблицах MySQL.

Перемещение таблицы MySQL в другую базу

Копирование таблицы MySQL в другую базу

Копирование таблицы MySQL в другую базу с условием

Копирование необходимых столбцов таблицы MySQL в другую базу

database1— база из которой копируем

database2 — база в которую копируем
table — название таблицы

Текущее состояние кэша

Посмотреть состояние кэша можно с помощью запроса:

  • Qcache_free_memory — объем свободной памяти, отведенной под кэш.
  • Qcache_hits — количество запросов, отработанных из кэша.
  • Qcache_inserts — количество вставок запросов в кэш.
  • Qcache_lowmem_prunes — количество высвобождений памяти из-за наполненности кэша.
  • Qcache_not_cached — количество запросов, не подлежащих кэшированию.
  • Qcache_queries_in_cache — количество запросов, находящихся в кэше в настоящее время.

Мерой эффективности кэша может служить отношение Qcache_hits / (Qcache_inserts + Qcache_not_cached).

Читайте другие интересные статьи

Понравилась статья, расскажи о ней друзьям, нажми кнопку!

Вывести список таблиц базы mysql с количеством записей в таблице, дата первой записи, дата последней записи

В базе данных есть таблицы в которых есть поле дата для каждой записи, например:

Количество таблиц неизвестно, могут добавляться новые или удаляться. Я знаю как вывести все таблицы с количеством записей например:

Вид будет такой:


А мне нужно чтобы вид был такой:

Надеюсь, что всё понятно объяснил. Для меня эта задача пока непосильная, хотел вывести на сайте данные из базы данных с помощью php скрипта. Буду благодарен за помощь, спасибо.

SHOW. Просмотр информации о таблицах и базах данных MySQL

Команда SHOW

С помощью команды SHOW можно просматривать информацию о колонках в таблицах и о самих базах данных, а также прочие данные о статистике и производительности сервера MySQL.

Далее рассмотрим несколько полезных применений команды SHOW .

В некоторых командах используется флаг — \G для более удобного вертикального вывода данных.

В квадратных скобках — [ ] указаны необязательные команды, которые могут дополнить детальность запроса.

Урок 2. Типы полей MySQL

В предыдущем уроке мы рассмотрели основные составляющие MySQL. Напомню, в базу данных входят таблицы, которые состоят из записей, а записи, в свою очередь, состоят из полей. Поле подразумевает два атрибута — имя и тип. Имя может быть любое, удобное Вам, а состоять должно из латинских букв и нижнего подчёркивания.

Имя: id, name, age, sex
Типы: INT, VARCHAR, INT, VARCHAR
Поля могут быть разного типа — с числами (разных величин), текстом, датой и так далее. Логично, если под определённые данные будет точно выбран тип поля.

Тип поля может быть:

1. Целым
2. Вещественным
3. Строковым
4. Бинарным
5. Дата и время
6. Перечисления и множества

Типы полей мы примерно сгруппировали. Теперь давайте приступим к знакомству с ними.

Типы полей в MySQL

Целочисленные типы данных

TINYINT — тип целых чисел. Диапазон значений от -127 до 128 (если может быть отрицательным), либо 0 до 255 (если не может быть отрицательным).

SMALLINT — тип целых чисел, В отличие от TINYINT диапазон значений значительно больше: -32 768 до 32 767 (если значение может быть отрицательным), либо от 0 до 65 535.

MEDIUMINT — тип целых чисел, однако диапазон значений ещё больше: от -8 388 608 до 8 388 607 (если возможны отрицательные), либо от до 16 777 215.

INT — тип целых чисел. Самый распространённый тип данных. Диапазон: от -2 147 483 648 до 2 147 483 647, либо от до 4 294 967 295.

BIGINT — ещё один тип целых чисел, с самым широким диапазоном значений. Используется редко, так как подобные масштабы значений бывают задействованы крайне редко. От -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807, либо от до 18 446 744 073 709 551 615.

Илон Маск рекомендует:  Что такое код swapmousebutton

Вещественные числа

FLOAT — вещественные числа. Точность одинарная. Число знаков после запятой может составлять не более 24-х. Диапазон значений: от -3,402823466E+38 до -1,175494351E-38, , и от 1,175494351E-38 до 3,402823466E+38.

DOUBLE — вещественный тип данных. Похож на FLOAT, но знаков после запятой больше в два раза. Количество знаков после запятой может составлять до 53-х. Допустимые значения: от -1,7976931348623157E+308 до -2,2250738585072014E-308, , и от 2,2250738585072014E-308 до 1,7976931348623157E+308.

DECIMAL — вещественный тип данных, хранится в виде строки. Используется редко. При отсутствии знаков и . диапазон значений такой же как у DOUBLE.

Строки

TEXT (BLOB) — стандартный строковый тип данных. Максимальная длина 65 535 символов. Самый используемый вариант при хранении текстовых данных.

TINYTEXT (TINYBLOB) — строковый тип. Текст с длиной от до 255 символов.

MEDIUMTEXT (MEDIUMBLOB) — строковый тип. Текст с длиной от до 16 777 215 символов.

LONGTEXT (LONGBLOB) — строковый тип. Текст с длиной от до 4 294 967 295 символов.

VARCHAR — ещё один строковый тип данных, причём строкой переменной длины от 0 до 255 символов. Чаще всего используется для сохранения переменных с логином, паролем и прочими пользовательскими данными.

CHAR — строковый тип данных. Длина фиксированная (независимо от количества переданных символов). Диапазон составляет от 0 до 255 символов. При передаче данных меньше 255 символов в конце к данным дописываются пробелы, чтобы длина строки достигла заданного размера.

Бинарные типы данных

TINYBLOB — бинарный тип данных. Максимум 255 символов.

BLOB — бинарный тип. Максимум 65535 символов.

MEDIUMBLOB — бинарный тип данных. Максимум 16 777 215 символов.

LONGBLOB — бинарный тип данных. Максимум 4 294 967 295 символов.

Дата и время

DATE — тип данных, хранящий дату. Формат следующий: YYYY-MM-DD (год, месяц, день). Например, такое значение будет удовлетворять этому полю: 2011-01-02.


DATETIME — тип данных, хранящий дату и время. Формат следующий: YYYY-MM-DD HH:MM:SS (год-месяц-день час-минута-секунда). Например: 2011-01-21 09:41:22

TIMESTAMP — тип данных, хранящий дату и время. Имеет следующие форматы: YYYYMMDDHHMMSS, YYMMDDHHMMSS, YYYYMMDD, YYMMDD.

TIME — тип данных, хранящий время. Формат: HH:MM:SS. Например: 09:21:55.

YEAR — тип данных, хранящий дату (год). Форматы: YY, YYYY.

Списки значений

ENUM — тип данных, содержащий список значений. Значение данного типа должно быть из списка допустимых строковых значений (аналог radiobutton). Максимальное количество значений 65535.

SET — тип данных, содержащий список значений. В отличие от ENUM может быть выбрано несколько значений (аналог checkbox). Максимальное количество значений, хранимых в SET — 64.

Атрибуты полей

Атрибут AUTO_INCREMENT — генерирует новое порядковое значение для строк.
Атрибут UNSIGNED — данное числовое значение будет неотрицательным.

Теперь вы ознакомлены с основными типами полей в MySQL. Все поля не за чем использовать, пригодятся в работе максимум 10 из них, поэтому не старайтесь запомнить всю информацию по ним.

Часто используемые типы полей MySQL

INT — по праву самый распространённый тип. Практически в каждой таблице есть поле ID (уникального идентификатора), автоматически назначаемый для каждой записи.

VARCHAR — популярен для сохранения данных пользователей — логинов, паролей, имён, фамилий и других подобных полей.

TINYINT — используется для активации пользователей (например, 0 не активирован, 1 — активирован), статей, объявлений и прочих данных. Также используется в других ситуациях, где используются так называемые флаги. Например, 1 — Гость, 2 — Зарегистрированный, 3 — Модератор, 4 — Администратор.

TEXT — текстовый тип данных. Очень часто используется для хранения статей, сообщений и прочих записей.

DATETIME — у каждого сообщения, статьи, записи, регистрации пользователя, в конце концов, есть время создания, последнего редактирования и так далее. Для это часто используют данный тип.

ENUM — используется в сочетании с другими типами данных. Для словесного описания какого-либо функционала или сохранения версии ресурса на другом языке (английский и тд). Меню — Menu и так далее.

MySQL: Полный список часто используемых и полезных команд

Ежедневно разработчикам и администраторам приходится держать в памяти большое количество часто используемых команд. Кто-то ищет их в гугле, кто-то держит у себя в букмарках, кто-то написал «на коленке» себе программу для складирования нужных заметок. Для тех, кто все же ищет через поисковик мы собрали список часто используемых команд MySQL.

Полный список часто используемых и полезных команд:

Как войти в консоль MySQL:

Как задать пароль MySQL:

Как установить новый пароль для пользователя root:

Просмотр прав доступа в MySQL:

Как создать новую базу в MySQL:

CHARACTER SET, COLLATE — Используется для задания стандартной кодировки таблицы и порядка сортировки.

Как создать нового пользователя и дать ему доступ к базе данных:

Как посмотреть настройки уже существующей базы данных MySQL:

Как удалить базу данных в MySQL:

Как сделать дамп базы в MySQL:

Как залить данные из дампа в MySQL:

Как скопировать данные из одной таблицы в другую в MySQL:

Как вывести список баз данных в MySQL, к которым пользователь имеет доступ:

Как вывести список таблиц в MySQL, для выбранной базы:

Как просмотреть структуры таблицы в MySQL:

Конечно, это далеко не полный список т.к. команд и функций, которые могут выполняться на сервере очень много, но это точно самые востребованные.

Как определить размер таблиц в БД MySQL

Для определения размера таблиц в базе данных из командной строки, размещенной на сервере MySQL или MariaDB требуется 2 действия:
1. Подключиться к серверу баз данных, командой: mysql -u root -p (или просто mysql, если локально не требуется аутентификация)
2. Выполнить SQL запрос:
где, «DBName» — имя базы данных, для которой необходимо получить список таблиц с размерами

Чтобы определить список и размер таблиц (в килобайтах) базы данных mysql, необходимо будет выполнить запрос:
Результат выполнения SQL запроса будет примерно такой:


Для получения размера таблиц в Мегабайтах, необходимо строку:
заменить на
Если список таблиц очень большой, то можно сократить вывод добавив условие в конструкцию WHERE
где, TableName — имя таблицы, для который необходимо получить размер

Илон Маск рекомендует:  Что такое код ncurses_isendwin

Например, чтобы определить размер таблицы help_topic в базе данных mysql, необходимо будет выполнить SQL запрос:
Результат:

Если необходимо получить ограниченных список таблиц, например, содержащих определенные слова в названии, то можно сократить вывод добавив условие (Like «Filter») в конструкцию WHERE

Например, чтобы определить размер таблиц содержащих слово zone в названии таблицы в базе данных mysql, необходимо будет выполнить SQL запрос:

mysql_list_fields

mysql_list_fields — Возвращает список колонок таблицы

Данная функция объявлена устаревшей в PHP 5.4.0, и, вместе с расширением MySQL, удалена PHP 7.0.0. Вместо нее используйте активно развивающиеся расширения MySQLi или PDO_MySQL. Так же смотрите раздел MySQL: выбор API и это FAQ. Альтернативы для этой функции:

  • SQL запрос: SHOW COLUMNS FROM sometable

Описание

Возвращает информацию о таблице с переданным именем.

Эта функция устарела. Вместо нее рекомендуется использовать mysql_query() с SQL-запросом SHOW COLUMNS FROM table [LIKE ‘name’].

Список параметров

Имя опрашиваемой базы данных.

Имя опрашиваемой таблицы.

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect() . Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING .

Возвращаемые значения

Дескриптор результата ( resource ) в случае успеха, или FALSE в случае ошибки.

Возвращаемый результат может быть обработан с помощью следующих функций: mysql_field_flags() , mysql_field_len() , mysql_field_name() и mysql_field_type() .

Примеры

Пример #1 Пример использования mysql_list_fields()

Результатом выполнения данного примера будет что-то подобное:

Примечания

Для обратной совместимости может быть использован следующий устаревший псевдоним: mysql_listfields()

Смотрите также

  • mysql_field_flags() — Возвращает флаги, связанные с указанным полем результата запроса
  • mysql_info() — Возвращает информацию о последнем запросе

User Contributed Notes 7 notes

If you’re willing to use a lot of functions to get a little information about fields in a table, this function is for you. If you just want to get all the information you can find, you can use this:

// Taken from: http://ca.php.net/manual/en/function.mysql-field-flags.php
// Original by: amir at scrounch dot com
// Returns the name of the fields in the primary key for a table.
// Also keeps the fields in KEY order. Handy.
function getPrimaryKeyOf ( $table ) <
$keys = Array();

$query = sprintf ( «SHOW KEYS FROM `%s`» , $table );
$result = mysql_query ( $query ) or die( mysql_error ());

while ( $row = mysql_fetch_assoc ( $result )) <
if ( $row [ ‘Key_name’ ] == ‘PRIMARY’ )
$keys [ $row [ ‘Seq_in_index’ ] — 1 ] = $row [ ‘Column_name’ ];
>

// Returns a bunch of information about a table.
// The name of the auto-increment field, if any, fields in the
// primary key (using the function above), and all information
// about all fields.
function getTableInformationOf ( $table ) <
$information = array(
«auto» => «» ,
«primary» => array(),
«fields» => array()
);

$information [ ‘primary’ ] = $this -> getPrimaryKeyOf ( $table );

$result = mysql_query ( «DESC ` $table `» );
while ( $field = mysql_fetch_assoc ( $result ) ) <
$information [ ‘fields’ ][] = $field ;
if ( $field [ ‘Extra’ ] == «auto_increment» )
$information [ ‘auto’ ] = $field [ ‘Field’ ];
>

To make an array containing the names of a column from a table, you use the following simple script: (Note: using table1 with three columns)

= mysql_query ( «SHOW COLUMNS FROM table1» , $db ) or die( «mysql error» );
$numColumns = mysql_num_rows ( $qColumnNames );
$x = 0 ;
while ( $x $numColumns )
<
$colname = mysql_fetch_row ( $qColumnNames );
$col [ $colname [ 0 ]] = $colname [ 0 ];
$x ++;
>

/* it will have the following output
Array (
[firstcolumn] => firstcolumn
[secondcolumn] => secondcolumn
[thirdcolumn] => thirdcolumn
)
*/
?>

Or you can number the columns from zero. This help when using it in conjunction with mysql_fetch_row to get an array. You don’t have to remember which number of the array a certain column is.

= mysql_query ( «SHOW COLUMNS FROM table1» , $db ) or die( «mysql error» );
$numColumns = mysql_num_rows ( $qColumnNames );
$x = 0 ;
while ( $x $numColumns )
<
$colname = mysql_fetch_row ( $qColumnNames );
$col [ $colname [ 0 ]] = $x ;
$x ++;
>


/* it will have the following output
Array (
[firstcolumn] => 0
[secondcolumn] => 1
[thirdcolumn] => 2
)
*/
?>

To use it in conjuction with mysql_fetch_row:

= mysql_fetch_row ( «SELECT * from table1» , $db ) or die( «mysql error» );
?>

You can now call $row[col[firstcolumn]]. This becomes useful when you have a lot of columns.

Below script is used to get all coloumn indormation of an table.When we are working custome ORM then we need to match the coloumn name with array keys.

function getColoumn ( $table ) <
$result = mysql_query ( «SHOW COLUMNS FROM » . $table );
if (! $result ) <
echo ‘Could not run query: ‘ . mysql_error ();
>
$fieldnames =array();
if ( mysql_num_rows ( $result ) > 0 ) <
while ( $row = mysql_fetch_assoc ( $result )) <
$fieldnames [] = $row [ ‘Field’ ];
>
>

Every my html table output begins with heading row containing the field names. For that purpose I accepted the short combination of MySQL function, giving me a result similar to the mysql_fetch_array() for the row of values. The following example shows the basic idea. It should be adapted for the specific use:

//.
$field_names = array_keys ( mysql_fetch_array ( mysql_query ( $query , $link ), MYSQL_ASSOC ));
//.
?>

The advantage of this is, that it gives the names of the result, neither the field names of the whole table.
Please read the discussion about duplicate field names in SQL result carefully. The use, as shown in the example above, increments the pointer, hence some regular function, which does not, could be more useful :-)

MySQL/MariaDB: наиболее используемые команды, примеры

Ниже предоставлен список наиболее полезных и часто используемых команд MySQL с примерами.

Это перевод статьи отсюда>>> , с некоторыми незначительными изменениями и дополнениями.

mysql> в начале строки означает, что команда выполняется из MySQL-клиента.

Илон Маск рекомендует:  Tomorrow - Функция Delphi

Символ # или $ в начале строки означает, что команда выполняется из командной строки.

UPD 03.03.2020 Пост изначально был размещён в 2012-ом году, и стал самым читаемым в блоге — 198737 просмотров на данный момент. Сегодня его немного обновил — изменил форматирование текста команд, и разбил всё на разделы для простоты навигации по примерам.

Общие команды

Что бы проверить статус сервера MYSQL выполните:

Что бы подключиться к серверу MySQL из консоли, если сервер MySQL находится на том же хосте:

Что бы подключиться к серверу MySQL из консоли, если сервер MySQL находится на удаленном хосте db1.example.com :

Работа с базами и таблицами

Работа с базами

Создать базу данных на MySQL сервере:

Показать список всех баз данных на сервере MySQL:

Переключиться для работы с определенной базой данных:

Работа с таблицами

Отобразить все таблицы в базе данных:

Просмотреть формат таблицы в базе:

Показать все содержимое таблицы:

Отобразить количество строк в таблице:

Подсчитать количество колонок в таблице:

Удаление строки в таблице:

Удаление столбца из таблицы:

Удалить таблицу из базы:

Работа с колонками

Добавить колонку в таблицу:

Изменение имени колонки:

Создать колонку с уникальным именем, что бы избежать дубликатов в названиях:

Изменение размера колонки:

Выборка данных

Показать все содержимое таблицы:

Отобразить колонки и их содержимое в выбранной таблице:

Отобразить строки в определенной таблице, содержащие « whatever« :


Отобразить все записи в определенной таблице, содержащие « Bob » и телефонный номер « 3444444 :

Отобразить все записи, НЕ содержащие имя « Bob » и телефонный номер « 3444444 «, отсортированные по полю phone_number :

Показать все записи, начинающиеся с букв ‘ bob » и телефонного номера « 3444444 » в определенной таблице:

Показать все записи, начинающиеся с букв ‘ bob » и телефонного номера « 3444444 «, ограничиваясь записями с 1-ой до 5-ой:

Показать все уникальные записи:

Отобразить выбранные записи, отсортированные по возрастанию ( asc ) или убыванию ( desc ):

Регулярные выражения

Использование регулярных выражений ( «REGEXP BINARY» ) для поиска записей. Например, для регистро-независимого поиска — найти все записи, начинающиеся с буквы А :

Импорт и экспорт данных в/из файла

Загрузка файла CSV в таблицу:

Пользователи, пароли сервера MySQL:добавление, изменение пользователей и паролей

Создание нового пользователя — подключение к серверу MySQL под root , переключение к базе данных, добавление пользователя, обновление привилегий:

Изменений пользовательского пароля из консоли на удаленном хосте db1.example.org :

Изменение пользовательского пароля из консоли MySQL — подключение под root , обновление пароля, обновление привилегий:

Восстановление/изменение пароля root сервера MySQL — остановка MySQL, запуск без таблиц привилегий, подключение под root , установка нового пароля, выход и перезапуск MySQL.

Подробнее о восстановлении пароля root для MySQL написано тут>>>.

mysqli Как вывести имена полей таблицы в массив

вот функция в старом рабочем варианте

public function name_mass() < //Возвращает массив названий столбцов таблицы
$pass_baza=parent::bz_str();
$fields = mysql_list_fields(«Database», «table_name»);
$columns = mysql_num_fields($fields);
//echo «Количество полей-«.$columns.»
«;
for ($i = 0; $i Лучший ответ

Не знаю как php7 — что там нового, не думаю, что что-то кардинально изменилось, что надо весь php переучивать.
—————————————
This function was deprecated in PHP 5.4.0, and it and the entire original MySQL extension was removed in PHP 7.0.0. Instead, use either the actively developed MySQLi or PDO_MySQL extensions. See also the MySQL: choosing an API guide and its related FAQ entry for additional information. Alternatives to this function include:
——————————————

CREATE/DROP TABLE. Создание и удаление таблиц для базы данных в MySQL

Запрос на создание таблицы в MySQL

Для создания таблицы потребуется придумать:

  • Имя таблицы
  • Имена полей таблицы
  • Значения, которыми могут быть заполнены поля

Синтаксис запроса на создание таблицы.

Для примера создадим таблицу books со списком книг условной базы данных Bookstore.

Оповестим сервер MySQL с какой базой данных мы собираемся работать.

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

Составим запрос на создании таблицы со следующими полями:

  • id — Идентификатор записи.
  • title — название книги.
  • author — имя автора книги.
  • genre — жанр произведения в книге.
  • price — цена книги.
  • edition — номер издания.
  • isbn — номер ISBN.
  • page_num — число страниц в книге.
  • publish_year — год выхода книги в печать.
  • creation_date — дата создания записи (когда занесли книгу в БД).

После того как вы указали тип данных для поля, вы можете также указать дополнительные атрибуты:

  • UNSIGNED — позволяет увеличить диапазон числовых значений за счет отключения использования отрицательных чисел. Используется только с числовыми типами данных.
  • AUTO_INCREMENT — значение поля с этим атрибутом будет увеличиваться на 1 при каждом создании новой записи в таблице. Часто используется для автоматического заполнения полей с идентификатором записи.
  • PRIMARY_KEY — первичный ключ используется для идентификации записей в таблице. Первичным ключом может быть только уникальное значение поэтому чаще всего это значение поля id с атрибутом AUTO_INCREMENT .
  • NOT NULL — обязательное поле для заполнения (не может быть пустым).
  • DEFAULT — значение поля по умолчанию.

Каждая таблица должна иметь поле которое помечено как первичный ключ.

Создание таблицы в терминале:

]# mysql -u root -p
Enter password:
mysql> USE Bookstore;
Database changed

mysql> CREATE TABLE books(
-> >INT UNSIGNED AUTO_INCREMENT PRIMARY KEY ,
-> title VARCHAR(50) NOT NULL ,
-> author VARCHAR(50) NOT NULL ,
-> genre SET( ‘Драма’ , ‘Роман’ , ‘Повесть’ , ‘Рассказ’ , ‘Поэма’ ) ,
-> price DECIMAL(15,2) ,
-> edition TINYINT UNSIGNED DEFAULT ‘1’ NOT NULL ,
-> isbn VARCHAR(50) ,
-> page_num SMALLINT UNSIGNED ,
-> publish_year SMALLINT(4) ,
-> creation_date TIMESTAMP );
Query OK, 0 rows affected (0.22 sec)

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL