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
相关推荐
z06.16 分钟前
MySQL索引
数据库·mysql
考虑考虑22 分钟前
Posrgresql恢复.backup文件
数据库·后端·postgresql
云祺vinchin35 分钟前
中小企业备份软件选型从恢复需求到总体成本评估
数据库·数据备份·中小企业备份·容灾备份软件
前进的李工1 小时前
Agent 学习笔记 05:系统提示词应该怎么写
笔记·学习·prompt·agent·个人开发·few-shot·ai应用开发
Zenova EdgeOS1 小时前
Go 工业边缘错误处理实战:用 errors 构建可追溯错误链
开发语言·数据库·golang
KKKlucifer1 小时前
国内数据安全服务的产品智能化转型:大模型赋能下的技术能力重构分析
大数据·数据库·重构
字节跳动开源2 小时前
OpenViking 上线原生 3D 内容理解模型
数据库·开源
蒸蒸yyyyzwd3 小时前
后端学习笔记三个知识
笔记·八股
CCIE-Yasuo4 小时前
网络安全-学习数据库-Mysql-2
数据库·学习·mysql
这个DBA有点耶4 小时前
内核级AI与多模融合:AI数据库在海外场景的落地要点
数据库·人工智能·架构