Базы данных
Про Postgresql есть отдельная статья
Подключение к базе даных MySQL
Из консоли наберите
mysql -h ip_вашей_базы_данных -u имя_пользователя -p
Нажмите Enter и введите пароль.
Если вы подлючаетеся к базе данных своего сайта и не знаете ip сделайте в консоли.
ping имя_вашего_сайта
Например, сайт aredel.com имеет IP 87.236.19.34
После ввода пароля должно появиться приветствие MySQL
Посмотреть все базы данных можно с помощью команды
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)
Перейдите в Options
Если в поле Connect to database: стоит <default> замените его на имя Вашей базы данных.
В данном примере вместо aredel.com_db должно быть имя базы данных, к которой Вы хотите подлючиться.
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