Ms sql создание таблицы: Создание таблиц (ядро СУБД) — SQL Server
Содержание
Лабораторная работа №1
Содержание
Лабораторная работа №1
Создание баз данных в среде MS SQL Server 2005
1. Начало работы в Microsoft SQL Server Management Studio
2. Создание базы данных в среде Microsoft SQL Server Management Studio
3. Создание таблиц базы данных в среде Microsoft SQL Server Management Studio
4. Создание таблиц базы данных с помощью SQL-запроса
Приложение. Структура данных
Контрольные вопросы
NO:user READ:@ALL EDIT:@ALL
Цели:
Изучение основных конструкций структурированного языка запросов SQL.
Изучения среды MS SQL Server Management Studio.
Приобретение навыков проектирования структур данных.
Базы данных составляют основу для построения информационных систем любого масштаба и предназначения. В теории баз данных одними из основных являются вопросы, связанные с анализом предметной области и моделированием структуры данных, управлением данными и их анализом.
Основой любой базы данных является реализованная в ней модель данных, представляющая собой множество структур данных, ограничений целостности и операций манипулирования данными. С помощью модели данных могут быть представлены объекты предметной области и существующие между ними связи.
Результатом лабораторной работы будет создание реляционной базы данных на основе MS SQL Server 2005.
В реляционной базе данных данные представлены в виде собрания таблиц. Таблица состоит из определенного числа столбцов (полей) и произвольного числа строк (записей).
Планируемая база данных будет представлять собой информационное хранилище данных об успеваемости студентов и состоять из следующих таблиц:
— Speciality (специальность)
— Course (курс)
— Group (группа)
— Discipline (дисциплина)
— Account (тип отчетности)
— Mark (отметка)
— Status (академический статус студента)
— Position (должность)
— People (люди)
— Student (студент)
— Teacher (преподаватель)
— SemesterResults (результаты сессии, семестра)
Структура данных таблиц приведена в Приложении.
1. Начало работы в Microsoft SQL Server Management Studio
Для создания баз данных используем среду Microsoft SQL Server Management Studio. На запрос соединения с сервером выбираем (рис. 1):
Тип сервера: Компонент Database Engine
Имя сервера: SQL-MS.
Под таким именем в домене fizmat.vspu.ru. доступна машина, на которой установлены серверные компоненты MS SQL Server 2005. Можно попробовать выбрать сервер из выпадающего списка серверов. Можно также обратиться к этой машине по IP-адресу 192.168.10.152 из локальной сети.
Проверка подлинности: Проверка подлинности SQL Server.
Такая настройка позволяет создавать пользователей данного экземпляра SQL Server независимо от компьютера, с которого производится вход.
Имя входа: studentMBS21.
Пароль: student.
Рисунок 1. Окно входа в Microsoft SQL Server Management Studio 2005
Примечание. Пользователь studentMBS21 обладает большими полномочиями на этом сервере, поэтому пользоваться им надо очень аккуратно. Под этим пользователем мы создадим базу данных, а заполнять её и производить поиск по ней мы будем под другими пользователями. Предпочтительнее всего использовать свою учетную запись в домене fizmat.vspu.ru. В этом случае надо выбирать проверку подлинности Windows.
Теперь нажимаем кнопку «Параметры» и выбираем (рис. 2):
Соединение с базой данных → Обзор сервера… → Пользовательские базы данных → trial_base.
Сетевой протокол → TCP/IP
Нажимаем кнопку «Соединить».
Рисунок 2. Окно входа в Microsoft SQL Server Management Studio 2005 (вкладка Параметры)
Примечание. База данных trial_base является базой данной по умолчанию для пользователя studentMBS21, она была создана при регистрации этого пользователя. В случае, когда права доступа пользователя не ограничены (как в рассматриваемом случае), вкладку Параметры можно не открывать. Если же пользователь имеет доступ только к определенным базам данных, при подключении к серверу нужно одну из этих баз указывать.
После успешного соединения с базой данных на экране видим следующую картинку (рис. 3):
Рисунок 3. Подключение к SQL — серверу установлено
Среда MS SQL Management Studio предоставляет удобный инструментарий для создания, редактирования, заполнения баз данных. Но настоящие профессионалы в своей работе редко пользуются этой средой, а для выполнения своих задач используют SQL-запросы. Мы будем пользоваться, когда это удобно и наглядно, графическим режимом, но основной упор будем делать на освоении базы языка SQL.
2. Создание базы данных в среде Microsoft SQL Server Management Studio
В разделе «Базы данных» правой кнопкой выбираем «Создать базу данных…» (рис. 4). Назовем базу данных по индексу группы – mbs21. Владельцем базы данных назначим пользователя, под именем которого был произведен вход – studentMBS21. В разделе «Параметры» выбираем тип сортировки Cyrillic_General_BIN (для примера), нажимаем ОК.
Рисунок 4. Создание базы данных
В разделе «Базы данных» Обозревателя объектов появилась вновь созданная mbs21 (проверьте!):
Рисунок 5. Обозреватель объектов
3. Создание таблиц базы данных в среде Microsoft SQL Server Management Studio
Начнем с создания таблицы Speciality. Структура таблицы приведена ниже:
Имя поля (столбца) | Содержание | Тип данных | Возможность содержать NULL |
---|---|---|---|
Num | Первичный ключ | int | нет |
Name | Название специальности | varchar(60) | нет |
В реляционных базах данных первичный ключ используется как уникальный идентификатор записи. Это поле является обязательным, оно используется для связи таблиц по внешним ключам (примеры такого связывания будут рассмотрены далее). Первичный ключ должен иметь целочисленный тип (в данном случае — int). Во втором поле будет храниться название специальности — некоторая строка, поэтому мы выбираем для этого поля тип varchar(60). Число в скобках означает максимальное число символов в строке. Детальную информацию об этих типах можно посмотреть в справке.
Простейшим образом можно создавать таблицы средствами MS SQL Server Management Studio (правая кнопка мыши на заголовке «Таблицы» > Создать таблицу.). Получаем следующее:
Рисунок 6. Создание таблицы
Вводим имя первого столбца Num (первичный ключ – в том столбце хранится номер записи), выбираем из выпадающего списка тип данных int. Первичный ключ не может быть пустым, поэтому и оставляем неотмеченным поле «Разрешить значения null». Затем аналогичным образом вводим имя второго столбца, задаем тип, запрещаем полю иметь значение null. Таблица принимает следующий вид:
Рисунок 7.
Теперь необходимо указать, что поле Num будет являться первичным ключом. Правой кнопкой мыши щелкаем по этому полю и выбираем «Задать первичный ключ»:
Рисунок 8.
Сохраняем таблицу под именем Speciality (после этого таблица должна появиться в обозревателе объектов). Теперь можно перейти к заполнению этой таблицы (для этого нужно в обозревателе объектов выбрать эту таблицу и в контекстном меню нажать «Открыть таблицу»):
Рисунок 9.
При заполнении вы обнаружите, что каждый раз приходится вводить не только полезную информацию (название специальности), но и номер записи. Чтобы вводить номер записи автоматически, нужно задать спецификацию идентифицирующего столбца. Для этого необходимо в свойствах столбца указать, что данный столбец является идентифицирующим (рис. 10):
Рисунок 10. Определение свойств идентифицирующего столбца
4. Создание таблиц базы данных с помощью SQL-запроса
Создание таблиц в графическом режиме, безусловно, удобно, однако не универсально. При использовании других средств разработки баз данных (например, IBM DB2) придется привыкать к новым приемам работы. Использование конструкций языка SQL позволяет работать с базами данных, исходя из единого подхода, в любой среде управления базами данных.
Выберите на панели инструментов «Создать запрос»:
Рисунок 11.
Создадим новую базу данных запросом. Напишем
CREATE DATABASE mbs21_query
и нажмем F5. В обозревателе объектов должна появиться новая база (если сразу не появилась, то надо выделить мышью раздел «Базы данных» и в контекстном меню выбрать «Обновить»).
Теперь создадим таблицу Speciality. Упрощенный синтаксис создания таблиц следующий:
CREATE TABLE <имя таблицы> ( <имя столбца 1> <тип данных> [NOT NULL] [DEFAULT <значение по умолчанию>], <имя столбца 2> <тип данных> [NOT NULL] [DEFAULT <значение по умолчанию>], ... )
Введем новый запрос:
/* создание таблицы Специальность*/ USE mbs21_query -- определяем базу данных, в которую входит таблица CREATE TABLE Speciality( Num INT IDENTITY(1,1) PRIMARY KEY NOT NULL, -- первичный ключ NameSpec VARCHAR(60) -- название специальности )
В обозревателе объектов видим, что таблица действительно создана. Файл с SQL-запросом сохраняем в своей папке (в конце работы необходимо показать запросы, которые были выполнены, преподавателю). Слово IDENTITY(1,1) добавлено, чтобы поле первичного ключа Num автоматически нумеровалось начиная с единицы (фактически, эта конструкция определяет спецификацию идентифицирующего столбца).
Таким же образом необходимо создать остальные таблицы. Рассмотрим таблицу Course.
Таблица Course (курс)
Имя поля (столбца) | Содержание | Тип данных | Возможность содержать NULL |
---|---|---|---|
Num | Первичный ключ | int | нет |
Name | Название специальности | varchar(60) | нет |
YearEntry | Год поступления | int | нет |
YearFinal | Год выпуска | int | да |
Speciality | Специальность (внешний ключ ссылается на первичный ключ таблицы Speciality) | int | нет |
Эта таблица содержит поле Speciality, которое ссылается на первичный ключ таблицы Speciality. Чтобы создать такую таблицу, необходимо выполнить запрос:
/* создание таблицы Курс */ USE mbs21_query -- определяем базу данных, в которую входит таблица CREATE TABLE Course( Num INT IDENTITY(1,1) PRIMARY KEY NOT NULL, -- первичный ключ YearEntry INT NOT NULL, -- год поступления YearFinal INT, -- год окончания Speciality INT FOREIGN KEY REFERENCES Speciality(Num) -- специальность, -- ссылка по внешнему ключу на поле Num таблицы Speciality )
Примечание. Ссылку можно создать только на существующую таблицу. Задать ссылку по внешнему ключу можно и после создания таблицы (подробно будет рассмотрено в следующей лабораторной работе).
Задание. Создайте все остальные таблицы, указанные в Приложении, используя SQL – запросы.
Приложение. Структура данных
Таблица Speciality (специальность)
Имя поля (столбца) | Содержание | Тип данных | Возможность содержать NULL |
---|---|---|---|
Num | Первичный ключ | int | Нет |
Name | Название | varchar(60) | Нет |
Таблица Course (курс)
Имя поля (столбца) | Содержание | Тип данных | Возможность содержать NULL |
---|---|---|---|
Num | Первичный ключ | int | нет |
Name | Название специальности | varchar(60) | нет |
YearEntry | Год поступления | int | нет |
YearFinal | Год выпуска | int | да |
Speciality | Специальность (внешний ключ ссылается на первичный ключ таблицы Speciality) | int | нет |
Таблица Group (группа)
Имя поля (столбца) | Содержание | Тип данных | Возможность содержать NULL |
---|---|---|---|
Num | Первичный ключ | int | нет |
Name | Название специальности | varchar(60) | нет |
Course | Курс (внешний ключ ссылается на первичный ключ таблицы Course ) | int | нет |
Таблица Discipline (дисциплина)
Имя поля (столбца) | Содержание | Тип данных | Возможность содержать NULL |
---|---|---|---|
Num | Первичный ключ | int | Нет |
Name | Название (возможные значения: программирование, алгебра…) | varchar(60) | Нет |
Таблица Account (тип отчетности)
Имя поля (столбца) | Содержание | Тип данных | Возможность содержать NULL |
---|---|---|---|
Num | Первичный ключ | int | Нет |
Name | Название (возможные значения: экзамен, зачет, дифференцированный зачет…) | varchar(30) | Нет |
Таблица Mark (отметка)
Имя поля (столбца) | Содержание | Тип данных | Возможность содержать NULL |
---|---|---|---|
Num | Первичный ключ | int | Нет |
Name | Название (возможные значения: зачтено, не зачтено, отлично, хорошо…) | varchar(30) | Нет |
Value | Значение (возможные значения: 0, 1, …, 5) | int | Нет |
Таблица Status (академический статус студента)
Имя поля (столбца) | Содержание | Тип данных | Возможность содержать NULL |
---|---|---|---|
Num | Первичный ключ | int | Нет |
Name | Название (возможные значения: обучается, отчислен, в академическом отпуске, в отпуске по уходу за ребенком) | varchar(60) | Нет |
Таблица Position (должность)
Имя поля (столбца) | Содержание | Тип данных | Возможность содержать NULL |
---|---|---|---|
Num | Первичный ключ | int | Нет |
Name | Название (возможные значения: ассистент, старший преподаватель, доцент…) | varchar(60) | Нет |
Таблица People (люди)
Имя поля (столбца) | Содержание | Тип данных | Возможность содержать NULL |
---|---|---|---|
Num | Первичный ключ | int | Нет |
LastName | Фамилия | varchar(30) | Нет |
FirstName | Имя | varchar(30) | Нет |
MiddleName | Отчество | varchar(30) | Да |
Male | Пол | char(1) | Нет |
BrthDate | День рождения | datetime | Да |
Addr | Адрес | varchar(100) | Да |
Таблица Student (студент)
Имя поля (столбца) | Содержание | Тип данных | Возможность содержать NULL |
---|---|---|---|
Num | Первичный ключ | int | Нет |
People | Человек (внешний ключ ссылается на первичный ключ таблицы People) | int | Нет |
Group | Группа (внешний ключ ссылается на первичный ключ таблицы Group) | int | Нет |
StudNum | Номер студенческого билета | varchar(30) | Нет |
Status | Академический статус студента (внешний ключ ссылается на первичный ключ таблицы Status) | int | Нет |
Таблица Teacher (преподаватель)
Имя поля (столбца) | Содержание | Тип данных | Возможность содержать NULL |
---|---|---|---|
Num | Первичный ключ (табельный номер сотрудника) | int | Нет |
People | Человек (внешний ключ ссылается на первичный ключ таблицы People) | int | Нет |
Position | Должность (внешний ключ ссылается на первичный ключ таблицы Position) | int | Нет |
Таблица SemesterResults (результаты сессии)
Имя поля (столбца) | Содержание | Тип данных | Возможность содержать NULL |
---|---|---|---|
Num | Первичный ключ | int | Нет |
Student | Студент (внешний ключ ссылается на первичный ключ таблицы Student) | int | Нет |
Semester | Порядковый номер семестра | int | Нет |
Account | Тип отчетности (внешний ключ ссылается на первичный ключ таблицы Account) | int | Нет |
Discipline | Дисциплина (внешний ключ ссылается на первичный ключ таблицы Discipline) | int | Нет |
Teacher | Преподаватель (внешний ключ ссылается на первичный ключ таблицы Teacher) | int | Нет |
Mark | Отметка (внешний ключ ссылается на первичный ключ таблицы Mark) | int | Нет |
Date | Дата сдачи отчетности | DateTime | Нет |
Контрольные вопросы
Каким образом можно получить доступ к MS SQL Server 2005?
С помощью каких средств можно создать таблицу для MS SQL Server 2005?
Что такое первичный ключ?
Каким образом можно создать автоматическую нумерацию строк таблицы?
Что означают Not Null?
Назад: Лабораторная работа №1
Пошаговое создание таблицы SQL
Прежде чем приступать к созданию таблицы SQL, необходимо определить модель базы данных. Спроектировать ER-диаграмму, в которой определить сущности, атрибуты и связи.
Основные понятия
Сущности – предметы или факты, информацию о которых необходимо хранить. Например, сотрудник фирмы или проекты, реализуемые предприятием. Атрибуты – составляющая, которая описывает или квалифицирует сущность. Например, атрибут сущности «работник» — заработная плата, а атрибут сущности «проект» — сметная стоимость. Связи – ассоциации между двумя элементами. Она может быть двунаправленная. Также существует рекурсивная связь, то есть связь сущности с самой собой.
Также необходимо определить ключи и условия, при которых сохранится целостность базы данных. Что это значит? Другими словами — ограничения, которые помогут сохранить базы данных в правильном и согласованном виде.
Основные операторы SQL
Обзор технологии СУБД SQL и описание основных операторов для создания, управления, обработки данных…
Переход от ER-диаграммы к табличной модели
Правила перехода к табличной модели:
- Преобразовать все сущности в таблицы.
- Преобразовать все атрибуты в столбцы, то есть каждый атрибут сущности должен быть отображен в имени столбца таблицы.
- Уникальные идентификаторы преобразовать в первичные ключи.
- Все связи преобразовать во внешние ключи.
- Осуществить создание таблицы SQL.
Создание базы
Сначала неоходимо запустить сервер MySQL. Для его запуска следует зайти в меню «Пуск», затем в «Программы», далее в MySQL и MySQL Server, выбрать MySQL-Command-Line-Client.
Для создания базы данных применяется команда Create Database. Данная функция имеет следующий формат:
CREATE DATABASE название_базы_данных.
Ограничения на название базы следующие:
- длина составляет до 64 знаков и может включать буквы, цифры, символы «» и «»;
- имя может начинаться с цифры, но в нем должны присутствовать буквы.
Нужно помнить и общее правило: любой запрос или команда заканчиваются разделителем (delimiter). В SQL принято в качестве разделителя использовать точку с запятой.
Серверу необходимо указать, с какой базой данных нужно будет работать. Для этого существует оператор USE. Этот оператор имеет простой синтаксис: USE название_базы_данных.
Создание таблицы SQL
Итак, модель спроектирована, база данных создана, и серверу указано, как именно с ней нужно работать. Теперь можно начинать создавать таблицы SQL. Существует язык определения данных (DDL). Он используется для создания таблицы MS SQL, а также для определения объектов и работы с их структурой. DDL включает в себя набор команд.
SQL CREATE DATABASE Statement
Чтобы создать базу данных в СУБД SQL применяется оператор CREATE. Детали уточняются в аргументах,…
SQL Server создания таблицы
Используя всего лишь одну команду DDL, можно создавать различные объекты базы, варьируя ее параметры. Для создания таблицы SQL применяется команда Create Table. Формат tt выглядит следующим образом:
CREATE TADLE название_таблицы, (название_столбца1 тип данных [DEFAULT выражение] [ограничение_столбца], название_столбца2 тип данных [DEFAULT выражение] [ограничение_столбца],[ограничения_таблицы]).
Следует подробнее описать синтаксис указанной команды:
- Название таблицы должно иметь длину до 30 символов и начинаться с буквы. Допустимы только символы алфавита, буквы, а также символы «_», «$» и «#». Разрешено использование кириллицы. Важно отметить, что имена таблиц не должны совпадать с именами других объектов и с зарезервированными словами сервера базы данных, таких как Column, Table, Index и т. д.
- Для каждого столбца следует обязательно указать тип данных. Существует стандартный набор, используемый большинством. Например, Char, Varchar, Number, Date, тип Null и т. д.
Типы данных в Access: классификация, описание,…
Базы данных Access, как и остальные БД, хранят в своих таблицах множество информации. Некоторые из…
- С помощью параметра Default можно задать значение по умолчанию. Это гарантирует, что в таблице не будет неопределенных значений. Как это понимать? Значением по умолчанию может быть символ, выражение, функция.
Важно помнить, что тип этих данных, заданных по умолчанию, должен совпадать с типом вводимых данных столбца.
- Ограничения на каждый столбец используют для реализации обеспечения условий целостности для данных на уровне таблицы. Есть и еще нюансы. Запрещено удалять таблицу, если есть зависимые от нее другие таблицы.
Как работать с базой
Для реализации крупных проектов чаще всего требуется создание нескольких баз данных, и каждая требует множество таблиц. Конечно, удержать всю информацию в голове пользователям невозможно. Для этого предусмотрена возможность посмотреть структуру баз данных и таблиц в них. Существует несколько команд, а именно:
- SHOW DATABASES – показывает на экране все созданные базы данных SQL;
- SHOW TABLES – выводит список всех таблиц для текущей базы данных, которые выбираются командой USE;
- DESCRIBE название_таблицы – показывает описание всех столбцов таблицы.
- ALTER TABLE – позволяет изменять структуру таблицы.
Последняя команда позволяет:
- добавить в таблицу столбец или ограничение;
- изменить существующий столбец;
- удалить столбец или столбцы;
- удалить ограничения целостности.
Синтаксис этой команды выглядит так: ALTER TABLE название_таблицы { [ADD название_столбца или ограничения] | [MODIFY название_изменяемого_столбца] | [DROP название_удалаяемого_столбца(ов)] | [DROP удаляемое_ограничение] | [{ENABLE | DISABLE} CONSTANT имя_ограничения ] | }.
Существуют и другие команды:
- RENAME – переименование таблицы.
- TRUNCATE TABLE -удаляет все строки из таблицы. Эта функция может быть нужна, когда необходимо заполнить таблицу заново, а хранить предыдущие данные нет необходимости.
Также бывают ситуации, когда структура базы поменялась и таблицу следует удалить. Для этого существует команда DROP. Конечно, предварительно нужно выбрать базу данных, из которой нужно удалить таблицу, если она отличается от текущей.
Синтаксис команды довольно простой: DROP TABLE название_таблицы.
В SQL Access создание таблиц и их изменение осуществляется теми же командами, перечисленными выше.
С помощью CREATE TABLE можно создать пустую таблицу и в дальнейшем заполнить ее данными. Но это еще не все. Также можно сразу создавать таблицу из другой таблицы. Как это? То есть существует возможность определить таблицу и заполнить ее данными другой таблицы. Для этого существует специальное ключевое слово AS.
Синтаксис очень простой:
- CREATE TABLE название_таблицы [(определение_столбцов)] AS подзапрос;
- определение_столбцов – имена столбцов, правила целостности для столбцов вновь создаваемой таблицы и значения по умолчанию;
- подзапрос – возвращает такие строки, которые нужно добавить в новую таблицу.
Таким образом, такая команда создает таблицу с определенными столбцами, вставляет в нее строки, которые возвращаются в запросе.
Временные таблицы
Временные таблицы — это таблицы, данные в которых стираются в конце каждого сеанса или раньше. Они используются для записи промежуточных значений или результатов. Их можно применять в качестве рабочих таблиц. Определять временные можно в любом сеансе, а пользоваться их данными можно только в текущем сеансе. Создание временных таблиц SQL происходит аналогично обычным, с использованием команды CREATE TABLE. Для того чтобы показать системе, что таблица временная, нужно использовать параметр GLOBAL TEMPORARY.
Предложение ON COMMIT устанавливает время жизни данных в такой таблице и может выполнять следующие действия:
- DELETE ROWS –очистить временную таблицу (удалить все данные сеанса) после каждого завершения транзакции. Обычно это значение используется по умолчанию.
- PRESERVE ROWS –оставить данные для использования их в следующей транзакции. Помимо этого, можно очистить таблицу только после завершения сеанса. Но есть особенности. Если произошел откат транзакции (ROLLBACK), таблица будет возвращена к состоянию на конец предыдущей транзакции.
Синтаксис создания временной таблицы может быть представлен таким образом: CREATE [GLOBAL TEMPORARY] TABLE название_таблицы, (название_столбца1 тип данных [DEFAULT выражение] [ограничение_столбца], название_столбца2 тип данных [DEFAULT выражение] [ограничение_столбца], [ограничения_таблицы]).
SQL Server CREATE TABLE синтаксические диаграммы
Многие из нас видели в MSDN заголовок «Синтаксис», за которым следует множество вложенных скобок и ключевых слов, достаточных, чтобы отпугнуть самых решительных резаков кода. Однако там есть золотая жила информации, и у Фила было стремление добраться до нее и поделиться золотом. Результатом стала эта статья, полная схем железных дорог
В большинстве случаев мы можем совершенно адекватно создавать таблицы, используя предпочитаемый нами инструмент с графическим интерфейсом. Однако для сложных таблиц графический интерфейс не всегда может предоставить то, что нам нужно, а даже если и дает, то часто быстрее и проще использовать код.
Диаграммы «Форма Бэкуса-Наура (БНФ)» в MSDN, формат которых я кратко рассмотрю ближе к концу статьи, объясняют каждую деталь синтаксиса, но в форме, которую очень трудно усвоить и запомнить. голова, ну в моей голове так или иначе. Часто я обнаруживаю, что реконструирую синтаксис из примеров.
Цель этой статьи — предоставить плавный маршрут по синтаксису с помощью диаграмм в стиле железной дороги. Первоначально я разработал эти диаграммы, создавая генератор скриптов сборки на основе SQL и пытаясь изучить некоторые из более эзотерических аспектов SQL Server 2012 9.0009 СОЗДАТЬ ТАБЛИЦУ синтаксис. Однако вскоре я убедился, что другие могут найти их полезными. Я обнаружил, что детали «застревают» гораздо быстрее, когда изучают диаграммы, и благодаря их использованию я обнаружил несколько интересных фактов о том, как работает SQL Server 2012 CREATE TABLE
, которые раньше ускользали от меня.
Диаграммы, а не слова
Чтобы создать таблицу в SQL Server, нам достаточно воспользоваться командой CREATE TABLE
, указать имя таблицы и список нужных нам столбцов. Мы также можем указать, где должна храниться таблица, и предоставить некоторые параметры таблицы, включая ограничения.
Чтобы описать это более подробно, потребовалось бы слишком много слов, поэтому вместо этого я буду использовать диаграммы. Это железнодорожные или синтаксические диаграммы, и вы иногда сталкиваетесь с ними в SQL. SQLite, например, имеет их для своей документации, как и Oracle.
Для синтаксической диаграммы существует только одна точка входа и одна точка выхода. Начинаем с точки входа и читаем слева направо. Мы можем пойти по любому из возможных путей или железнодорожных путей к выходу, но мы можем двигаться только в одном направлении по каждому пути.
Я немного изменил традицию, пробежав страницу вниз, а также слева направо, но в других местах я придерживался следующих соглашений:
- Команды и другие ключевые слова отображаются в ПРОПИСНЫХ буквах внутри прямоугольников, и мы их печатаем буквально, как показано в прямоугольниках.
- Параметры отображаются строчными буквами внутри овалов.
Обычно мы подставляем собственную информацию, такую как названия таблиц, столбцов, числа или выражения, вместо параметров . Если параметры заключены в угловые скобки, они представляют всю диаграмму.
- Знаки препинания, операторы, разделители и терминаторы появляются внутри кругов.
Там, где синтаксис становится немного запутанным, я взял на себя смелость поставить знак препинания с соответствующим символом, а не выделять его в отдельный круг. Я делал это только там, где места немного мало, а использование недвусмысленно.
Использование синтаксической диаграммы
Как только вы освоитесь со схемой железной дороги, это отличный способ быстро понять синтаксис. Начните сверху, с конечной остановки, и путешествуйте по железнодорожной системе. Вы можете идти только в одну сторону. Как и на любой карте железных дорог, здесь есть определенные участки, похожие на пригородные линии вокруг крупных городов и через них, которые требуют «покомпонентного просмотра», чтобы показать детали.
В таких точках параметр в овале появляется в угловых скобках ( <>
). Это сигнализирует о том, что для детализации нам нужно временно перейти на более подробную карту. Когда синтаксическая диаграмма стремится быть настолько полной, чтобы кто-то мог использовать ее для разработки синтаксического анализатора, она может стать довольно сложной. К счастью, это не относится к нашим диаграммам.
Синтаксические диаграммы SQL Server 2012 CREATE TABLE
Следующая диаграмма Evey выполнена в сокращенном разрешении, поэтому она помещается на странице. Нажмите на него, чтобы увидеть его в приличном размере, или используйте файл PDF, чтобы просмотреть его или распечатать в хорошем рабочем размере. Файлы PDF находятся в загрузках внизу статьи.
Несмотря на то, что для создания таблицы необходимо учитывать только одну высокоуровневую диаграмму, на определенных этапах пути нам может потребоваться пять других подробных диаграмм. Я предоставляю каждую диаграмму в виде отдельного PDF-файла, как часть кода, загружаемого с этой статьей (см. всплывающую подсказку справа от названия статьи). Они хорошо читаются при печати в формате A4, но я предпочитаю распечатывать их в виде настенных диаграмм формата A3.
Аннотации, которые вы увидите на каждой диаграмме, являются цитатами из MSDN, которым должны принадлежать все заслуги. Слова в MSDN 9Страница 0009 CREATE TABLE создана с большой тщательностью. В то время как я заметил ошибки в синтаксисе BNF на странице, слова всегда были на месте и наполнены информацией.
Возьмем краткий пример использования, взятый из диаграммы create_table_overview .
Точка входа CREATE TABLE
. Отсюда мы можем уточнить имя таблицы с помощью имени базы данных и имени схемы, разделенных точкой ( MyDB.MySchema.MyTable
), или мы можем просто указать схему, или мы можем просто ввести имя таблицы.
После открывающей скобки мы попадаем на соединение
, где при необходимости мы можем перейти к синтаксической диаграмме определения столбца для получения подробной информации о том, как определить необходимые столбцы.
Запятая отделяет одно определение столбца от другого, или от вычисляемого определения столбца, или от определения ограничения столбца и т. д. Таким образом, мы пробираемся через сеть железных дорог в направлениях, указанных стрелками, и делаем выбор на каждом перекрестке.
Обзор синтаксиса CREATE TABLE
Синтаксис определения столбца
Синтаксис ограничения столбца
Определение вычисляемого столбца
90 003
Параметры таблицы
Ограничение таблицы
Параметры индекса
Используя диаграммы
, я обнаружил, что учу диаграмму быстрее, чем простое синтаксическое выражение. Если вы похожи, то вскоре обнаружите, что можете обойтись без большинства диаграмм, за исключением некоторых малопонятных операций по созданию таблиц.
Когда я читаю эти диаграммы, я иногда удивляюсь или вспоминаю странный факт, который забыл. Например, диаграмма Computed_column_definition показывает, что можно использовать вычисляемый столбец, если он сохраняется, в качестве ссылки на внешний ключ. Даже не нужно указывать столбец во внешней таблице, если он является первичным ключом. В полях IDENTITY необходимо указать начало и приращение только в том случае, если они отличаются от значений по умолчанию.
Описания синтаксиса MSDN
Описания синтаксиса, представленные в MSDN, аналогичны расширенной форме Бэкуса-Наура (EBNF), но имеют некоторые соглашения из BNF. Это очень простой язык.
Угловые скобки <>
вокруг символа, такого как пример типа данных, показанный ниже, показывают, что он не является конечным и требует отдельного определения.
- Дополнительные элементы заключены в квадратные скобки
- Группы выражений заключены в фигурные скобки
- «|» — это бинарный оператор, означающий «или».
Это определение типа данных…
<тип данных> ::= [ имя_схемы_типа . ] type_name [ ( точность [ , масштаб ] | max | [ {CONTENT | DOCUMENT } ] xml_schema_collection ) ] |
… говорит, что мы определяем data_type
символ (
). Это может начинаться со схемы типа данных (если она определена пользователем!), за которой следует обязательный
имя_типа
. После этого у нас есть скобка, за которой следует один из следующих:
- Спецификация точности и, возможно, масштаба (если это числовой тип данных)
- Квалификатор
MAX
, если это тип данныхVARCHAR
,NVARCHAR
илиVARBINARY
- Спецификация для коллекции схем XML, только для связывания типа XML с коллекцией схем
Наконец, у нас есть закрывающая скобка.
Если вы видите «n», это означает, что предыдущий символ или группу можно повторить. Например, [...n]
означает, что может быть любое количество повторов, разделенных запятой.
Резюме
Необработанный BNF документации MSDN представляет собой сложный и подверженный ошибкам способ понять синтаксис оператора CREATE TABE или любого SQL в этом отношении. Мы уже знаем из других систем баз данных, что формы железнодорожных диаграмм полезны для понимания того, как работают операторы SQL, так почему бы не использовать их для SQL Server TSQL?
Я сделал это, чтобы улучшить собственное понимание, и очень надеюсь, что вы найдете их такими же полезными, как и я. Я понимаю, что в большинстве случаев хорошо разработанный графический интерфейс — это самый простой способ выполнить работу в системе Windows, но лишь изредка код становится проще: и для того, чтобы приступить к работе, ничто не сравнится с четкой диаграммой синтаксиса.
Благодарности
Большое спасибо первооткрывателям схемы железных дорог. Также страница MSDN CREATE TABLE , откуда были взяты и адаптированы пояснительные цитаты к диаграммам.
создать таблицу в примере запроса сервера sql
Создайте таблицу в базе данных SQL-сервера и вставьте данные, изучите синтаксис Create SQL Table ,
В этом уроке вы изучите таблицу в базе данных SQL . Здесь мы изучаем базу данных на практическом примере.
Итак, просто подумайте о некоторых бизнес-требованиях, и вы узнаете, как разработать SQL-таблицу и управлять данными в соответствии с бизнес-требованиями.
СОЗДАТЬ ТАБЛИЦУ [имя_схемы].[имя_таблицы]( [IdColumnName] [bigint] IDENTITY(1,1) NOT NULL, [Имя столбца2] [varchar](50) НЕ NULL, [имя_столбца3] [дата-время] NULL )
Мы хотим создать таблицу SQL , в которой будут храниться данные всех учащихся, поэтому всякий раз, когда учащийся присоединяется к этой
учебный курс их имя, адрес электронной почты, дата рождения, контактный номер, дата присоединения, адрес и дата завершения курса будут сохранены
Здесь мы написали sql-запрос для создания таблицы, обратите внимание на иллюстрацию, вы можете увидеть, как написать имя таблицы,
имя столбца, тип данных столбца, нуль или не нуль, столбец идентификаторов и первичный ключ и т. д.
Создайте табличный запрос так же, как указано выше.
СОЗДАТЬ ТАБЛИЦУ [dbo].[tbStudent]( [studentId] [bigint] IDENTITY(1,1) NOT NULL, [FullName] [varchar](50) НЕ NULL, [Адрес] [varchar](150) NULL, [электронная почта] [varchar](100) NULL, [контактный номер] [varchar](50) NULL, [DOB] [дата и время] NULL, [обновление] [дата и время] NULL, [courseCompleteDate] [дата/время] NULL, [joiningDate] [дата/время] NULL, ОГРАНИЧЕНИЕ [PK_tbStudent] ПЕРВИЧНЫЙ КЛЮЧ КЛАСТЕРИЗОВАН ( [идентификатор студента] ASC ) С (IGNORE_DUP_KEY = OFF) ВКЛ [ПЕРВИЧНЫЙ] ) НА [ПЕРВИЧНОМ]
Если вы хотите создать таблицу по другой схеме, отличной от dbo по умолчанию, вам нужно указать имя схемы, например, если я хочу, чтобы таблица была создана по схеме студента, тогда напишите запрос, например CREATE TABLE [student].[tbStudent ](
[studentId] [bigint] IDENTITY(1,1) NOT NULL
)
, но убедитесь, что у вас есть соответствующие права на эту схему.