SQLServer常用操作

创建数据库与表

-- 选择数据库
USE master
GO
-----------------------------------------------------------------------------------------------------------
-- 删除数据库
IF EXISTS(SELECT * FROM sysdatabases WHERE name=N'School')
DROP DATABASE School
GO
-- 创建数据库
CREATE DATABASE School
-- 配置主数据文件的选项
ON PRIMARY
(
    -- 数据文件的逻辑名称
    name = "School",
    -- 数据文件的实际保存路径
    filename = "d:\db\SqlServer\School\database.mdf",
    -- 文件的初始大小
    size = 10MB,
    -- 最大容量
    maxsize = 100MB,
    -- 超过默认值后自动以20%扩容
    filegrowth = 20%
)
-- 配置日志文件的选项
LOG ON
(
    name = "database.log",
    filename = "d:\db\SqlServer\School\database.ldf",
    size = 10MB,
    maxsize = 100MB,
    filegrowth = 15%
)
GO
-----------------------------------------------------------------------------------------------------------
-- 创建表 学生表
USE School   --将数据库上下文切换到当前创建的数据库
GO

IF EXISTS(SELECT * FROM sys.objects WHERE name = 'Students')
DROP TABLE [Students]
GO

CREATE TABLE [Students]
(
    [StudentID] [INT] IDENTITY(1,1) NOT NULL,
    [StudentNO] [INT] NOT NULL,
    [UserName] [NVARCHAR](50) NOT NULL,
    [Password] [NVARCHAR](50) NOT NULL,
    [Email] [NVARCHAR](50) NOT NULL,
    [Phone] [NVARCHAR](50) NULL, 
    [IdCardNO] [NVARCHAR](50) NOT NULL, 
    [Gender] [BIT] NOT NULL,
    [Address] [NVARCHAR](255) NULL,
    [BornDate] [DATETIME] NOT NULL,
    [GradeNO] [INT] NOT NULL
)
GO

-- 创建表 科目表
USE School
GO

IF EXISTS(SELECT * FROM sys.objects WHERE name = 'Subjects')
DROP TABLE [Subjects]
GO

CREATE TABLE [Subjects]
(
    [SubjectID] [INT] IDENTITY(1,1) NOT NULL,
    [SubjectNO] [INT] NOT NULL,
    [SubjectName] [NCHAR](50) NOT NULL,
    [ClassHour] [INT] NOT NULL,
    [GradeNO] [INT] NOT NULL
)
GO

-- 创建表 年级表
USE School
GO

IF EXISTS(SELECT * FROM sys.objects WHERE name = 'Grades')
DROP TABLE [Grades]
GO

CREATE TABLE [Grades]
(
    [GradeID] [INT] IDENTITY(1,1) NOT NULL,
    [GradeNO] [INT] NOT NULL,
    [GradeName] [NVARCHAR](50) NOT NULL
)
GO

-- 创建表 成绩表
USE School
GO

IF EXISTS(SELECT * FROM sys.objects WHERE name = 'Scores')
DROP TABLE [Scores]
GO

CREATE TABLE [Scores]
(
    [ScoreID] [INT] IDENTITY(1,1) NOT NULL,
    [StudentNO] [INT] NOT NULL,
    [SubjectNO] [INT] NOT NULL,
    [Score] [INT] NOT NULL,
    [ExamDate] [DATETIME] NOT NULL
)
GO
-----------------------------------------------------------------------------------------------------------
-- 添加约束 年级表
ALTER TABLE Grades 
ADD CONSTRAINT PK_GradeID PRIMARY KEY(GradeID)
GO 

ALTER TABLE Grades 
ADD CONSTRAINT UQ_GradeNO UNIQUE(GradeNO)
GO

-- 添加约束 学生表
-- 主键约束
ALTER TABLE Students 
ADD CONSTRAINT PK_StudentID PRIMARY KEY(StudentID)
GO

-- 唯一约束
ALTER TABLE Students 
ADD CONSTRAINT UQ_StudentNO UNIQUE(StudentNO)
GO 

ALTER TABLE Students 
ADD CONSTRAINT UQ_IdCardNO UNIQUE(IdCardNO)
GO    

ALTER TABLE Students 
ADD CONSTRAINT UQ_Email UNIQUE(Email)
GO

ALTER TABLE Students 
ADD CONSTRAINT UQ_Phone UNIQUE(Phone)
GO
-- 默认约束
ALTER TABLE Students 
ADD CONSTRAINT DF_Address DEFAULT('地址不详') FOR Address
GO

-- 检查约束
ALTER TABLE Students 
ADD CONSTRAINT CK_BornDate CHECK(BornDate>='1970-01-01')
GO
 
-- 非空约束
ALTER TABLE Students 
ADD CONSTRAINT CK_UserName CHECK(UserName IS NOT NULL)
GO

-- 外键约束
ALTER TABLE Students 
ADD CONSTRAINT FK_Students_GradeNO FOREIGN KEY(GradeNO) REFERENCES Grades(GradeNO)
GO


-- 添加约束 科目表
ALTER TABLE Subjects 
ADD CONSTRAINT PK_SubjectID PRIMARY KEY(SubjectID)
GO

ALTER TABLE Subjects 
ADD CONSTRAINT UQ_SubjectNO UNIQUE(SubjectNO)
GO

ALTER TABLE Subjects 
ADD CONSTRAINT CK_ClassHour CHECK(ClassHour>=0)
GO

ALTER TABLE Subjects 
ADD CONSTRAINT FK_Subjects_GradeNO FOREIGN KEY(GradeNO) REFERENCES Grades(GradeNO)
GO


-- 添加约束 成绩表
ALTER TABLE Scores 
ADD CONSTRAINT PK_ScoreID PRIMARY KEY(ScoreID)
GO 

ALTER TABLE Scores 
ADD CONSTRAINT DF_ExamDate DEFAULT(GETDATE()) FOR ExamDate
GO

ALTER TABLE Scores 
ADD CONSTRAINT CK_Score CHECK(Score BETWEEN 0 AND 100)
GO

ALTER TABLE Scores 
ADD CONSTRAINT FK_Scores_StudentNO FOREIGN KEY(StudentNO) REFERENCES Students(StudentNO)
GO

ALTER TABLE Scores 
ADD CONSTRAINT FK_Scores_SubjectNO FOREIGN KEY(SubjectNO) REFERENCES Subjects(SubjectNO)
GO

T-SQL操作

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spark SQL, DataFrames and Datasets Guide Overview SQL Dat...
    Joyyx阅读 8,531评论 0 16
  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    aimaile阅读 26,862评论 6 427
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 6,150评论 0 9
  • 春华园是有名的戏院,当家名角是位叫青袖的女子,最拿手的是一曲牡丹亭。 “卫泽,你来听曲儿能不能别板着脸,又不是在军...
    墨然纸阅读 4,572评论 69 68
  • 突然听到这首歌有点感触。当然不一定是爱情方面的。 很多时候,我们疲惫。疲惫是因为我们把一件事看得太重。 还有呢,对...
    小汤勺说阅读 228评论 0 0

友情链接更多精彩内容