SQL — Урок 1. Создание базы данных и таблиц
Итак, вы установили MySQL, и мы начинаем осваивать язык SQL. В уроке 3 по основам баз данных, мы создали концептуальную модель маленькой БД для форума. Пришло время реализовать ее в СУБД MySQL.
Для этого прежде всего надо запустить сервер MySQL. Идем в системное меню Пуск — Программы — MySQL — MySQL Server 5.1 — MySQL Command Line Client. Откроется окно, предлагающее ввести пароль.
Нажимаем Enter на клавиатуре, если вы не указывали пароль при настройке сервера или указываем пароль, если вы его задавали. Ждем приглашения mysql>.
Нам надо создать базу данных, которую мы назовем forum. Для этого в SQL существует оператор create database. Создание базы данных имеет следующий синтаксис:
create database имя_базы_данных;
Максимальная длина имени БД составляет 64 знака и может включать буквы, цифры, символ «_» и символ «$». Имя может начинаться с цифры, но не должно полностью состоять из цифр. Любой запрос к БД заканчивается точкой с запятой (этот символ называется разделителем — delimiter). Получив запрос, сервер выполняет его и в случае успеха выдает сообщение «Query OK . «
Итак, создадим БД forum:
Нажимаем Enter и видим ответ «Query OK . «, означающий, что БД была создана:
Вот так все просто. Теперь в этой базе данных нам надо создать 3 таблицы: темы, пользователи и сообщения. Но перед тем, как это делать, нам надо указать серверу в какую именно БД мы создаем таблицы, т.е. надо выбрать БД для работы. Для этого используется оператор use. Синтаксис выбора БД для работы следующий:
use имя_базы_данных;
Итак, выберем для работы нашу БД forum:
Нажимаем Enter и видим ответ «Database changed» — база данных выбрана.
Выбирать БД необходимо в каждом сеансе работы с MySQL.
Для создания таблиц в SQL существует оператор create table. Создание базы данных имеет следующий синтаксис:
create table имя_таблицы (имя_первого_столбца тип, имя_второго_столбца тип, . имя_последнего_столбца тип );
Требования к именам таблиц и столбцов такие же, как и для имен БД. К каждому столбцу привязан определенный тип данных, который ограничивает характер информации, которую можно хранить в столбце (например, предотвращает ввод букв в числовое поле). MySQL поддерживает несколько типов данных: числовые, строковые, календарные и специальный тип NULL, обозначающий отсутствие информации. Подробно о типах данных мы будем говорить в следующем уроке, а пока вернемся к нашим таблицам. В них у нас всего два типа данных — целочисленные значения (int) и строки (text). Итак, создадим первую таблицу — Темы:
Нажимаем Enter — таблица создана:
Итак, мы создали таблицу topics (темы) с тремя столбцами:
id_topic int — id темы (целочисленное значение),
topic_name text — имя темы (строка),
id_author int — id автора (целочисленное значение).
Аналогичным образом создадим оставшиеся две таблицы — users (пользователи) и posts (сообщения):
Итак, мы создали БД forum и в ней три таблицы. Сейчас мы об этом помним, но если наша БД будет очень большой, то удержать в голове названия всех таблиц и столбцов просто невозможно. Поэтому надо иметь возможность посмотреть, какие БД у нас существуют, какие таблицы в них присутствуют, и какие столбцы эти таблицы содержат. Для этого в SQL существует несколько операторов:
show databases — показать все имеющиеся БД,
show tables — показать список таблиц текущей БД (предварительно ее надо выбрать с помощью оператора use),
describe имя_таблицы — показать описание столбцов указанной таблицы.
Давайте попробуем. Смотрим все имеющиеся базы данных (у вас она пока одна — forum, у меня 30, и все они перечислены в столбик):
Теперь посмотрим список таблиц БД forum (для этого ее предварительно надо выбрать), не забываем после каждого запроса нажимать Enter:
В ответе видим названия наших трех таблиц. Теперь посмотрим описание столбцов, например, таблицы topics:
Первые два столбца нам знакомы — это имя и тип данных, значения остальных нам еще предстоит узнать. Но прежде мы все-таки узнаем какие типы данных бывают, какие и когда следует использовать.
А сегодня мы рассмотрим последний оператор — drop, он позволяет удалять таблицы и БД. Например, давайте удалим таблицу topics. Так как мы два шага назад выбирали БД forum для работы, то сейчас ее выбирать не надо, можно просто написать:
drop table имя_таблицы;
Теперь снова посмотрим список таблиц нашей БД:
Наша таблица действительно удалена. Теперь давайте удалим и саму БД forum (удаляйте, не жалейте, ее все равно придется переделывать). Для этого напишем:
drop database имя_базы данных;
И убедитесь в этом, сделав запрос на все имеющиеся БД:
У вас, наверно, нет ни одной БД, у меня их стало 29 вместо 30.
На сегодня все. Мы научились создавать базы данных и таблицы, удалять их и извлекать информацию об имеющихся базах данных, таблицах и их описаниях.
Научись программировать на Python прямо сейчас!
- Научись программировать на Python прямо сейчас
- Бесплатный курс
Если этот сайт оказался вам полезен, пожалуйста, посмотрите другие наши статьи и разделы.
База данных model
База данных модели используется в качестве шаблона для всех баз данных, созданных на экземпляре SQL Server. Так как tempdb создается каждый раз при запуске SQL Server, база данных модели всегда должна существовать в системе SQL Server. Содержимое базы данных model (включая параметры базы данных) полностью копируется в новую базу данных. Некоторые параметры модели также используются для создания новой базы данных tempdb во время запуска, поэтому база данных модели должна всегда существовать в системе SQL Server.
Вновь созданные пользовательские базы данных используют ту же модель восстановления , что и база данных model. Пользователь может настроить значение по умолчанию. Сведения о текущей модели восстановления модели см. в статье Просмотр или изменение модели восстановления базы данных (SQL Server).
В случае изменения базы данных model и внесения в нее пользовательских сведений шаблона рекомендуется сначала создать резервную копию базы данных model. Дополнительные сведения см. в статье Резервное копирование и восстановление системных баз данных (SQL Server).
Использование базы данных model
При выполнении инструкции CREATE DATABASE первая часть базы данных создается путем копирования в нее содержимого базы данных model . Оставшаяся часть новой базы данных заполняется пустыми страницами.
При изменении базы данных model все созданные после этого базы данных унаследуют эти изменения. Например, можно установить разрешения или параметры базы данных или добавить такие объекты, как таблицы, функции или хранимые процедуры. Свойства файлов базы данных model являются исключением и не учитываются (за исключением первоначального размера файла данных). Исходный размер по умолчанию файла журнала и данных для шаблона базы данных составляет 8 МБ.
Физические свойства базы данных model
В следующей таблице представлены начальные значения конфигурации данных и файлов журнала базы данных model .
| Файл | Логическое имя | Физическое имя | Увеличение размера файлов |
|---|---|---|---|
| Первичные данные | modeldev | model.mdf | Автоматическое увеличение на 64 МБ до заполнения диска. |
| Журнал | modellog | modellog.ldf | Автоматическое увеличение на 64 МБ до максимального размера в 2 ТБ. |
Для SQL Server 2014 см. статью о шаблоне базы данных со значениями увеличения файла по умолчанию.
Сведения о перемещении файлов базы данных и журналов model см. в разделе Перемещение системных баз данных.
Параметры базы данных
В следующей таблице представлены значения по умолчанию для каждого параметра базы данных в базе данных model и обозначено, возможно ли изменение этого параметра. Чтобы просмотреть текущие настройки этих параметров, используйте представление каталога sys.databases .
| Параметр базы данных | Значение по умолчанию | Можно ли изменить |
|---|---|---|
| ALLOW_SNAPSHOT_ISOLATION | ВЫКЛ. | Да |
| ANSI_NULL_DEFAULT | ВЫКЛ. | Да |
| ANSI_NULLS | ВЫКЛ. | Да |
| ANSI_PADDING | ВЫКЛ. | Да |
| ANSI_WARNINGS | ВЫКЛ. | Да |
| ARITHABORT | ВЫКЛ. | Да |
| AUTO_CLOSE | ВЫКЛ. | Да |
| AUTO_CREATE_STATISTICS | DNS | Да |
| AUTO_SHRINK | ВЫКЛ. | Да |
| AUTO_UPDATE_STATISTICS | DNS | Да |
| AUTO_UPDATE_STATISTICS_ASYNC | ВЫКЛ. | Да |
| CHANGE_TRACKING | ВЫКЛ. | No |
| CONCAT_NULL_YIELDS_NULL | ВЫКЛ. | Да |
| CURSOR_CLOSE_ON_COMMIT | ВЫКЛ. | Да |
| CURSOR_DEFAULT | Глобальные | Да |
| Параметры доступности базы данных | ONLINE |
Описание этих параметров базы данных см. в разделе ALTER DATABASE (Transact-SQL).
Ограничения
Следующие операции не могут быть выполнены в базе данных model .
- добавление файлов или файловых групп;
- Изменение параметров сортировки. Параметрами сортировки по умолчанию являются параметры сортировки сервера.
- Изменение владельца базы данных. Владельцемmodel является sa.
- Удаление базы данных.
- Удаление пользователя guest из базы данных.
- Включение системы отслеживания измененных данных.
- Участие в зеркальном отображении базы данных.
- Удаление первичной файловой группы, первичного файла данных или файла журнала.
- Переименование базы данных или первичной файловой группы.
- Перевод базы данных в режим «вне сети» (OFFLINE).
- Перевод первичной файловой группы в режим READ_ONLY.
- Создание процедур, представлений или триггеров с помощью параметра WITH ENCRYPTION. Ключ шифрования привязывается к базе данных, в которой был создан объект. Зашифрованные объекты, созданные в базе данных model могут быть использованы только в базе данных model.
См. также
- Системные базы данных
- sys.databases (Transact-SQL)
- sys.master_files (Transact-SQL)
- Перемещение файлов базы данных
Как выглядит sql база данных
Перед тем как начать изучение SQL, давайте познакомимся с основными понятиями баз данных. Это поможет нам понять области применения SQL и его среду выполнения.
База данных — это набор данных, хранящихся в структурированном виде
По сути это просто хранилище неких сведений, не более того. Сами по себе базы данных не представляли бы интереса, если бы не было систем управления базами данных.
Система управления базами данных — это совокупность языковых и программных средств, которая осуществляет доступ к данным, позволяет их создавать, менять и удалять, обеспечивает безопасность данных и т.д.
Если говорить более простыми словами, то СУБД — это система, позволяющая создавать базы данных и манипулировать сведениями из них.
Простейшая схема работы с базой данных:

На данный момент рейтинг систем управления базами данных на основании db-engines имеет следующий вид:
- Oracle — реляционная СУБД
- MySQL — реляционная СУБД
- Microsoft SQL Server — реляционная СУБД
- PostgreSQL — реляционная СУБД
- MongoDB — документоориентированная СУБД
- Redis — хранилище по типу «ключ-значение»
- IBM Db2 — реляционная СУБД
- Elasticsearch — поисковой движок
- Microsoft Access — реляционная СУБД
- SQLite — реляционная СУБД
Можно обратить внимание, что 7 из 10 самых популярных СУБД — реляционные. Вы сделали правильный выбор изучать именно их .
Давайте проверим как мы усвоили тему, выберите правильное утверждение:
Структура баз данных — Основы SQL
Почти все приложения работают с большим количеством информации, которая хранится в виде таблиц в базах данных.
В этом уроке мы более подробно поговорим о структурах и выясним, как устроены таблицы и базы данных.
Что такое таблица
Рассмотрим для примера Хекслет. Мы храним информацию о студентах и о курсах. При этом нужно разнести информацию по двум разным таблицам, чтобы было удобно работать. Другими словами, в разных таблицах мы храним разные сущности.
В базе данных Хекслета сущность «Студенты» будет храниться в одной таблице, сущность «Курсы» — в другой.
Сама таблица представляет собой набор столбцов и строк. Пересечение столбца и строки — это ячейка.
В таблице «Студенты» каждая строка содержит в себе информацию об одном конкретном человеке. Еще строки называют записями.
Каждый столбец определяет, какого типа данные хранятся в ячейке, например:
- Имя
- Фамилия
- Год рождения
- Дата регистрации
Еще столбцы иногда называют полями.
Таблица с данными студентов Хекслета может выглядеть так:
Таблицы в базах данных
Многие привычные приложения содержат десятки, сотни и тысячи таблиц с разнообразными данными.
Чтобы всем было удобно работать с такими объемами данных, к таблицам предъявляются конкретные требования:
- Название таблицы. Оно должно быть уникально в рамках одной базы данных. Название таблицы мы задаем при создании, но его можно изменить при необходимости
- Столбцы или поля. У каждого поля уникальное имя в рамках одной таблицы
- Тип данных столбца. Он ограничивает набор допустимых значений, которые можно присвоить столбцу. Например, в столбец числового типа нельзя записать текстовые строки. Тип данных присваивается каждому столбцу
- Строки или записи. Их количество в разных таблицах сильно отличается — от нескольких штук до миллиардов записей. В базах данных нет никаких гарантий относительно порядка строк в таблице
Базы данных, в которых данные хранятся в виде таких таблиц, называются реляционными базами данных. Работать с ними можно с помощью реляционных СУБД.
Структура таблиц
Таким образом, каждая таблица должна иметь определенную структуру.
Эта структура определяет столбцы и включает в себя имена полей и их типы:
first_name string last_name string email string created_at datetime
Рассмотрим этот пример подробнее. В нем прописаны названия полей и типы:
- Поля first_name , last_name и email содержат обычный текст, поэтому мы задаем тип данных string (строки)
- В поле created_at мы сохраняем дату добавления пользователя в систему. Для этого поля установлен тип данных datetime , поэтому туда нельзя записать текст
Вот такую таблицу мы можем создать с этими полями: