SQL Server笔记 -- 第53章:INSERT 第54章:主键

53.1 向名为 Invoices 的表插入一行

sql 复制代码
INSERT INTO Invoices /* 可在此列出列名 */ 
VALUES (123,'1234abc','2016-08-05 20:18:25.770',321,5,'2016-08-04');

若目标表存在 IDENTITY 列,则必须显式列出列名:

sql 复制代码
INSERT INTO Invoices ([ID],[Num],[DateTime],[Total],[Term],[DueDate])
VALUES (123,'1234abc','2016-08-05 20:18:25.770',321,5,'2016-08-25');

第54章:主键

54.1 创建含标识列的主键表

sql 复制代码
-- 标识主键------唯一自增数字
create table person (
  id int identity(1,1) primary key not null,
  firstName varchar(100) not null,
  lastName varchar(100) not null,
  dob DateTime not null,
  ssn varchar(9) not null
)

54.2 创建含 GUID 主键的表

sql 复制代码
-- GUID 主键------任意唯一值
create table person (
  id uniqueIdentifier default (newId()) primary key,
  firstName varchar(100) not null,
  lastName varchar(100) not null,
  dob DateTime not null,
  ssn varchar(9) not null
)

54.3 创建含自然主键的表

sql 复制代码
-- 自然主键------使用表中已有且唯一的数据
create table person (
  firstName varchar(100) not null,
  lastName varchar(100) not null,
  dob DateTime not null,
  ssn varchar(9) primary key not null
)

54.4 创建含复合主键的表

sql 复制代码
-- 复合主键------使用两列或更多列组合成主键
create table person (
  firstName varchar(100) not null,
  lastName varchar(100) not null,
  dob DateTime not null,
  ssn varchar(9) not null,
  primary key (firstName, lastName, dob)
)

54.5 为现有表添加主键

sql 复制代码
ALTER TABLE person ADD CONSTRAINT pk_PersonSSN PRIMARY KEY (ssn)

注意:若候选键列存在重复值,上述语句将失败,因为主键值必须唯一。

54.6 删除主键

sql 复制代码
ALTER TABLE Person DROP CONSTRAINT pk_PersonSSN
相关推荐
倔强的石头_1 天前
KingbaseES 新版MySQL 兼容版体验:旧版迁移 + 功能实测
数据库
LinXunFeng1 天前
Obsidian - 使用 Share Note 分享笔记并自部署
前端·笔记·github
zzzzzz3102 天前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
倔强的石头_4 天前
《Kingbase护城河》——数据库存储空间全景探测与精细化瘦身实战
数据库
云技纵横4 天前
唯一索引 INSERT 死锁实战:5 秒复现交叉插入的 S 锁循环等待
sql·mysql
冬奇Lab4 天前
每日一个开源项目(第134篇):Zvec - 阿里开源的嵌入式向量数据库,向量搜索界的 SQLite
数据库·人工智能·llm
ClouGence5 天前
Oracle CDC 架构优化:从主库直连到 DataGuard 备库同步
数据库·后端·oracle
无响应de神5 天前
三、用户与权限管理
数据库·mysql
麦聪聊数据6 天前
数据服务化时代:企业数据能力输出的核心路径
数据库
shushangyun_6 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化