Это сообщение в блоге будет первой частью серии основ MySQL для начинающих, в которую я буду углубляться, когда буду двигаться по этому пути обучения.
Примечание: все данные, имена или наименования, найденные в базе данных, представленной в этом посте, строго используются для практики, обучения, обучения и тестирования. Он ни в коем случае не отображает фактические данные, принадлежащие или используемые какой-либо стороной или организацией.
Для этих упражнений я буду использовать Xubuntu Linux 16.04.2 LTS (Xenial Xerus) и MySQL 5.7.20.
Основные цели.
CREATE
база данных в текущей системе.CREATE
таблица для хранения данных.CREATE
пользователь, который может взаимодействовать с базой данных и таблицами.
Команда CREATE
используется для CREATE
баз данных, таблиц и пользователей.
Приступая к работе, я войду в MySQL как root
или системный пользователь CREATE
для базы данных, таблицы и пользователя, как показано ниже: :~$ mysql -u root -p
После ввода правильного пароля (не показан) я получаю приветствие и приглашение MySQL.
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 19 Server version: 5.7.20–0ubuntu0.16.04.1 (Ubuntu) Copyright © 2000, 2017, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement. mysql>
База данных содержит таблицы, в которых, в свою очередь, хранятся данные, с которыми мы работаем. Здесь я создаю базу данных projects
с помощью этой команды CREATE
:
mysql> CREATE DATABASE projects; Query OK, 1 row affected (0.00 sec)
Чтобы просмотреть доступные базы данных (и только что созданную базу данных projects
) в системе, используйте команду SHOW DATABASES;
.
mysql> SHOW DATABASES; + — — — — — — — — — — — — — — + | Database | + — — — — — — — — — — — — — — + | information_schema | | BowlingLeagueExample | | BowlingLeagueModify | | EntertainmentAgencyExample | | EntertainmentAgencyModify | | RecipesExample | | SalesOrdersExample | | SalesOrdersModify | | SchoolSchedulingExample | | SchoolSchedulingModify | | bank | | hr | | mysql | | northwind | | performance_schema | | projects | | sakila | | sys | | world_x | + — — — — — — — — — — — — — — + 19 rows in set (0.00 sec)
Наряду со всеми базами данных, которые у меня в настоящее время есть в моей системе, projects
можно увидеть четвертым снизу вверх. Мы создали базу данных. Woot woot!
Без таблиц сама по себе база данных не так полезна. Чтобы CREATE
таблицу, перейдите в базу данных, где вы хотите эту таблицу (в данном случае projects
база данных). Для этого введите команду USE
вместе с именем базы данных: mysql> USE projects;
Для просмотра всех существующих таблиц, если таковые имеются, в базе данных также используется команда SHOW
:
mysql> SHOW TABLES; Empty set (0.00 sec)
Опять же, здесь нет таблиц (обратите внимание на тег Empty set
), поэтому я исправлю это в следующем разделе.
Следующая команда создает простую friends
таблицу:
mysql> CREATE TABLE friends( -> friend_id INT NOT NULL AUTO_INCREMENT, -> first_name VARCHAR(30) NOT NULL, -> last_name VARCHAR(30) NOT NULL, -> cell_phone VARCHAR(15), -> age INT DEFAULT NULL, -> PRIMARY KEY (friend_id)); Query OK, 0 rows affected (0.32 sec)
Кратко обсудим эти имена столбцов и типы данных.
friend_id INT NOT NULL AUTO_INCREMENT
- этот столбец имеет типinteger
и автоматически увеличивает его значение на 1 послеINSERT
, до следующего значения каждый раз, когда запись вставляется в таблицуfriends
. Доступны другие параметры для начальных значений и значений приращения, однако они здесь не показаны и не рассматриваются. Этот столбец будет содержать только целые числа.first_name VARCHAR(30) NOT NULL
- Символьный тип данных переменной длины, который принимает строковое значение длиной до 30 символов. Нельзя оставить пустым из-заNOT NULL
CONSTRAINT
last_name VARCHAR(30) NOT NULL
- Символьный тип данных переменной длины, который принимает строковое значение длиной до 30 символов. Нельзя оставить пустым из-заNOT NULL
CONSTRAINT
cell_phone VARCHAR(15)
- Символьный тип данных переменной длины, который принимает строковое значение длиной до 15 символов. Можно оставить пустым во время вставки / обновления.age INT DEFAULT NULL
- Целочисленный тип данных, который принимает целые числа и если во время вставки значения не указываются, по умолчанию будетNULL
. (Наши друзья могут не захотеть раскрывать нам свой возраст, смеется!)PRIMARY KEY (friend_id))
-CONSTRAINT
, который создает уникальный идентификатор для каждой записи в таблице в указанном столбце, которым в данном случае является столбецfriend_id
. Значения этого столбца никогда не будут дублироваться, что гарантирует целостность и уникальный идентификатор.
Со всеми этими мелочами мы упускаем только одну вещь. Пользователь. Нам нужен пользователь, который может работать и взаимодействовать с projects
базой данных.
Скоро.
Чтобы CREATE
пользователь, используйте оператор CREATE USER
.
Проверьте это.
mysql> CREATE USER ‘this_user’@’localhost’ IDENTIFIED BY ‘password5’; Query OK, 0 rows affected (0.04 sec)
Примечание. Это ненадежный пароль, используемый только в демонстрационных целях. Вы всегда должны стремиться к использованию надежных паролей.
Я рассмотрю различные части заявления CREATE USER
ниже:
'this_user'@'localhost'
-this_user
- это имя, которое я дал этому конкретному пользователю.'this_user'@'localhost'
-@'localhost'
указывает, что этот пользователь может подключаться с локального хоста или локальной машины.IDENTIFIED BY 'password5';
- один из множества доступных вариантов установки / назначения паролей.
Мне все еще нужны GRANT
разрешения для пользователя, прежде чем он или она сможет взаимодействовать с базой данных и таблицами.
mysql> GRANT SELECT, INSERT ON projects.* TO ‘this_user’@’localhost’; Query OK, 0 rows affected (0.00 sec)
На данный момент я разрешаю this_user
иметь SELECT
и INSERT
привилегии для всех таблиц в базе данных projects
, как указано в .*
. В конце концов, я не могу просто выпустить this_user
на свободу без наблюдения за воротами, можно?!?!
Хорошо, мы настроили базу данных, таблицу и пользователя. Обязательно посетите следующую часть этой серии, которая выйдет в ближайшее время.
Далее в этой серии я углублюсь в команду ALTER
, чтобы мы могли внести любые изменения в таблицу friends
и пользователя this_user
. Не пропустите еще больше интересного контента!
Призыв к действию!
Спасибо, что нашли время прочитать этот пост. Я искренне надеюсь, что вы открыли для себя что-то интересное и поучительное. Пожалуйста, поделитесь своими выводами здесь с кем-нибудь, кого вы знаете, кто тоже получит от этого такую же ценность.
Обязательно посетите страницу Best Of на моем сайте Digital Owl’s Prose, где собраны мои лучшие сообщения в блоге.
Я уже упоминал, как я люблю чашку кофе?!?!
Джош Отвелл хочет учиться и расти как разработчик SQL и блогер. Другие любимые занятия находят его, уткнувшись носом в хорошую книгу, статью или командную строку Linux. Среди них он разделяет любовь к настольным ролевым играм, чтению фэнтезийных романов и проведению времени с женой и двумя дочерьми.
Отказ от ответственности: примеры, представленные в этом посте, представляют собой гипотетические идеи о том, как достичь аналогичных результатов. Это не самое лучшее решение. Большинство, если не все, из представленных примеров выполняются на рабочей станции для личного развития / обучения и не должны считаться производственными или готовыми к использованию. Ваши конкретные цели и потребности могут отличаться. Используйте те методы, которые лучше всего подходят для ваших нужд и целей. Мнения мои собственные.
Первоначально опубликовано на joshuaotwell.com 30 октября 2017 г.