Оператор SQL PRIMARY KEY
Оператор SQL PRIMARY KEY (Первичный ключ) — это параметр, который устанавливается для однозначной идентификации той или иной записи в таблице. Значения SQL PRIMARY KEY должны быть всегда уникальны, а так же не содержать значений NULL.
Любая таблица обязана иметь Первичный ключ, по которому можно однозначно идентифицировать записи в ней.
Оператор SQL PRIMARY KEY имеет следующий синтаксис:
Для MySQL:
CREATE TABLE table_name ( Id int NOT NULL, PRIMARY KEY (Id) )
Для MS SQL Server, Oracle, MS Access:
CREATE TABLE table_name ( Id int NOT NULL PRIMARY KEY )
Примеры оператора SQL PRIMARY KEY. Используя оператор SQL PRIMARY KEY, по аналогии с примером 1 оператора SQL CREATE создать таблицу Planets с Первичным ключом ID:
Решение для MySQL:
CREATE TABLE Planets ( ID int NOT NULL, PlanetName varchar(10), Radius float (10), SunSeason float(10), OpeningYear int, HavingRings bit, Opener varchar(30) PRIMARY KEY (ID) )
Решение для MS SQL Server, Oracle, MS Access:
CREATE TABLE Planets ( ID int NOT NULL PRIMARY KEY, PlanetName varchar(10), Radius float (10), SunSeason float(10), OpeningYear int, HavingRings bit, Opener varchar(30) )
Руководство по SQL. Констрейнт PRIMARY_KEY.
Для таблицы первичный ключ (Primary Key) – это поле, которое являетс ядентификатором для каждой отдельной записи в таблице базы данных (далее – БД). Первичный клдюч обязательно должен быть NOT NULL.
Таблица может иметь только один первичный ключ, который может состоять как из одного, так и из несколькх полей. Когда первичный ключ таблицы использует несколько полей, он называется композитным.
Если таблица имеет первичный ключ, прикреплённый к любому полю, то мы не можем иметь две записи с одинкаовым значением данного поля. Другими словами, в каждой таблице первичный ключ – это уникальное значение.
Предположим, что у нас есть таблица developers, в которой поле ID является первичным ключом. В этом случае, наша таблица будет иметь следующий вид:
CREATE TABLE developers( ID INT NOT NULL, NAME VARCHAR (100) NOT NULL, SPECIALTY VARCHAR(100) NOT NULL, SALARY INT NOT NULL, PRIMARY KEY (ID) );
Для того, чтобы определить первичный ключ в уже существующей талице в RDBMS MySQL мы должны применить следующую команду:
ALTER TABLE developers ADD PRIMARY KEY (ID);
Стоит отметить, что если мы хотим указать первичный ключ в уже существующей таблице, необходимо, чтобы указзаное нами поле уже имело констрейнт NOT NULL.
Для того, чтобы опредлеить композитный первичный ключ в той же RDBMS мы должны использовать команду, указанную ниже:
CREATE TABLE developers( ID INT NOT NULL, NAME VARCHAR (100) NOT NULL, SPECIALTY VARCHAR(100) NOT NULL, SALARY INT NOT NULL, PRIMARY KEY (ID, NAME) );
Для создания констрейнта PRIMARY KEY для полей ID и NAMES в уже существующей таблице для RDBMS MySQL, мы должны использовать такую команду:
ALTER TABLE developers ADD CONSTRAINT PK_DEVELOPER_ID PRIMARY KEY (ID, NAME);
Для удаление констрейнта PRIMARY KEY в той же RDBMS испольуется следующая команда:
ALTER TABLE developers DROP PRIMARY KEY ;
На этом мы заканчиваем изучение констрейнта PRIMARY KEY.
Полезности
Туториалы
Системный дизайн
Собеседования
Студенты
Задачи
Немного о себе
Приветствую! Меня зовут Евгений. На этом сайте я пишу о разработке программного обеспечения. Связаться со мной вы можете по email: proselytear@yahoo.com Имеет смысл, предварительно ознакомиться вот с этим FAQ разделом.
Недавние публикации
- Механизмы CAS и FAA глазами Java разработчика
- ExecutorService в Java и примеры его применения.
- Особенности работы PreparedStatement в JDBC
- Основы кэширования в Hibernate
- Феномены чтения глазами разработчика
Copyright © 2023 PROSELYTE.
Omega WordPress Theme by ThemeHall
Создание первичных ключей
Вы можете определить первичный ключ в SQL Server с помощью SQL Server Management Studio или Transact-SQL. Создание первичного ключа автоматически приводит к созданию соответствующего уникального кластеризованного индекса (или некластеризованного при наличии такого указания).
Перед началом
Ограничения
- В таблице возможно наличие только одного ограничения по первичному ключу.
- Все столбцы с ограничением PRIMARY KEY должны иметь признак NOT NULL. Если допустимость значения NULL не указана, то для всех столбцов c ограничением PRIMARY KEY устанавливается признак NOT NULL.
Безопасность
Разрешения
Создание новой таблицы с первичным ключом требует разрешения CREATE TABLE в базе данных и разрешения ALTER на схему, в которой создается таблица.
Создание первичного ключа в существующей таблице требует разрешения ALTER на таблицу.
Использование SQL Server Management Studio
Создание первичного ключа
- В обозреватель объектов щелкните правой кнопкой мыши таблицу, к которой нужно добавить уникальное ограничение, и выберите Пункт Конструктор.
- В Designer таблицы выберите селектор строк для столбца базы данных, который необходимо определить в качестве первичного ключа. Если вы хотите выбрать несколько столбцов, удерживайте нажатой клавишу CTRL, выбирая селекторы строк для других столбцов.
- Щелкните правой кнопкой мыши средство выбора строк столбца и выберите команду Задать первичный ключ.
Чтобы переопределить первичный ключ, необходимо удалить все связи с существующим первичным ключом и только после этого создавать новый первичный ключ. Появится сообщение, предупреждающее об автоматическом удалении в ходе процесса всех существующих связей.
Ключевой столбец-источник идентифицируется символом первичного ключа в соответствующем селекторе строк.
Если первичный ключ состоит более чем из одного столбца, то в одном столбце могут встречаться дублирующиеся значения, но все сочетания значений изо всех столбцов первичного ключа должны быть уникальными.
При определении составного ключа порядок столбцов в первичном ключе совпадает с порядком столбцов, показанным в таблице. Однако после создания первичного ключа порядок столбцов можно изменить. Дополнительные сведения см. в разделе Изменение первичных ключей.
Использование Transact-SQL
Создание первичного ключа в существующей таблице
В следующем примере создается первичный ключ для столбца TransactionID в базе данных AdventureWorks.
ALTER TABLE Production.TransactionHistoryArchive ADD CONSTRAINT PK_TransactionHistoryArchive_TransactionID PRIMARY KEY CLUSTERED (TransactionID);
Создание первичного ключа в новой таблице
В следующем примере создается таблица и определяется первичный ключ для столбца TransactionID в базе данных AdventureWorks.
CREATE TABLE Production.TransactionHistoryArchive1 ( TransactionID int IDENTITY (1,1) NOT NULL , CONSTRAINT PK_TransactionHistoryArchive1_TransactionID PRIMARY KEY CLUSTERED (TransactionID) ) ;
Создание первичного ключа с кластеризованным индексом в новой таблице
В следующем примере создается таблица и определяется первичный ключ для столбца CustomerID и кластеризованного индекса для TransactionID в базе данных AdventureWorks.
-- Create table to add the clustered index CREATE TABLE Production.TransactionHistoryArchive1 ( CustomerID uniqueidentifier DEFAULT NEWSEQUENTIALID() , TransactionID int IDENTITY (1,1) NOT NULL , CONSTRAINT PK_TransactionHistoryArchive1_CustomerID PRIMARY KEY NONCLUSTERED (CustomerID) ) ; -- Now add the clustered index CREATE CLUSTERED INDEX CIX_TransactionID ON Production.TransactionHistoryArchive1 (TransactionID);
Дальнейшие действия
- ALTER TABLE
- CREATE TABLE
- table_constraint
Primary Keys MySQL
В MySQL Primary Keys представляет собой одно поле или комбинацию полей, которые определяют уникальную запись. Поля, которые являются частью первичного ключа, не могут содержать значение NULL. В таблице может быть только один первичный ключ.
Примечание
- В MySQL первичный ключ создается с помощью оператора CREATE TABLE или оператора ALTER TABLE.
- Вы используете оператор ALTER TABLE в MySQL для удаления, отключения или включения первичного ключа.
Создание первичного ключа с использованием оператора CREATE TABLE
Вы можете создать первичный ключ в MySQL с помощью оператора CREATE TABLE.
Синтаксис
Синтаксис создания первичного ключа с использованием оператора CREATE TABLE в MySQL:
CREATE TABLE table_name
(
column1 column_definition,
column2 column_definition,
.
CONSTRAINT [constraint_name]
PRIMARY KEY [ USING BTREE | HASH ] (column_1, column_2, . column_n)
);
Параметры или аргументы
table_name — имя таблицы, которую вы хотите создать.
column1 , column2 — столбцы, которые вы хотите создать в таблице. См. MySQL оператор CREATE TABLE для более подробного синтаксиса CREATE TABLE, поскольку это чрезмерное упрощение, чтобы продемонстрировать, как создать PRIMARY KEY.
constraint_name — имя первичного ключа.
column_1 , column_2 , . column_n — колонки, составляющие первичный ключ.
Пример
Рассмотрим пример создания первичного ключа с помощью оператора CREATE TABLE в MySQL.
