Меню

Mysql как вывести структуру таблицы

Mysql как вывести структуру таблицы

Про Postgresql есть отдельная статья

PostgreSQL изображение с сайта www.andreyolegovich.ru

Подключение к базе даных MySQL

Из консоли наберите

mysql -h ip_вашей_базы_данных -u имя_пользователя -p

Нажмите Enter и введите пароль.

Если вы подлючаетеся к базе данных своего сайта и не знаете ip сделайте в консоли.

Например, сайт andreyolegovich.ru имеет IP 87.236.19.34

Базы данных изображение с сайта www.andreyolegovich.ru

После ввода пароля должно появиться приветствие MySQL

Базы данных изображение с сайта www.andreyolegovich.ru

Посмотреть все базы данных можно с помощью команды

Обратите внимание на точку с запятой в конце

Выбрать определённую БД

Как узнать какие таблицы находятся в БД MySQL

Посмотреть список содержащихся в БД таблиц

Как посмотреть содержимое таблицы MySQL

Посмотреть структуру определённой таблицы

Посмотреть содержание определённой таблицы

Упорядоченный по ID вывод таблицы имя_таблицы

SELECT * FROM имя_таблицы ORDER BY ID;

В обратном порядке:

SELECT * FROM имя_таблицы ORDER BY ID DESC;

Запрос с условием показать только китайских производителей

SELECT * FROM table_manuf WHERE (country=’China’);

Запрос с условием показать только страны с кодом 7 или 358

SELECT * FROM table_countries WHERE (code=’7′ OR code=’358′);

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

Переименовать таблицу car в auto с помощью ALTER TABLE (mysql.ru)

ALTER TABLE car RENAME auto;

Как добавить столбец в таблицу MySQL

Добавить новый столбец типа TEXT с именем Body:

ALTER TABLE имя_таблицы ADD Body text;

Как добавить строку в таблицу БД

Добавляем запись в таблицу с названием Имя_таблицы

INSERT INTO Имя_таблицы VALUES(100, ‘Компания’, ‘Страна’, ‘Что-то ещё’);

Как удалить строку в таблице БД

Удалить строку с ID 1 в таблице с названием Имя_таблицы

DELETE FROM Имя_таблицы WHERE ;

Как изменить значение в таблице MySQL

Изменить поле Country на Russia у записи с ID 7

UPDATE имя_таблицы SET Country = ‘Russia’ WHERE ;

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

Ищем по всей базе данных таблицы у которых есть столбец с именем Name

SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = ‘Name’;

Как обратиться к базе данных с помощью PHP

$connection = mysql_connect(«localhost», «Имя_БД» , «Пароль к БД для localhost подключения»); $db = mysql_select_db(«Имя_БД»); if(!$connection || !$db) < mysql_error(); >?> mysql_connect(‘localhost’, ‘Имя_БД’,’Пароль к БД для localhost подключения’); mysql_select_db(‘Имя_БД’); $res = mysql_query(«SELECT * FROM `Название_таблицы`») or die(mysql_error()); echo’

‘; while($row = mysql_fetch_assoc($res)) < echo '

‘; > echo ‘

ID Company Country
‘.$row[‘ID’].’ ‘.$row[‘Company’].’ ‘.$row[‘Country’].’

‘; echo’ ‘; echo’ ‘;

Ошибки

MS SQL

Вывести на экран список таблиц MS SQL

SELECT TABLE_NAME FROM information_schema.tables select table_name, column_name from information_schema.columns;

Ошибки MS SQL

server management studio error 4064

Если при попытке соединения с базой данных Вы получаете следующую ошибку:

Cannot open user default database. Login failed.
Login failed for user ‘UserName’. (Microsoft SQL Server, Error: 4064)

Базы данных изображение с сайта www.andreyolegovich.ru Microsoft SQL Server Management Studio Error 4064

Перейдите в Options

Microsoft SQL Server Management Studio SQL Server Options

Если в поле Connect to database: стоит замените его на имя Вашей базы данных.

Microsoft SQL Server Management Studio Error 4064 SQL Server Connection Properties

В данном примере вместо andreyolegovich.ru_db должно быть имя базы данных, к которой Вы хотите подлючиться.

Microsoft SQL Server Management Studio Error 4064 SQL Server Connection Properties

Postgres

Получить список таблиц Postgres

select table_name from information_schema.tables;

Получить список таблиц и столбцов Postgres

select table_name, column_name from information_schema.columns;

Получить список таблиц исключая служебные и отсортировать по имени таблицы

select table_name from information_schema.tables where table_schema=’public’ ORDER BY table_name;

Выбрать из таблицы диапазон значений

select * from table where (number > ‘111’ and number mysql -h XXX.XXX.XXX.XXX -u username -p USE db_name; SHOW tables; MY_QUERY

Где XXX.XXX.XXX.XXX — IP адрес сервера на котором установлена БД

username нужно заменить на настоящее имя пользователя БД

db_name — заменить на настоящее имя БД.

Вполне возможен вариант, когда username и db_name одинаковые

Tables_in_db_name
Table01
Table02

Ошибки при работе с Postgres

Вы хотите удалить что-то из таблицы TABLE_NAME , но получаете ошибку

ERROR: update or delete on table » TABLE_NAME violates foreign key constraint » fk_ANOTHER_TABLE_SOME_id » on table » ANOTHER_TABLE » DETAIL: Key (id)=( SOME_ID ) is still referenced from table » ANOTHER_TABLE «. SQL state: 23503

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

Чтобы её обойти нужно удалить элементы другой таблицы ( ANOTHER_TABLE ) которые ссылаются на ту, из которой Вы хотите удалить ( TABLE_NAME ).

Вычислить эти элементы можно по значению Key ( SOME_ID )

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

Ошибки MySQL

Ошибка: 1064

ERROR 1064 (42000) at line 3: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘

Говорит о том, что в синтаксисе допущены ошибки. Допустим, Вы создаёте таблицу и задаёте столбцы неправильно.

Например, вместо , ставите ;

id INT ; model VARCHAR(20) ; modified_time TIMESTAMP ; name VARCHAR(20) ;

Или не указали длину для VARCHAR

id INT, model VARCHAR, modified_time TIMESTAMP, name VARCHAR,

Это легко исправить

id INT, model VARCHAR(20), modified_time TIMESTAMP, name VARCHAR(20),

Изучите внимательно документацию по MySQL

Ошибка: Table X already exists

ERROR 1050 (42S01) at line 3: Table ‘tableName’ already exists

Источник



Полезные команды MySQL

Авторизация на сервере (из консоли), -h при необходимости авторизации на удалённом сервере

mysql -h hostname -u root -p

Создание БД

mysql> create database `databasename`;

Создание БД с указанием необходимой кодировки

mysql> create database `databasename` default character set ‘utf8’ collate ‘utf8_unicode_ci’;

Получить список всех БД на сервере

mysql> show databases;

Переключится на БД

mysql> use `db name`;

Получить список таблиц в базе

mysql> show tables;

Посмотреть структуру таблицы

mysql> describe `table name`;

Ещё один вариант

mysql> show columns from `table name`;

Удалить БД

mysql> drop database `database name`;

Удалить таблицу

mysql> drop table `table name`;

Показать все данные в таблице

mysql> SELECT * FROM `table name`;

Показать строки, где поле `field name` имеет значение «whatever».

mysql> SELECT * FROM `table name` WHERE `field name` = ‘whatever’;

Показать строки с именем «Bob» и номеном «3444444»

mysql> SELECT * FROM `table name` WHERE name = ‘Bob’ AND phone_number = 3444444;

Показать строки с номером «3444444» не содержащие имени «Bob» отсортированные по номеру.

mysql> SELECT * FROM `table name` WHERE name != ‘Bob’ AND phone_number = 3444444 order by phone_number;

Показать записи с именем, начинающимся на «bob» и номером 3444444

mysql> SELECT * FROM `table name` WHERE name like ‘Bob%’ AND phone_number = 3444444;

Верннуть все данные с именем, начинающемся на «bob» и номером 3444444 ограничить вывод пятью первыми строками

mysql> SELECT * FROM `table name` WHERE name like ‘Bob%’ AND phone_number = 3444444 limit 0,5;

Используем регулярное выражение. Для регистрозависимого выбора используйте «REGEXP BINARY». Данный запрос найдёт все записи, начинающиеся на «a»

mysql> SELECT * FROM `table name` WHERE rec RLIKE ‘^a’;

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

mysql> SELECT DISTINCT `column name` FROM `table name`;

Показать выбранные колонки отсортированные от а до я (ASC) или от я до а (DESC)

mysql> SELECT `col1`,`col2` FROM `table name` ORDER BY `col2` DESC;

Вернуть количество строк в таблице.

mysql> SELECT COUNT(*) FROM `table name`;

Просуммировать все числовые поля таблицы

mysql> SELECT SUM(*) FROM `table name`;

Объединение таблиц. Как работает JOIN (в картинках)

mysql> select lookup.illustrationid, lookup.personid,person.birthday from lookup left join person on lookup.personid=person.personid=statement to join birthday in person table with primary illustration id;

Создание пользователя. Вход под root. Переключение на БД mysql. Создание пользователя и обновление привилегий.

mysql -u root -p mysql> use mysql;
mysql> INSERT INTO user (Host,User,Password) VALUES(‘%’,’username’,PASSWORD(‘password’));
mysql> flush privileges;

Смена пароля пользователя из консоли

mysqladmin -u username -h hostname -p password ‘new-password’

Смена пароля пользователя из консоли MySQL. Вход как root. Смена пароля. Обновление привелегий.

mysql -u root -p mysql> SET PASSWORD FOR ‘user’@’hostname’ = PASSWORD(‘passwordhere’);
mysql> flush privileges;

Восстановление пароля root пользователя. Остановить MySQL сервер. Запустить с пониженной безопасностью. Залогинится на MySQL как root. Установить новый пароль. Разлогинится и перезапустить MySQL сервер.

/etc/init.d/mysql stop
mysqld_safe —skip-grant-tables &
mysql -u root mysql> use mysql;
mysql> update user set password=PASSWORD(‘newrootpassword’) where User=’root’;
mysql> flush privileges;
mysql> quit /etc/init.d/mysql stop
/etc/init.d/mysql start

Установка пароля root если он ещё не задавался ранее

mysqladmin -u root password newpassword

Смена пароля root

mysqladmin -u root -p oldpassword newpassword

Разрешить пользователю «Bob» подключаться к серверу c локального адреса с паролем «passwd». Войти как root. Переключиться на БД mysql. Дать привилегии. Обновить привелегии.

mysql -u root -p mysql> use mysql;
mysql> grant usage on *.* to bob@localhost identified by ‘passwd’;
mysql> flush privileges;

Предоставить пользователю привилегии на БД. Авторизоваться как root. Переключиться на БД mysql. Предоставить привилегии. Обновить кеш привилегий.

mysql -u root -p mysql> use mysql;
mysql> INSERT INTO user (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv) VALUES (‘%’,’databasename’,’username’,’Y’,’Y’,’Y’,’Y’,’Y’,’N’);
mysql> flush privileges;

mysql> grant all privileges on databasename.* to username@localhost;
mysql> flush privileges;

Обновить информацию для существующего пользователя

mysql> use mysql;
mysql> UPDATE `user` SET Select_priv = ‘Y’,Insert_priv = ‘Y’,Update_priv = ‘Y’ where `User` = ‘user’;
flush privileges;

Удалить строки из таблицы

mysql> DELETE from `table name` where `field_name` = ‘whatever’;

Обновить кеш привилегий

mysql> flush privileges;

Удалить колонку из таблицы

mysql> alter table `table name` drop column `column name`;

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

mysql> alter table `table name` add column `new column name` varchar (20);

Переименовать колонку

mysql> alter table `table name` change `old column name` `new column name` varchar (50);

Сделать данные в колоке уникальными (если дублирующиеся уже есть — будет ошибка)

mysql> alter table `table name` add unique (`column name`);

Модифицировать колонку

mysql> alter table `table name` modify `column name` VARCHAR(3);

Удалить индекс

mysql> alter table `table name` drop index `colmn name`;

Загрузить данные в БД из CSV файла.

mysql> LOAD DATA INFILE ‘/tmp/filename.csv’ replace INTO TABLE `table name` FIELDS TERMINATED BY ‘,’ LINES TERMINATED BY ‘\n’ (field1,field2,field3);

Сделать дамп всех БД для бэкапа. Бэкап это файл с SQL командами для воссоздания всех баз.

mysqldump -u root -p —opt > /tmp/alldatabases.sql

Сделать дамп одной базы.

mysqldump -u username -p —databases databasename > /tmp/databasename.sql

Сделать дамп одной таблицы

mysqldump -c -u username -p databasename tablename > /tmp/databasename.tablename.sql

Восстановить БД (или таблицу) из бэкапа

mysql -u username -p databasename CREATE TABLE `table name` (
`firstname` VARCHAR(20),
`middleinitial` VARCHAR(3),
`lastname` VARCHAR(35),
`suffix` VARCHAR(3),
`officeid` VARCHAR(10),
`userid` VARCHAR(15),
`username` VARCHAR(8),
`email` VARCHAR(35),
`phone` VARCHAR(25),
`groups` VARCHAR(15),
`datestamp` DATE,
`timestamp` time,
`pgpemail` VARCHAR(255)
);

Создание таблицы, пример 2.

mysql> CREATE TABLE `table name` (
personid int(50) not null auto_increment primary key,
firstname VARCHAR(35),
middlename VARCHAR(50),
lastname VARCHAR(50) default ‘bato’
);

Источник

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[mysqld]

[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 через командную строку

День добрый, друзья! 🙂 Для подключения к mysql наберите

  • h — хост базы данных, если коннектимся к локальной базе (по ip 127.0.0.1), этот параметр можно опустить
  • u — имя пользователя
  • p — пароль, его нужно будет ввести после нажатия enter

Например, если нужно законнектиться к локальной быдухе под root`ом и пароль у него не установлен (пустой пароль — это плохо), достаточно написать

Если на экране появляется приветствие mysql, то всё прошло ok.

Для выхода из командной строки mysql можно написать exit, в linux достаточно нажать ctrl+C. Теперь можно писать любые mysql-запросы. Чтобы запрос выполнился, в конце обязательно нужно поставит точку с запятой «;». При написании длинных запросов удобно делать enter`ом переход на следующую строку. А после полного написание запроса поставить «;» и нажать «enter».

Для работы с конкретной базой данных нужно её выбрать с помощью оператора use. Показать все базы данных:

Результатом будет что то вроде этого:

Выбрать базу данных jeka:

Посмотреть названия всех таблиц в конкретной базе данных (после выполнения use):

Просмотреть структуру таблицы (имена и тип полей):

Достать информацию о юзере с >

Бэкап структуры таблицы, а точнее sql-запрос на её создание

Если в конце запроса поставить не ; а \G, то результат будет показан другим образом — иногда весьма удобно, если таблица имеет много полей:

mysql использования /G вместо; дебаг запроса.

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

Учтите, что будут отображены еще не выполненные (активные) запросы, поэтому show processlist; актуальная команды только для нагруженных БД, в других случаях маловероятно, что команда что то покажет.

Подробнее о том, как изменять структуру mysql-таблиц (alter table).

Что делать если вижу знаки вопросов вместо текста в MySQL?

Это проблема с кодировкой. Вероятно в my.ini файле mysql-сервера не добавлено:

Нужно добавить в .ini файл либо выполнить в консоли команду «SET NAMES utf8», после чего во время текущей сессии отображаться русский текст в mysql-консоли будет без проблем:

Как сделать бэкап базы mysql через консоль Linux?

Сделать бэкап базы database в файл dump_name.sql

[username] – имя пользователя который имеет доступ к базе данных.
[password] – пароль пользователя.
[database] – имя базы данных.
[dump_name.sql] – имя файла, дампа на выходе.

Развернуть базу из файла через командную строку

[username] – имя пользователя который имеет доступ к базе данных.
[password] – пароль пользователя.
[database] – имя базы данных.
[dump_to_restore.sql] – имя файла, из которого поднимаем базу

Сделать дамп структуры одной таблицы mysql (без данных):

Например, задампим таблицу users из базы данных mydatabase:

Развернуть mysql-dump в БД с именем database_name:

Ещё одна интересная штука. Выполнять из консоли, не требуется предварительно подключаться к mysql (mysql>). Вывести список таблиц базы данных, не подключаясь непосредственно к mysql:

Заключение

Может показаться, что писать запросы в командной строке не удобно. Но это заблуждение. На слабых машинах phpmyadmin работает не так шустро как хотелось бы. Тем более не на всех серверах стоят морды с phpmyadmin, adminer и т.д. Linux + mysql в терминале реально повысили мою производительность.

Дата добавления: 9 лет назад
теги постаmysql

  • Как добавить AI в существующую таблицу MySQL? 2 ответа
  • Установить mysql 5.6 на travis Решено!
  • Как обновить AI в mysql? Решено!
  • На PHP Access denied for user ‘root’@’localhost’, хотя через консоль подключается 1 ответ
  • MySQL ошибки Lost connection to MySQL server at ‘waiting for initial communication packet’ 1 ответ
  • MySQL — изменение полей, структуры таблицы 0 комментариев
  • Запросы инъекции для mysql 0 комментариев
  • Доступ к mysql из-вне3 комментария
  • Mysql перенос таблиц из одной базы данных в другую 0 комментариев
  • Анализ производительности MySQL с использованием performance_schema 0 комментариев

Комментарии 2

Viktor, спасибо. Судя по скринам, штука интересная.
Правда, уж больно много зависимостей она имеет.. Как решу проблему с зависимостями, отпишусь.

eugene-PC:www eugene$ eugene$ sudo rpm -ivh

Источник

Просмотр списка таблиц в базе данных MySQL

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

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

Показать таблицы MySQL

Чтобы получить список таблиц в базе данных MySQL, используйте клиентский инструмент mysql для подключения к серверу MySQL и выполните команду SHOW TABLES .

Доступ к серверу MySQL:

Из оболочки MySQL переключитесь на базу данных с помощью оператора USE :

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

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

Необязательный модификатор FULL покажет тип таблицы как второй выходной столбец.

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

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

Предложение LIKE можно использовать для фильтрации вывода команды SHOW TABLES соответствии с определенным шаблоном.

Например, следующий оператор вернет все базы данных, имена которых начинаются с ‘open’:

Знак процента ( % ) означает ноль, один или несколько символов.

Показать таблицы MySQL из командной строки

Чтобы получить информацию о таблицах из оболочки Linux, вы можете использовать команду mysql -e или команду mysqlshow которая отображает информацию о базах данных и таблицах.

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

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

В результате отобразится список всех таблиц:

Вот пример использования команды mysqlshow :

Вы можете отфильтровать вывод с помощью команды grep .

Выводы

Чтобы получить информацию о таблицах в базе данных MySQL, используйте команду SHOW TABLES .

Не стесняйтесь оставлять комментарии, если у вас есть вопросы.

Источник

Читайте также:  Сетка арматурная таблица весов
Adblock
detector