Содержание
В интернете много рассуждений на тему — какая база данных быстрее? На самом деле разные базы могут различать по скорости исполнения даже отдельных запросов. Т.е. одна база быстрее другой на исполнении SELECT, но медленнее на UPDATE. И эта разница прослеживается не только на уровне запросов.
Создание базы данных MySQL
Создать базу можно через запрос: CREATE DATABASE имя_БД.
Пример создания таблицы в базе данных:
CREATE TABLE news ( id int(4) NOT NULL auto_increment, // число max 4 символа title varchar(255) NOT NULL default '', // название текст max 255 символов description varchar(255) NOT NULL default //описание max 255 символов '', content text, // текст author varchar(50) NOT NULL default '',// автор max 50 символов pubdate timestamp NOT NULL default '', // дата рубликации в цифрах PRIMARY KEY (id) // id - идентификатор записи );
На момент публикации актуальна MySQL 5.
Есть понятие ‘Веб-сервера’ — сейчас популярен Apache. Он передает php. А php обратно передает данные Apache. PHP работает с MySQL. Прямой связи mySQL и Apache не существует. Они не знают о существовании друг друга. А Php выступает тут в роли посредника. Т.е. схему работы можно изобразить как:
Apache <=> PHP <=> mySQL
Установку сервера mySQL рассматривать не будем, в сети полно руководств (см. вики).
Обзор файлов сервера MySQL 5
- У mySQL есть свой конфигурационный файл настроек — my.ini.
- Папка bin — утилиты командной строки.
- папка data — здесь хранятся все базы данных (внутри есть папка mysql — с ней ничего не делать! в ней хранятся параметры mysql, удалите что-то там — будете переставлять сервер).
Клиентские программы для работы сервером
- Утилиты командной строки.
- mysql.exe
- mysqldump.exe
- MySQL Administrator.
- MySQL Query Browser
- другие, например, EMS MySQL Manager.
- Веб-инструменты: phpmyadmin.
Утилита mysql
Разделяйте два понятия: ‘командная строка’ и ‘монитор’. Последний используют для работы с mysql.
mysql.exe –uлогин –pпароль [имя_БД] //вызов утилиты и заходим в "монитор" USE имя_БД; SHOW TABLES; DESCRIBE имя_таблицы; quit // выход из "монитора"
Внимание! Стандартный sql не предусматривает конца строки в виде точки с запятой ; или чего-то еще. Т.е. запросы можно писать в одну строку без разделителя, база сама разберется в коде. Но т.к. запросы бывают большие, когда мы находимся в мониторе, ‘enter’ — это не конец запроса, а перевод на новую строку, чтобы можно было делать многострочные запросы (так нагляднее). Для конца запроса — использовать ; или \g.
Утилита mysqldump
Мы не всегда можем обратиться напрямую к папке data в mysql. Для этого делаем дамп базы данных. Вся структура базы записывается в текстовый файл с общепринятым расширением sql. Также делают и бэкапы. Сделаем дамп:
mysqldump –uroot –ppass имя_БД > dump.sql //делаем дамп mysql –uroot –ppass имя_БД < dump.sql //восстанавливаем дамп на машину
После восстановления дампа базы соединение с монитором обрывается. Поэтому нужно снова его устанавливать.
Проблема с кодировкой в командной строке
Иногда при работе в мониторе при запросе вывода таблиц из запрашиваемой базы данных выскакивает абракадабра. Проблема в том, что в используемой нами командной строке стоит кодировка cp866. А у нас стоит utf-8. Нам нужно сообщить монитору, чтобы получаемые данные он сконвертировал в cp866:
mysql> SET NAMES 'cp866';