MySQL start

Материал из ALT Linux Wiki
Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.
Примечание: Обратите внимение, что это не официальная документация, а попытка начинающего админа объяснить материал начинающим админам.

Теория

Виды баз данных

  • Реляционные - (SQL) — база, где данные хранятся в формате таблиц, они строго структурированы и связаны друг с другом.

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

  • Нереляционные (NoSQL) — хранит данные без четких связей друг с другом и четкой структуры.

Могут/ не могут иметь отношения, не имеют четкой структуры. Меняются в процессе.

Структура

БД
└─СУБД
  └─пользователь

Между базой данных и пользователем используется СУБД - система управления базами данных - ПО обеспечивающее взаимодействие пользователя и БД.

Реляционная БД

Состоит из:

  • сущность (таблица) - тип объектов, хранящихся в БД
    • поле - часть таблицы, за которой закреплен определенный тип данных. (содержит название и описание)
      • запись - строка таблицы (поле) БД, содержащая набор значений и свойств размещенный в полях.
Примечание: В поле необходимо всегда указывать тип записи. При этом нельзя указывать одинаковые записи - т.к. это идентификатор.
БД
├───таблица
│   ├───поле
│   │   └запись
│   ├───поле
│   │   └запись
│   └───поле
│       └запись
├───таблица
│   ├───поле
│   │   └запись
│   ├───поле
│   │   └запись
│   └───поле
│       └запись
└───таблица
    ├───поле
    │   └запись
    ├───поле
    │   └запись
    └───поле
        └запись
БД
├───автор
│   ├───библиография
│   ├───биография
│   ├───дата рождения
│   └───имя
├───книги
├───абонементы
└───сотрудник

В данном примере БД - база данных; автор, инвентарный номер, книга - таблицы; библиография, биография, дата рождения, имя - поля.

Типы данных

строковые

  • char - строка фиксированной длины
    • пример char(20)
      • максимум 20 символов
      • при меньшем количестве переменная заполняется пробелами
      • больше 20 заполнить нельзя
  • varchar - строка переменной длины
    • пример varchar(20)
    • будет записано 10 символов
    • в памяти будет хранится 10 символов и 1 говорящий о кол-ве используемых символов
  • tiny - текст до 255 байт
  • text - текст до 65 кб

числовые

  • целые
tinyint     | 1 byte   -128 to 127                                  0 to 255
smallint    | 2 bytes  -32768 to 32767                              0 to 65535
mediumint   | 3 bytes  -8388608 to 8388607                          0 to 16777215
int/integer | 4 bytes  -2147483648 to 2147483647                    0 to 4294967295
bigint      | 8 bytes  -9223372036854775808 to 9223372036854775807  0 to 18446744073709551615
  • дробные (указывается в скобках (всего, точность))
    • decimal(3,2) => (xxx,yy) => -999,99 - 999,99
    • float(a,b)
    • double(a,b)

Практика

Установка MySQL

Согласно MySQL:

$ su -
# apt-get install MySQL-server
# service mysqld enable
# service mysqld start

Shell СУБД

Запуск

$ mysql
mysql>

Создание/удаление

  • Вывести список БД:
show databases;
  • Создать БД:
create database name;
create database if not exists name;
  • Удалить БД:
drop database name;
drop database  if exists name;

Работа с сущностями

База данных
├подключиться к базе данных: use ''name'';
├отобразить список баз данных: show databases;
├создать базу данных: create database ''name''; или create database if not exists ''name'';
├удалить базу данных: drop database ''name''; или drop database if exists ''name'';
└── Сущность
    ├ вывести список сущностей (таблиц) (из-под подключенной БД): show tables;
    ├ создать сущность (таблицу) (из-под подключенной БД): create table ''name''(''запись'' ''тип'');
    ├ удалить сущность (таблицу) (из-под подключенной БД): drop table ''name'';
    └── Записи
        └ вывести записи таблицы: describe ''name'';
  • смотрим, что у нас нет никаких БД
  • создаем БД test
  • подключаемся к ней.
>show databases;
>create database test;
>use test;
  • Создаем таблицу "авторы"
>create table authors (id int, name varchar(30), lastname varchar(30), middlename varchar(30), books text, rating tinytext);

ИЛИ:

mysql> create table authors(
    -> id int,
    -> name varchar(30),
    -> lastname varchar(30),
    -> middlename varchar(30),
    -> books text,
    -> rating tinytext);
  • смотрим список таблиц и выводим содержимое таблицы
>show tables;
>describe authors;