mybatisplus 操作另一个数据库的数据_数据库操作的那点事

本文介绍了数据库中的表结构,包括表约束如主键、唯一、检查和默认约束,以及外键约束,强调了它们在确保数据完整性和一致性中的作用。接着,讲解了如何创建和修改表字段,并对比了临时表和表变量的使用场景及区别。最后,详细阐述了多表连接查询,包括内连接、外连接(左外、右外和全外)的概念及其在实际查询中的应用。
摘要由CSDN通过智能技术生成
2551a1e4099cbe5cb2a5b36f13ca3654.png

一、创建表

(先简单说一下什么是表,表是一种结构化的文件,可以用来存储特定类型的数据。另外,在一个数据库中,表的名称是唯一的,不能重复。)

1、表约束

①主键约束 (primary key):主键可以由一个字段或多个字段构成,但是设置为主键的字段在表中通常是唯一的值,并且不能随便修改也不能为空。

②唯一约束(unique) :该列的值是惟一的,且可以为空

③检查约束 (check): 规定该列的取值范围,格式限制等,比如年龄的取值范围,邮件的格式等等

④默认约束(default): 设置该列的默认值

⑤外键约束(foreign key) :用于两个表之间建立关系,需要规定引用主表的那列,定义外键的那张表称之为子表,另一张表称之为主表,在表的创建过程中,应该先创建主表,后创建子表。

2、创建表

说完了表约束,万事俱备,只欠一张表了。

语法格式:

create table 表名( 列名称 类型 约束, 列名称 类型 约束, ......... ) ¨G0G create table Student( studentid int primary key, --主键 name varchar(20) not null, --不能为空 age int check(age between 1 and 120), --检查约束(年龄在1-120之间) gender varchar(2) check(gender='男' or gender='女'), --检查约束 address varchar(50) default 青岛市, --默认约束 idcard char(18) unique, --唯一约束 classid int foreign key references Class(classid) --外键约束 ) ¨G1G 主键: alter table 表名 add constraint PK_字段名 primary key (字段名) 唯一: alter table 表名 add constraint UQ_字段名 unique (字段名) 检查: alter table 表名 add constraint CK_字段名 check (条件表达式) 默认: alter table 表名 add constraint DF_字段名 default '默认值' for 字段名 外键: alter table 表名 add constraint FK_字段名 foreign key(字段名) references 关联的表名(关联的字段名) ¨G2G alter table 表名 drop constraint 约束名(约束名就是在前面创建的,如 “PK_字段”)

注:如果约束是在创建表时创建的,则不能用这种命令删除,只能在企业管理器里面删除

3、添加、修改字段

添加字段:

Alter table [表名] add [列名] 类型

修改字段类型:

Alter table [表名] alter column [列名] 类型

二、临时表和表变量

1、先说说如何声明和插入数据

表变量:

声明:DECLARE @tb_table TABLE(................)插入:insert into @tb_table select name from Student

临时表:

声明:create table #tb_table ((................)插入:insert into #tb_table select name from Student

2、区别

平时用的最多的地方就是在存储过程里,简单说一下他俩的区别。临时表是利用了硬盘(tempdb数据库) ,表变量是占用内存,因此小数据量当然是内存中的表变量更快。当大数据量时,就不能用表变量了,太耗内存了。大数据量时适合用临时表。表变量在执行完批处理语句后就会自动清理,而临时表需要手动删除。

三、多表连接查询

前面既然提到了外键约束,那我们就来说说如何查询多张存在关联的表

1、内连接(inner join)

先直接上sql语句吧:

select a.name,a.age,b.classname from Student a inner join Class b on a.classid=b.classid where studentid=0001

这是关联学生和班级表,查询出学号为0001的学生的姓名、年龄、班级。这两张表是通过classid这个字段关联的,所以用a和b来区分这两张表(a,b相当于一个代号),在select后查询的字段最好是加上这个代号,因为如果查询的字段在两张表中都存在时,它无法区分你查的是哪张表里的,所以会报错。

2.外链接

它所连接的两张表是主表与次表的关系,主表的数据,必须全部显示,次表的数据,只在与主表中的数据有关联的才能显示。

①左外链接:左边的表是主表,必须全部显示,右边的表是次表,关联上才可以显示。

select a.name,a.age,b.classname from Student a left outer join Class b on a.classid=b.classid where studentid=0001

①右外链接:右边的表是主表,必须全部显示,左边的表是次表,关联上才可以显示。

select a.name,a.age,b.classname from Student a right outer join Class b on a.classid=b.classid where studentid=0001

③完全外链接:两张表都是主表,不管是否关联上,都要显示

select a.name,a.age,b.classname from Student a full outer join Class b on a.classid=b.classid where studentid=0001
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值