【SQL Server】用sql命令创建表,修改表,创建约束

目录

  • 命令创建数据库
  • T-SQL 创建表
  • 修改表
  • 创建约束

命令创建数据库

use master -- 选择要操作的数据库
go -- 批处理命令

-- 创建数据库
create database TestBase -- 数据库名称
on primary( -- 主文件组
	name = 'TestBase', -- 数据库主要数据文件的逻辑名
	filename = 'E:\sql server project\TestBase.mdf', --主要数据文件的路径
	size = 5MB,--数据库主要文件的初始大小
	filegrowth = 1MB --文件的增量
)

log on -- 创建日志文件
(
	name = 'TestBase_log', -- 数据库日志文件的逻辑名
	filename = 'E:\sql server project\TestBase_log.ldf', --主要数据文件的路径
	size = 1MB,--数据库日志文件的初始大小
	filegrowth = 10% --文件的增量
)
go
-- 删除数据库
drop database TestBase
go
  • 为什么创建新的数据库,要选择master?
    master:系统数据库,它记录了SQL Server系统的所有系统级信息,还记录了所有其他数据库的存在,数据库文件的位置,SQL Server的初始化信息。

T-SQL 创建表

  • 表信息准备
    1. 产品信息:
      标识列 int
      编号 varchar(50) 主键
      名称 nvarchar(50)
      产品类型 TypeId int
      价格 decimal(18,2)
      数量 int

    2. 产品类型表:
      编号 TypeId int
      名称 nvarchar(20)

--数据定义语言 DDL
use TestBase
create table ProductInfos
(
	Id int identity(1,1) primary key not null, -- 标识种子,增量
	ProNum varchar(50) not null,
	ProName nvarchar(50) not null,
	TypeId int not null,
	Price decimal(18,2) null,
	ProCount int null
)
go

create table ProductType
(
	TypeId int identity(1,1) primary key not null,
	TypeName nvarchar(20) not null
)

-- 删除表
drop table ProductInfos
drop table ProductType

修改表

-- 创建表之后进行修改
-- 添加一列 ProRemark
alter table ProductInfos add ProRemark nvarchar(max)null
-- 删除一列 ProRemark
alter table ProductInfos drop column ProRemark
-- 修改一列 修改ProNum的数据类型
alter table ProductInfos alter column ProNum nvarchar(50) null
-- 修改列名 慎用
exec sp_rename 'ProductInfos.ProCount','Count','column'

创建约束

--在创建表的过程中创建约束
--主键约束,外键约束,unique约束,check约束,default约束


-- 先创建主键表
create table ProductType
(
	TypeId int identity(1,1) primary key not null,
	TypeName nvarchar(20) not null
)
-- 再创建外键表
create table ProductInfos
(
	Id int identity(1,1) primary key not null, -- 标识种子,增量
	ProNum varchar(50) unique not null, -- unique约束
	ProName nvarchar(50) not null,
	TypeId int not null foreign key references ProductType(TypeId),-- 来自ProductType的主键TypeId在ProductInfos作外键
	Price decimal(18,2) check(Price<10000 and Price>100) default (0.00) not null, -- check约束
	ProCount int default (0) null -- default约束
)
go
  • 在创建完成后创建约束,相当于对表的修改
-- 先创建表
create table ProductInfos
(
	Id int identity(1,1) not null, -- 标识种子,增量
	ProNum varchar(50) not null,
	ProName nvarchar(50) not null,
	TypeId int not null,
	Price decimal(18,2) null,
	ProCount int null
)
go

create table ProductType
(
	TypeId int identity(1,1) primary key not null,
	TypeName nvarchar(20) not null
)

-- 再添加约束
-- 主键
alter table ProductInfos add constraint PK_ProductInfos primary key(Id)
-- 外键
alter table ProductInfos add constraint FK_ProductInfos foreign key (TypeId) references ProductType(TypeId)
-- unique约束 ProNum
alter table ProductInfos add constraint IX_ProductInfos_ProNum unique(ProNum)
-- check约束
alter table ProductInfos add constraint CK_ProductInfos_Price check(Price<10000 and Price>100)
-- default约束
alter table ProductInfos add constraint DF_ProductInfos_PrCount default (0) for ProCount



你可能感兴趣的:(SQL,Server,sql,数据库)