SQL(脚本) 小结

本文总结了SQL Server中创建数据库和数据表的基本步骤,包括设置主键、插入数据、创建约束、定义标识列、默认值约束以及外键约束。讲解了如何使用insert into、delete from和update语句操作数据,并强调了标识列的特性及其在数据删除后的行为。此外,还介绍了外键约束确保数据一致性的作用以及如何进行内连接查询。
摘要由CSDN通过智能技术生成

 sql server脚本创建数据库代码及解析

 

创建数据库

 

--指向操作的数据库master
use master
go
--判断数据库TestManageDB是否已经存在
if exists(select * from sysdatabases  where name='TestManageDB')
--存在即删除TestManageDB数据库
drop database TestManageDB
go
--创建数据库TestManageDB
create database TestManageDB
--创建主数据文件
on primary
(	
	--数据库的逻辑文件名(系统用的,必须唯一)
	name='TestManageDB_data',
	--数据库物理文件名(绝对路径)
	filename='D:\DB\TestManageDB_data.mdf',--主数据文件名,.mdf后缀
	--数据库初始文件大小(实际需求来定义)
	size=10MB,
	--数据文件增值量
	filegrowth=1MB
),
-- 次要数据文件,可以不要,也可以根据需要添加多个且分配到不同的磁盘、路径
(	
	
	name='TestManageDB_data1',
	filename='D:\DB\TestManageDB_data1.ndf',--次要数据文件名,后缀.ndf
	size=10MB,
	filegrowth=1MB
)
--日志文件,至少有一个
log on
(
	name='TestManageDB_log',
	filename='D:\DB\TestManageDB_data1.ldf',--日志文件名,后缀.ldf
	size=10MB,
	filegrowth=1MB
)
go

创建数据表 、主键

--创建数据表

--指向TestManageDB数据库
use TestManageDB
go
--判断表UserInfo是否存在,存在即删除该表
if exists(select *from sysobjects where name='UserInfo')
drop table UserInfo
go
--创建数据表UserInfo
create table UserInfo
(
	UserId int primary key,--用户编号,主键
	UserName varchar(50) not null,--用户姓名(不能为空)
	UserPhone char(11)not null,--用户电话(不为空)
)
go
create table UserLogin
(
	LoginId int primary key,
	LoginPwd nvarchar(30) not null,
	LoginName nvarchar(50) not null
)
go
create table UserNews
(
	NewsId int primary key,
	NewsName nvarchar(30) not null,
	NewsContent nvarchar(max) 
)
go

表中插入数据(  insert into 表名(属性1,属性2...) values(值1,值2...)  )

--添加测试数据(UserInfo表中插入信息)
insert into UserInfo(UserId,UserName,UserPhone)
values(1001,'小明','54778888'),
(1002,'小王','65338888'),
(1003,'小马','39888888')

 

创建约束(check  约束用户输入数据长度)

--判断表UserInfo是否存在,存在即删除该表
if exists(select *from sysobjects where name='UserInfo')
drop table UserInfo
go
--创建表 UserInfo时创建约束
create table UserInfo
(
	UserId int primary key,--用户编号,主键
	UserName nvarchar(20) check(len(UserName)>=2and len(UserName)<=20) not null,--UserName长度大于2小于20
	UserPhone char(11) check(len(UserPhone)>5 and len(UserPhone)<=11)not null,--用户电话(不为空,长度大于5且小于11)
)
go

 

标识列( identity(初始值,自增值))

--判断表UserInfo是否存在,存在即删除该表
if exists(select *from sysobjects where name='UserInfo')
drop table UserInfo
go
--创建表时设置标识列
create table UserInfo
(
    --设置为标识列
	UserId int identity(1000,1) primary key,--用户编号,主键,标识列1000开始,自增1
	UserName nvarchar(20) check(len(UserName)>=2and len(UserName)<=20) not null,--用户姓名(不能为空)
	UserPhone char(11)check(len(UserPhone)>=5and len(UserPhone)<=11)not null,--用户电话(不为空)
)
go

-- UserId列为标识列,不需要再手动写入值
insert into UserInfo(UserName,UserPhone)
values('小明','54778888'),
('小王','65338888'),
('小马','39888888'),
('小李','11554')

注:

  •  标识列属性应写在数据类型后,如(UserId int identity(1000,1) primary key),
  •  标识列的数据类型应为数值型且约束不能为空(主键自动约束不能为空),
  • 标识列启动时不能手动写入值,标识列无法更新
  • 标识列删除数据后不会补充

 

删除表中数据(delete from 表名 where 条件)

delete from UserInfo where UserId=1000 

更新表中数据(update 表名 set 更新的属性 where 条件)

update UserInfo set UserName='秋水' where UserId=1001

默认值约束( default(值) ),设置默认值,用户有输入时值为用户输入,无输入为默认值

--判断表UserInfo是否存在,存在即删除该表
if exists(select *from sysobjects where name='UserInfo')
drop table UserInfo
go
--创建数据表时设置默认值约束
create table UserInfo
(
	UserId  int identity(1000,1) primary  key,--用户编号,主键
	UserName nvarchar(20) check(len(UserName)>=2and len(UserName)<=20) not null,--用户姓名(不能为空)
	UserPhone char(11)check(len(UserPhone)>=5and len(UserPhone)<=11)not null,--用户电话(不为空)
	UserAddress nvarchar(max) default('地址不详')--默认值约束,有输入即为用户输入,无输入即为默认值
)

外键约束( references 表名(列名) )

当我们在外键表中,添加数据的时候,如果和主表建立引用关系,则会从主表对应的字段中查询数据是否一致,不一致即拒绝,保证数据一致。

create table UserInfo
(
	UserId  int identity(1000,1) primary  key,--用户编号,主键
	UserName nvarchar(20) check(len(UserName)>=2and len(UserName)<=20) not null,--用户姓名(不能为空)
	UserPhone char(11)check(len(UserPhone)>=5and len(UserPhone)<=11)not null,--用户电话(不为空)
	UserAddress nvarchar(max) default('地址不详')
)
go
--references 表名(列名) 
create table UserLogin
(
	LoginId int primary key,
	LoginPwd nvarchar(30) not null,
	LoginName nvarchar(50) not null,
	UserId int references UserInfo(UserId) not null --设置外键约束
)
go

设置了外键约束还可以进行连接查询(inner  join )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值