ПЕРВИЧНЫЙ КЛЮЧ SQL — javatpoint
следующий>> <<предыдущая Столбец или столбцы называются первичным ключом (ПК) , который однозначно идентифицирует каждую строку в таблице . Если вы хотите создать первичный ключ, вы должны определить ограничение PRIMARY KEY при создании или изменении таблицы. Если в качестве первичного ключа используется несколько столбцов, он называется составным первичным ключом . При разработке составного первичного ключа следует использовать как можно меньше столбцов. Это хорошо как для хранения, так и для производительности: чем больше столбцов вы используете для первичного ключа, тем больше места для хранения вам требуется. С точки зрения производительности, меньше данных означает, что база данных может работать быстрее. Пункты, которые следует помнить для первичного ключа:
Когда мы указываем ограничение первичного ключа для таблицы, механизм базы данных автоматически создает уникальный индекс для столбца первичного ключа. Основное преимущество первичного ключа:Основное преимущество этой уникальности в том, что мы получаем быстрый доступ . В Oracle первичный ключ не может содержать более 32 столбцов. Первичный ключ SQL для одного столбца:Следующая команда SQL создает ПЕРВИЧНЫЙ КЛЮЧ в столбце «S_Id» при создании таблицы «students». MySQL: СОЗДАТЬ ТАБЛИЦУ студентов ( S_Id целое НЕ НУЛЕВОЕ, Фамилия varchar (255) НЕ NULL, Имя varchar (255), Адрес varchar (255), Городской варчар (255), ПЕРВИЧНЫЙ КЛЮЧ (S_Id) ) SQL Server, Oracle, MS Access: СОЗДАТЬ ТАБЛИЦУ студентов ( S_Id int NOT NULL ПЕРВИЧНЫЙ КЛЮЧ, Фамилия varchar (255) НЕ NULL, Имя varchar (255), Адрес varchar (255), Городской варчар (255), ) Первичный ключ SQL для нескольких столбцов:MySQL, SQL Server, Oracle, MS Доступ: СОЗДАТЬ ТАБЛИЦУ студентов ( S_Id целое НЕ НУЛЕВОЕ, Фамилия varchar (255) НЕ NULL, Имя varchar (255), Адрес varchar (255), Городской варчар (255), ОГРАНИЧЕНИЕ pk_StudentID ПЕРВИЧНЫЙ КЛЮЧ (S_Id, Фамилия) ) Примечание: следует отметить, что в приведенном выше примере есть только один ПЕРВИЧНЫЙ КЛЮЧ (pk_StudentID). Однако он состоит из двух столбцов (S_Id и LastName). Первичный ключ SQL на ALTER TABLEЕсли таблица уже создана и вы хотите создать ограничение PRIMARY KEY для столбца «S_Id», вы должны использовать следующий SQL: Первичный ключ в одном столбце: Первичный ключ для нескольких столбцов: ИЗМЕНИТЬ ТАБЛИЦУ студентов ДОБАВИТЬ ОГРАНИЧЕНИЕ pk_StudentID ПЕРВИЧНЫЙ КЛЮЧ (S_Id, Фамилия) При использовании оператора ALTER TABLE для добавления первичного ключа столбцы первичного ключа не должны содержать значений NULL (при первом создании таблицы). Как УДАЛИТЬ ограничение ПЕРВИЧНОГО КЛЮЧА?Если вы хотите DROP (удалить) ограничение первичного ключа, вы должны использовать следующий синтаксис: MySQL: ИЗМЕНИТЬ ТАБЛИЦУ студентов УДАЛИТЬ ПЕРВИЧНЫЙ КЛЮЧ SQL Server/Oracle/MS Access: ИЗМЕНИТЬ ТАБЛИЦУ студентов УДАЛИТЬ ОГРАНИЧЕНИЕ pk_StudentID Следующая темаВнешний ключ SQL <<пред. следующий>> |
Первичный ключ в SQL Server
Здесь вы узнаете, что такое первичный ключ и как его создать в новой или существующей таблице в базе данных SQL Server.
Что такое первичный ключ?
В SQL Server первичный ключ — это ограничение, однозначно идентифицирующее каждую строку в таблице. Он обеспечивает целостность данных в таблицах.
- Таблица может иметь только один первичный ключ.
- Первичный ключ может быть определен для одного столбца или комбинации нескольких столбцов, известной как составной первичный ключ.
- Первичный ключ не может превышать 16 столбцов и иметь общую длину ключа 900 байт.
- Первичный ключ однозначно идентифицирует каждую строку в таблице. Он часто определяется в столбце идентификаторов.
- Столбец первичного ключа не допускает пустых или повторяющихся значений.
- Все столбцы, определенные в ограничении первичного ключа, должны быть определены как столбцы NOT NULL.
- Если кластеризованный или некластеризованный не указан, то будет создан уникальный кластеризованный индекс для столбца первичного ключа, если в таблице нет кластеризованного индекса. Это ускоряет извлечение данных всякий раз, когда в запрос включается столбец первичного ключа.
Первичный ключ можно создать двумя способами в SQL Server:
- Использование T-SQL
- Использование SSMS (SQL Server Management Studio)
Создание первичного ключа с помощью T-SQL
Первичный ключ можно настроить в сценарии создания таблицы T-SQL.
Добавить оператор CONSTRAINT
в конце объявления всех столбцов.
CONSTRAINTPRIMARY KEY [CLUSTERED | НЕКЛАСТЕРНЫЕ] ( )
Имя первичного ключа должно быть в формате PK_TableName_ColumnName
, чтобы его было легко распознать.
Следующий запрос создает новый Таблица Employee
и определяет первичный ключ в столбце EmployeeID
.
СОЗДАТЬ ТАБЛИЦУ Сотрудник( IDСотрудника int IDENTITY(1,1) NOT NULL, Имя nvarchar(50) НЕ NULL, Фамилия nvarchar(50) НЕ NULL, Электронная почта nvarchar(50) NULL, Телефон nvarchar(20) NULL, Дата HireDate NULL, ID менеджера целое NULL, Плавающая зарплата NULL, ИД отдела smallint NULL, ОГРАНИЧЕНИЕ PK_Employee_EmployeeID ПЕРВИЧНЫЙ КЛЮЧ (EmployeeID))
Если вы хотите настроить несколько столбцов в качестве первичного ключа, укажите имена столбцов в скобках.
Например, следующее конфигурирует EmployeeID
ManagerID
в качестве первичного ключа.СОЗДАТЬ ТАБЛИЦУ Сотрудник( IDСотрудника int IDENTITY(1,1) NOT NULL, Имя nvarchar(50) НЕ NULL, Фамилия nvarchar(50) НЕ NULL, Электронная почта nvarchar(50) NULL, Телефон nvarchar(20) NULL, Дата HireDate NULL, ID менеджера int NOT NULL, Плавающая зарплата NULL, ИД отдела smallint NULL, ОГРАНИЧЕНИЕ PK_Employee_EmployeeID PRIMARY KEY (EmployeeID, ManagerID))
Повторяющиеся значения в одном столбце допускаются, если первичный ключ содержит более одного столбца, но каждая комбинация значений из всех столбцов первичного ключа должна быть уникальной.
Создать первичный ключ в существующей таблице
Используйте оператор ALTER TABLE, чтобы добавить первичный ключ в существующую таблицу.
Следующий запрос создает первичный ключ для столбца EmployeeID
таблицы Employee
в базе данных HR
.
ИЗМЕНИТЬ ТАБЛИЦУ Сотрудник ДОБАВИТЬ ОГРАНИЧЕНИЕ PK_Employee_EmployeeID ПЕРВИЧНЫЙ КЛЮЧ (EmployeeID)
Примечание. При использовании инструкции ALTER для добавления первичного ключа в столбец убедитесь, что столбцы первичного ключа объявлены как NOT NULL.
Создание первичного ключа с помощью SSMS
Откройте SSMS и разверните базу данных в обозревателе объектов, щелкните правой кнопкой мыши таблицу, в которую вы хотите добавить первичный ключ, и выберите «Дизайн», как показано ниже.
Это откроет конструктор таблиц в окне запроса.
Теперь щелкните селектор строк для столбца, для которого вы хотите определить первичный ключ. Чтобы выбрать несколько строк в качестве составных первичных ключей, удерживайте нажатой клавишу Ctrl и выберите другие столбцы.
Здесь мы установим EmployeeID
в качестве первичного ключа, поэтому щелкните его правой кнопкой мыши и выберите параметр Установить первичный ключ
в контекстном меню, как показано ниже.
Наконец, сохраните таблицу, нажав клавиши Ctrl + s или щелкнув значок сохранения на верхней панели инструментов.
После установки первичного ключа вы увидите символ первичного ключа перед столбцами, для которых вы установили их в качестве первичного ключа, как показано ниже.
Первичные ключи в SQL ServerСоздание первичного ключа с использованием индексов/ключей
Другой способ определить первичный ключ — использовать диалоговое окно Idexes/Keys. Здесь вы получите больше возможностей для его настройки.