MySQL start: различия между версиями

Материал из ALT Linux Wiki
Строка 115: Строка 115:
└── Сущность
└── Сущность
     ├ вывести список сущностей (таблиц) (из-под подключенной БД): show tables;
     ├ вывести список сущностей (таблиц) (из-под подключенной БД): show tables;
     ├ создать сущность (таблицу) (из-под подключенной БД): create table ''name''(''запись'' ''тип'');
     ├ создать сущность (таблицу) (из-под подключенной БД): create table ''name''(''запись'' ''тип'', ''запись'' ''тип'');
     ├ удалить сущность (таблицу) (из-под подключенной БД): drop table ''name'';
     ├ удалить сущность (таблицу) (из-под подключенной БД): drop table ''name'';
     └── Записи
     └── Записи
         вывести записи таблицы: describe ''name'';
         ├ ввести данные соответственно типам: insert into ''имя таблицы'' values (''значение записи в соответствии с типом'', ''значение записи в соответствии с типом'');
        ├ вывести записи таблицы: describe ''имя таблицы'';
        └ вывести значения таблицы: select * from ''имя таблицы'';
</pre>
</pre>
===Создание БД===
===Создание БД===
Строка 171: Строка 173:
  > insert into authors values (2, 'Федор', 'Достоевский', 'Михаилович', 'Преступление и наказание', '4');
  > insert into authors values (2, 'Федор', 'Достоевский', 'Михаилович', 'Преступление и наказание', '4');
Вывести новые значения таблицы:
Вывести новые значения таблицы:
  > select * from authors
  > select * from authors;
  +------+------------+------------------------+----------------------+------------------------------------------------+--------+
  +------+------------+------------------------+----------------------+------------------------------------------------+--------+
  | id  | name      | lastname              | middlename          | books                                          | rating |
  | id  | name      | lastname              | middlename          | books                                          | rating |

Версия от 18:22, 18 октября 2022

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'';
    └── Записи
        ├ ввести данные соответственно типам: insert into ''имя таблицы'' values (''значение записи в соответствии с типом'', ''значение записи в соответствии с типом'');
        ├ вывести записи таблицы: describe ''имя таблицы'';
        └ вывести значения таблицы: select * from ''имя таблицы'';

Создание БД

  • смотрим, что у нас нет никаких БД
  • создаем БД 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;

Ввод данных

Смотрим содержимое таблицы:

mysql> describe authors;
+------------+-------------+------+-----+---------+-------+
| Field      | Type        | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+-------+
| id         | int         | YES  |     | NULL    |       |
| name       | varchar(30) | YES  |     | NULL    |       |
| lastname   | varchar(30) | YES  |     | NULL    |       |
| middlename | varchar(30) | YES  |     | NULL    |       |
| books      | text        | YES  |     | NULL    |       |
| rating     | tinytext    | YES  |     | NULL    |       |
+------------+-------------+------+-----+---------+-------+
6 rows in set (0,00 sec)

По типам данных вводим данные:

> insert into authors values (1, 'Лев', 'Толстой', 'Николаевич', 'Война и мир', '5');
> insert into authors values (2, 'Федор', 'Достоевский', 'Михаилович', 'Преступление и наказание', '4');

Вывести новые значения таблицы:

> select * from authors;
+------+------------+------------------------+----------------------+------------------------------------------------+--------+
| id   | name       | lastname               | middlename           | books                                          | rating |
+------+------------+------------------------+----------------------+------------------------------------------------+--------+
|    1 | Лев        | Толстой                | Николаевич           | Война и мир                                    | 5      |
|    2 | Федор      | Достоевский            | Михаилович           | Преступление и наказание                       | 3      |
+------+------------+------------------------+----------------------+------------------------------------------------+--------+
2 rows in set (0,00 sec)