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
相关推荐
爱写代码的阿森13 分钟前
鸿蒙三方库 | harmony-utils之KvUtil键值型数据库操作详解
数据库·华为·harmonyos·鸿蒙·huawei
Database_Cool_30 分钟前
单机 MySQL 迁移到分布式数据库方便吗?阿里云 PolarDB-X 100% MySQL 协议兼容零改造平滑迁移
数据库·分布式·mysql
姜太小白1 小时前
【MySQL】 索引优化实战:解决 WHERE 等值 + IS NULL 查询,TEXT 字段报错 1167 的完整指南
数据库·mysql
a1117762 小时前
2FA 验证码生成器(github登录验证 app)
笔记·学习
窝子面2 小时前
手搓最简前后端协作-node
javascript·数据库
吳所畏惧2 小时前
宝塔面板Redis密码修改指南:SSH命令修改 vs 面板UI界面修改,哪个更靠谱?
运维·服务器·数据库·redis·缓存·ssh
DFT计算杂谈2 小时前
无 Root 权限在 Tesla K80 零门槛部署 DeepSeek 大模型
linux·服务器·网络·数据库·机器学习
HPFBoy2 小时前
log4net 数据库存日志正确配置
数据库
liuxiaowei33 小时前
【绝版教程】新版MySQL DBA高级实战进阶班 MySQL8.0 姜承尧-腾讯数据库总监
数据库·mysql·dba