第三章:数据表管理(3):临时表,删除表,编写表脚本

本文详细介绍SQL Server中表的基本操作,包括创建、修改、删除及使用临时表的方法。通过实例演示如何创建带有主键、外键、唯一及非空约束的表,并介绍如何插入数据。同时,讲解临时表的用途及创建方式,以及如何编写表脚本来简化重复工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第三章包含以下内容:

1.数据表简介

2.创建表

3.临时表,删除表,编写表脚本

4.修改表

前言

非科班自学SQLSERVER和C#编程两年。该系列文章中涉及的知识点是在工作中需要用到的一些基础知识。文章比较适合初识数据库的学生或自学数据库的成人,文章是以SSMS作为例子。如果有认知错误的地方请大家指正。

准备步骤

--创建一个表名为Customer(客户表),拥有5个列的表,列名分别为CustomerID,CustomerName,TelNumber,Birth,Address          

create table Customer
(
CustomerID   bigint  primary key ,--主键约束
CustomerName varchar(20) unique not null , --not null 代表非空约束,unique代表唯一约束 
TelNumber    varchar(20) , 
Birth        datetime check (Birth<'1995.01.02') ,--代表生日只能小于1995.01.02
Address      varchar(50) default '地址未知'
)
--创建一个表名为CustomerOrder的客户订单表
create table CustomerOrder
(
CustomerID   bigint  foreign key references Customer(CustomerID) ,--外键约束,该外键指向客户表的customerid
product      varchar(20) ,
price        numeric(10,2) 
)
--往Customer插入数据
insert into Customer(CustomerID,CustomerName,TelNumber,Birth,Address) values(1,'Miss汪','123456','1995.01.01','上海XXX区XXX路')
insert into Customer(CustomerID,CustomerName,TelNumber,Birth,Address) values(2,'Mr.黄','1234567','1995.01.01 00:00:01','上海XXX区XXX路')
--往CustomerOrder插入数据
insert into CustomerOrder values (1,'西瓜',10.2)

临时表

临时表被分为本地临时表(#table)以及全局临时表(##table),区别在于一个以#开头,当查询界面关闭以后,表就会被删除,另一个以##开头,只有当所有用户都不在连接该数据库时才会将其删除。通常本地临时表比较常用。
大多数临时表是被用于存储那些从数据表中经过计算得到的数据,比如:我有一张客户订单表,里面有些客户只下过一次订单而有些是下过很多订单的,这个时候我们想要计算每个客户订单价格的总额,我么就可以通过一些SQL语句将这个总额插入到临时表,再最终显示给用户。

1.创建临时表
临时表的创建有两种方式:数据定义语言create ,select * into #tmp from 数据表
(1)create

--创建一个表名为#tmpTest的临时表
create table #tmpTest
(
	test varchar(20)
)

(2)select * into #tmpTest from 数据表(比较常用)

--创建一个表名为#tmpTest2的临时表,他将会沿用#tmpTest 的表结构以及将#tmpTest中的数据都插入到#tmpTest2 中。 
select * into #tmpTest2 from #tmpTest 

创建语句执行好以后你去看tempdb数据库下面的临时表你就能找到刚刚创建的两个临时表了,当你把着个查询界面关掉,再次右键刷新时你就会发现,临时表已经没了。
或者你可以用数据定义语言drop将其删除得到的效果也是一样的。

--删除临时表 #tmpTest
drop table #tmpTest
--删除临时表 #tmpTest2
drop table #tmpTest2

以下图片为tempdb数据库所在位置,以及刚创建好临时表时tempdb的状况。
在这里插入图片描述

删除表

–我好像前面写了一遍。。。
定义:drop删除指的是删除这个对象,也就是把字段类型+其中的数据全都删除掉,数据库中在也差不到这个对象了。
限制:当该表存在外键依赖时,这个表是不能被删除的,只有将依赖于该表的外键约束删除后才能删除该表。(外键约束:一个表中的外键是指向另一个表的主键,也就是外键的值必须等于另一张表中主键的值)。

请把前面准备步骤中创建的两张表创建一下,然后我们执行删除语句

--删除客户表,这个时候我们会发现报错,因为他被客户订单表约束了,所以我们可以先删除客户订单表
drop table Customer

--先删除客户订单表,这个时候我们就删除成功了。
drop table Customerorder
drop table Customer

在这里插入图片描述
这是客户表和客户订单表创建好以后的情况,请记得选择自己创建的数据库,表是创建再数据库下面的默认是master数据库(系统数据库)。
在这里插入图片描述

编写表脚本

编写表脚本是非常有用处的功能,他能节省很多工作量(比如你想在新的数据库创建一个客户订单表,而你的老数据库已经有一个客户订单表了,你可以直接创建表脚本,而不是再手动创建该表)

如下图所使,我们右键客户表 编写表脚本为—>create到©—>新查询编辑器窗口,这个时候我们就能看到如右图所示的表创建语句了。我们只要选择新的数据库,即可创建一张新的客户表。数据库的选择就是左上角新建查询下面那个下拉框选择。
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值