• 做自己的ORMapping Framework ---- 第四讲 关于SQL脚本的书写


    说到这里,对于初学者可能会有点难度,你要对SQL脚本有一定的了解。现在我会介绍一些关于SQL脚本的基本格式的书写,当然也是节后后面需要所讲,我就尽量将简单点,高手可以绕过,给小伙伴让条路啊0.0

    我现在就以学校来建一个数据库,名称就叫School

     

    1关于怎样建数据库,现在建一个School数据库

        create database School;就这么简单

      

    2关于怎样建表 先建一个Student 和一个Class表

    CREATE TABLE [dbo].[Student](
    [SId] [varchar(50)] NOT NULL, 学生ID/主键
    [Name] [NVARCHAR[20]] NOT NULL, 学生姓名
    [ClassId] [uniqueidentifier] NULL, 年级ID
    CONSTRAINT [PK_dbo.Student] PRIMARY KEY CLUSTERED
    (
    [Id] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    ) ON [PRIMARY]

     

    CREATE TABLE [dbo].[Class](
    [ClassId] [uniqueidentifier] NOT NULL, 年级ID/主键
    [Name] [bit] NOT NULL, 年级名称
    CONSTRAINT [PK_dbo.Class PRIMARY KEY CLUSTERED
    (
    [ClassId] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
    ) ON [PRIMARY]

     

    3关于怎样建外键关系 

        

    ALTER TABLE [dbo].[Student] CHECK CONSTRAINT [FK_dbo.Student_dbo.Class_CLassID] 先检查下外键在不在

    ALTER TABLE [dbo].[Student] WITH CHECK ADD CONSTRAINT [FK_dbo.IndexedFeature_dbo.Class_CLassID] FOREIGN KEY([SId])
    REFERENCES [dbo].[Class] ([ClassId])

    4关于怎样写存储过程

    这就一一个过程语言,后面再讲解的列子中会用到很多,这里就简单写一个样子,现在给一个id参数,从学生的表中选出名称    

    CREATE Procedure GetStudentName
    (

           @SID varchar(50), --默认输入参数           这边定义参数
         @name Nvarchar(20) out --输出参数

    )
    AS
    BEGIN

          select @name = name  from student where SID= @SID ;这边是主体执行逻辑

    END
    END

        

    5关于怎样写触发器

        这个看起来和存储过程长的有点像, 下面是在删除年级信息之前去调用触发器把相关的学生信息给删除了。

        

    CREATE TRIGGER dbo.OnDeleteClass ON dbo.[Class]     定义触发器
    BEFORE DELETE
    AS
    BEGIN
      delete from [Student] where [student].ClassId in (select ClassId from deleted)   做删除动作
    END
    GO

    先简单了解这么多,后面我会慢慢给大家讲解怎么去使用这些,怎么在系统里调用这些脚本,怎么管理和维护这些看起来很乱的脚本

  • 相关阅读:
    向表中添加列 ALTER TABLE ADD Column_name
    向表中添加列 ALTER TABLE ADD Column_name
    C#类和结构(C# 编程指南)
    C#类和结构(C# 编程指南)
    SQL大小写转换
    SQL大小写转换
    (最新)IIS Express发布网站,实现IP,域名访问站点
    (最新)IIS Express发布网站,实现IP,域名访问站点
    IIS Express允许外部访问(外部调试)
    IIS Express允许外部访问(外部调试)
  • 原文地址:https://www.cnblogs.com/hwy425/p/4978791.html
Copyright © 2020-2023  润新知