8. MySQL и базы данных
Как подключиться к базе данных MySQL из PHP?
JuniorОтвет: Можно использовать расширение mysqli или PDO (PHP Data Objects).
// Пример с PDO
$pdo = new PDO('mysql:host=localhost;dbname=test', 'user', 'pass');
В чём разница между mysqli и PDO?
Junior
Ответ:
mysqliработает только с MySQL, тогда какPDOподдерживает несколько систем управления базами данных (PostgreSQL, SQLite и др.).PDOподдерживает именованные плейсхолдеры в подготовленных выражениях.
В чём разница между WHERE и HAVING?
Junior
Ответ: WHERE фильтрует строки до агрегации, а HAVING фильтрует после агрегации (обычно совместно с GROUP BY).
Что такое Primary Key?
JuniorОтвет: Первичный ключ — это столбец (или набор столбцов), который однозначно идентифицирует каждую запись в таблице. Он не может быть null.
В чём разница между CHAR и VARCHAR?
Junior
Ответ: CHAR имеет фиксированную длину (дополняется пробелами), тогда как VARCHAR имеет переменную длину (использует только необходимое пространство плюс 1–2 байта на длину). CHAR немного быстрее для очень коротких данных одинаковой длины (например, коды стран), а VARCHAR экономит место для текста переменной длины.
Какие основные числовые типы данных есть в MySQL?
JuniorОтвет:
- TINYINT: 1 байт (от -128 до 127).
- SMALLINT: 2 байта (от -32 768 до 32 767).
- INT: 4 байта (от -2.1 млрд до 2.1 млрд).
- BIGINT: 8 байт.
- DECIMAL: Числа с фиксированной запятой для финансовых данных (точная точность).
- FLOAT/DOUBLE: Числа с плавающей запятой для приблизительных значений.
В чём разница между DATETIME и TIMESTAMP?
Junior
Ответ:
- DATETIME: 8 байт. Диапазон: от 1000-01-01 до 9999-13-31. Не зависит от часового пояса.
- TIMESTAMP: 4 байт. Диапазон: от 1970-01-01 до 2038-01-19. Автоматически конвертируется в UTC и обратно в зависимости от текущего часового пояса.
Что такое типы ENUM и SET?
Junior
Ответ:
- ENUM: Строковый объект, который может принимать только одно значение из списка разрешённых.
- SET: Строковый объект, который может принимать ноль или более значений из списка разрешённых (до 64).