第三章包含以下内容:
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到©—>新查询编辑器窗口,这个时候我们就能看到如右图所示的表创建语句了。我们只要选择新的数据库,即可创建一张新的客户表。数据库的选择就是左上角新建查询下面那个下拉框选择。