0
点赞
收藏
分享

微信扫一扫

数据库系统概论2022 Educoder SQLServer--初体验 主键约束

止止_8fc8 2022-03-30 阅读 66
数据库

第1关:主键约束


任务描述

本关任务:创建表,并且添加主键约束。

相关知识

主键,是表中一列或者多列的组合,主键约束( Primary Key Constraint )要求主键列的数据唯一,并且不允许为空。主键能够唯一的标识表中的每一条记录,可以结合外键,来定义与不同数据表之间的关系。
怎么理解主键呢?我们知道数据库中的表可以存放很多数据,如果把表中的每一条数据比作一个人的话,那么表的主键就可以看做是人的身份证

为了完成本关任务,你需要掌握:怎么给表中的字段添加主键约束。

添加主键约束

有两种方式可以添加主键约束:1.在定义列的同时指定主键,2.在定义完字段之后,再指定主键。

(1) 在定义列的同时指定主键:

(2) 在定义完所有列之后,指定主键。

多字段联合主键

在开发中,还有一种情况很常见,就是将几个字段联合在一起作为主键,那这个在代码中怎么实现呢?
举个例子,我们将员工的名字和部门 ID 联合起来作为主键:

 
  1. CREATE TABLE t_emp2
  2. (
  3. name VARCHAR(32),
  4. deptId INT,
  5. salary FLOAT,
  6. PRIMARY KEY(name,deptId)
  7. )

语句执行后,会将 name 和 deptId 字段组合成为表 t_emp2 的多字段组合主键。

编程要求

在数据库 MyDb 中,创建两张表 t_user1 , t_user2 ,表结构如下,请为两张表分别创建主键约束, t_user1 的主键为 userId , t_user2 的主键为联合主键,将字段 name 和 phone 作为 t_user2 的联合主键。

表t_user1

字段名数据类型备注
userIdINT用户ID
nameVARCHAR(32)用户名
passwordVARCHAR(32)密码
phoneVARCHAR(11)电话号码
emailVARCHAR(32)邮箱

表t_user2

字段名数据类型备注
nameVARCHAR(32)用户名
phoneVARCHAR(11)电话号码
emailVARCHAR(32)邮箱

测试说明

点击评测之后,平台会查看你的两张表是否按照要求创建成功。若成功,则会输出如图结果;否则,输出报错信息,详细输出请查看右侧测试集。

提示:

连接数据库: sqlcmd -S localhost -U sa -P '<123123Aa!@>'

删除表: drop table 表名

我还想让你知道的知识:

如果我们创建表的时候,发现字段类型设置错了想修改,应该怎么做呢?

ALTER TABLE t_user1 ALTER COLUMN phone VARCHAR(11)

该语句可以将 t_user1 表的 phone 字段的字段类型和长度修改为: varchar(11) 。

示例代码

sqlcmd -S localhost -U sa -P '<123123Aa!@>'
1> create database MyDb
2> go
1> use MyDb
2> go
Changed database context to 'MyDb'.
1> create table t_user1
2> (
3> userId int primary key,
4> name varchar(32),
5> password varchar(32),
6> phone varchar(11),
7> email varchar(32)
8> )
9> go
1> create table t_user2
2> (
3> name varchar(32),
4> phone varchar(11),
5> email varchar(32),
6> primary key(name,phone)
7> )
8> go
举报

相关推荐

0 条评论