哈喽,你好啊,我是雷工!
前边学习了基于T-SQL48_47.基于T-SQL添加数据、CRUD操作、标识列详解:《数据库|基于T-SQL向数据库数据表中添加、修改、删除数据》
接下来接着学习基于T-SQL添加默认约束、外键约束、内连接查询,以下为学习笔记。
01 默认约束
默认约束是用于指定列在插入数据时的默认值。
当向数据表中插入一行数据时,如果没有为某个列指定具体的值,那么该列将使用其默认约束定义的默认值。
在创建表时定义默认约束:
CREATE TABLE 表名(
列1 数据类型 DEFAUL 默认值,
……
);
例如:在作者表中为地址添加默认值“地址不详”
代码:
create table Author
(
AuthorId int identity(10001,1) primary key,--作者编号,主键
LoginAccount nvarchar(50)not null,--登录账号
LoginPwd varchar(18)check(len(LoginPwd)>=8 and len(LoginPwd)<=18) not null,--登录密码
AuthorName varchar(20)not null,--作者名字
Phonenumber char(11)not null,--手机
NowAddress nvarchar(100)default('地址不详')--地址
)
go
然后再次向数据表中添加数据时,如果有地址信息替换为对应地址信息,没有指定地址信息则显示“地址不详”。
测试结果如下:
02 外键约束
外键约束是数据库设计中的概念,用于确保有关系的两个表数据的一致性和完整性。
在关系数据库中,外键是一个列或列集合,它指向另一个关联表中的主键或唯一键。
作用:当我们在外键表中,添加数据的时候,如果和主表建立引用关系,则会自动的从主表中对应的字段中查询数据是否一致,不一致的话会拒绝插入。
保证数据一致。
示例:
2.1、创建账号类型表:
代码如下:
--账号类型表
if exists(select*from sysobjects where name='AccountType')
drop table AccountType
go
create table AccountType
(
TypeId int identity(10,1)primary key,--类型编号
TypeName varchar(20)not null--类型名称
)
go
2.2、添加类型
向账号类型表中添加【科技】、【美食】、【综合】三个类型
代码如下:
--添加账号分类
insert into AccountType(TypeName)values('科技'),('美食'),('综合')
查询账号类型表的信息
代码如下:
select*from AccountType
2.3、查询结果:
2.4、创建账号表
创建账号表,其中TypeId列为外键,指向账号分类表的TypeId列
代码如下:
--账号表
if exists(select*from sysobjects where name='Account')
drop table Account
go
create table Account
(
AccountId int identity(10001,1) primary key,--账号编号
AccountName varchar(20)not null,--账号名称
AccountContent nvarchar(500)not null,--账号简介
originality int not null,--原创数
TypeId int references AccountType(TypeId) not null--外键约束
)
go
2.5、向账号表添加信息
当添加的信息中TypeId值(9)在账号类型表中不存在时,插入报错。
代码及执行结果如下:
当添加的信息中TypeId值为11,在账号类型表中存在时,则可正常插入。
代码及执行结果:
查询插入结果为:
03 内连接查询
通过inner join连很查询两个表的信息。
代码示例:
select AccountName,AccountContent,originality,Account.TypeId,AccountType.TypeName from Account
inner join AccountType on Account.TypeId=AccountType.TypeId
查询结果:
04、后记
以上为基于T-SQL添加默认约束、外键约束、内连接查询相关的基础内容,
有对相关内容感兴趣的小伙伴,欢迎点个关注,我们一起学习进步。