🏠 | 💻 PC | Базы данных |

Базы данных

Contents
MySQL
Подключение к базе даных MySQL
Как узнать какие таблицы находятся в БД MySQL
Как посмотреть содержимое таблицы MySQL
Как переименовать таблицу MySQL
Как добавить столбец в таблицу MySQL
Как добавить строку в таблицу БД
Как удалить строку в таблице БД
Как изменить значение в таблице MySQL
Как найти все таблицы с определённым столбцом
Как обратиться к базе данных внутри сайта
Как экспортировать и импортировать базу данных Mysql
Примеры скриптов
Errors MS SQL
Postgres

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

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

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

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

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

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

ping имя_вашего_сайта

Например, сайт aredel.com имеет IP 87.236.19.34

Базы данных image from website www.aredel.com

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

Базы данных image from website www.aredel.com

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

show databases;

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

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

use имя_базы_данных

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

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

show tables;

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

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

describe имя_таблицы;

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

SELECT * FROM ;

Упорядоченный по 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:

Типы столбцов (mysql.ru)

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

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

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

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

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

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

DELETE FROM Имя_таблицы WHERE ID='1';

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

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

UPDATE имя_таблицы SET Country = 'Russia' WHERE ID = '7';

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

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

SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = 'Name';

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

<?php $connection = mysql_connect("localhost", "Имя_БД" , "Пароль к БД для localhost подключения"); $db = mysql_select_db("Имя_БД"); if(!$connection || !$db) { mysql_error(); } ?> <?php mysql_connect('localhost', 'Имя_БД','Пароль к БД для localhost подключения'); mysql_select_db('Имя_БД'); $res = mysql_query("SELECT * FROM `Название_таблицы`") or die(mysql_error()); echo' <table border="1"> <tr> <td>ID</td> <td>Company</td> <td>Country</td> </tr>'; while($row = mysql_fetch_assoc($res)) { echo ' <tr> <td>'.$row['ID'].'</td> <td>'.$row['Company'].'</td> <td>'.$row['Country'].' </tr>'; } echo ' </table>'; echo' <form enctype="multipart/form-data" action="php_scripts/sort_01_mysql.php" method="get"><br> <input type="submit" value="Sort"></form>'; echo' <form enctype="multipart/form-data" action="php_scripts/clear_filter_01_mysql.php" method="get"><br> <input type="submit" value="Clear Filtering"></form>';

http://www.php.su/mysql_query

http://www.quizful.net/test
To подлючиться к Microsoft MS SQL нужно предварительно установить софт https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-tools#ubuntu

Errors

MS SQL

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

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

Errors MS SQL

server management studio error 4064

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

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

Базы данных image from website www.aredel.com Microsoft SQL Server Management Studio Error 4064

Перейдите в Options

Microsoft SQL Server Management Studio SQL Server Options

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

Microsoft SQL Server Management Studio Error 4064 SQL Server Connection Properties

В данном примере вместо aredel.com_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 < ‘100500’) order by number;

Примеры скиптов

Подразумевается, что мы работаем из Bash под Windows как её установить - читайте здесь

Создадим файл script

touch script

Отредактируем его, например, редактором vi

vi script

mysql -h XXX.XXX.XXX.XXX -u username -p <<MY_QUERY USE db_name; SHOW tables; MY_QUERY

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

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

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

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

bash script

Enter password:

Вводим пароль

Tables_in_db_name
Table01
Table02

CRUD

CRUD — акроним, обозначающий четыре базовые функции, используемые при работе с базами данных: создание (англ. create), чтение (read), модификация (update), удаление (delete). Введён Джеймсом Мартином (англ. James Martin) в 1983 году[2] как стандартная классификация функций по манипуляции данными.

В SQL этим функциям, операциям соответствуют операторы Insert (создание записей), Select (чтение записей), Update (редактирование записей), Delete (удаление записей). В некоторых CASE-средствах использовались специализированные CRUD-матрицы или CRUD-диаграммы, в которых для каждой сущности указывалось, какие базовые функции с этой сущностью выполняет тот или иной процесс или та или иная роль. В системах, реализующих доступ к базе данных через API в стиле REST, эти функции реализуются зачастую (но не обязательно) через HTTP-методы PUT, GET, PATCH и DELETE соответственно.

Хотя традиционно оперирование в стиле CRUD применяется к базам данных, такой подход может быть распространён на любые хранимые вычислительные сущности (файлы, структуры в памяти, объекты). Шаблон проектирования ActiveRecord обеспечивает соответствие функций CRUD объектно-ориентированному подходу, и широко используется в различных фреймворках для доступа к базам данных из объектно-ориентированных языков программирования.

Errors при работе с 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

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

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

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

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

Errors 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

Share in social media: