Что такое первичный ключ?
Это поле, значение которого является уникальным идентификатором записи таблицы. Это поле проиндексировано, а его значение сохраняется в каждом индексе.
Что такое mysql_pconnect? Чем он отличается от mysql_connect?
mysql_pconnect устанавливает постоянное соединение с базой данных, которое не закрывается после завершения работы скрипта.
Что такое MyISAM и InnoDB?
Это системы хранения данных в MySQL.
Чем они отличаются?
MyISAM – нет транзакций и внешних ключей, каждая таблица в своем файле, при записи блокируется вся таблица. Если только вставка или чтение, то быстрее InnoDB.
InnoDB — есть транзакции, внешние ключи, больше соответствует реляционной модели. Блокировка на уровне строк. Быстрее при смешанных операциях SELECT, INSERT, UPDATE.
Есть две таблицы: users — таблица с пользователями (users_id, name) orders — таблица с заказами (orders_id, users_id, status)
- Выбрать всех пользователей из таблицы users, у которых ВСЕ записи в таблице orders имеют status = 0;
- Выбрать всех пользователей из таблицы users, у которых больше 5 записей в таблице orders имеют status = 1;
|
SELECT u.* FROM users u WHERE users_id NOT IN ( SELECT users_id FROM orders o WHERE o.status <> 0 ) |
|
SELECT u.* FROM users u INNER JOIN ( SELECT users_id, COUNT(*) cnt FROM orders o WHERE o.status = 1 GROUP BY users_id ) q ON q.users_id = u.users_id WHERE q.cnt > 5 |
Какая разница между LEFT, RIGHT и INNER JOIN
INNER — выбираются только те строки, которые есть одновременно в объединяемых таблицах
LEFT — все из левой, отсутствующие в правой заполняются NULL
RIGHT — все из правой, отсутствующие в левой заполняются NULL
Что делает команда EXPLAIN?
Предоставляет информацию о порядке и методе связывания таблиц.
Как вывести все поля из таблицы my_table
Вывести всех производителей за исключением тех, которые находятся в Китае, Таджикистане и России; табл.: manufacture (id, country, count, date_add, tag)
|
SELECT * FROM manufacture WHERE country NOT IN ('Китай', 'Таджикистан', 'Россия') |
Мы не помним как точно пишется “Mercedes“ или “Mersedes“, но нужно из таблицы выбрать автобусы именно этой марки. Как быть? табл.: bus (id, name)
|
SELECT * FROM bus WHERE name LIKE 'Mer_edes' |
Порядок транзакции
|
SET AUTOCOMMIT=0; START TRANSACTION; SELECT * FROM t FOR UPDATE; UPDATE t SET c=1; ROLLBACK; COMMIT; |
Напишите пример процедуры возвращающей конкатенацию входных параметров (2х входных параметров) типа varchar, с проверкой на наличие значений (not null), и сообщением в качестве возвращаемого значения, в случае если один из параметров не прошел проверку.
|
CREATE FUNCTION func1(`par1` VARCHAR, IN `par2` VARCHAR) RETURNS VARCHAR BEGIN IF `par1` IS NULL OR `par2` IS NULL THEN RETURN 'Ошибка'; ELSE RETURN `par1` || `par2`; END IF; END; |
Что такое триггер? Возможные применения?
Хранимая процедура, которая вызывается при наступлении определенного события (INSERT, UPDATE, DELETE), до или после (BEFORE или AFTER). Применяются чтобы выполнить дополнительные операции. Например, записать в журнал дату изменения записи.
PDO. Что это?
PHP Data Objects — расширение для универсального доступа к различным БД. Для каждой БД используется родной драйвер, а программный интерфейс одинаков. PDO предоставляет объектно-ориентированный подход для работы с БД.