zoukankan      html  css  js  c++  java
  • MSSQL → 04:表的创建与维护

    一、创建表

    1.1、使用SQL Server Management Studio创建表

    ①、打开刚刚建立的CollegeSystemDB数据库,找到表(数据库->CollegeSystemDB->表)。右键单击表,选择新建表。

    ②、在点击新建表出来的界面中按照下图输入

    ③、按Ctrl+S或者点击最上面菜单栏中的文件,选择保存。输入欲保存的表名称student,并点击确定。

    ④、再次点击新建表,按照下图输入,并且保存为course。

    ⑤、再次点击新建表,按照下图输入,并且保存为stucourse。

    ⑥、在 数据库->CollegeSystemDB->表 那里刷新一下,就会发现刚刚建立的三张表了。

     

    (选择 数据库->CollegeSystemDB->表->dbo.student 右键单击选择设计,就可以查看刚刚建立的表的具体信息了。)

    1.2、使用SQL语句创建表

    ①、选择 数据库->CollegeSystemDB,然后选择新建查询。注意左上角的那个框中要选中CollegeSystemDB,如果不是的话就手动选择一下。

    ②、在新建查询出来的界面中输入以下代码:

    -- 设置使用的数据库
    USE CollegeSystemDB
    GO
    
    -- 判断数据库中是否存在student表,如果存在则删除student表
    IF EXISTS (SELECT * FROM sys.sysobjects WHERE name = 'student') 
    DROP TABLE student;
    -- 创建student数据表
    CREATE TABLE [dbo].[student](
        [id] [int] NOT NULL PRIMARY KEY IDENTITY(10000,1),
        [sno] [varchar](32) NOT NULL,
        [sname] [varbinary](50) NOT NULL,
        [sage] [int] NULL,
        [sgender] [int] NOT NULL,
        [sclass] [int] NULL,
        [sgrade] [int] NULL,
    );
    
    -- 判断数据库中是否存在course表,如果存在则删除course表
    IF EXISTS (SELECT * FROM sys.sysobjects WHERE name = 'course') 
    DROP TABLE course;
    -- 创建course数据表
    CREATE TABLE [dbo].[course](
        [id] [int] NOT NULL PRIMARY KEY IDENTITY(10000,1),
        [cno] [varchar](32)  NOT NULL,
        [cname] [varchar](50) NOT NULL,
        [createtime] [datetime] NULL,
        [updatetime] [datetime] NULL
    );
    
    -- 判断数据库中是否存在学生选课表stucourse表,如果存在则删除stucourse表
    IF EXISTS (SELECT * FROM sys.sysobjects WHERE name = 'stucourse') 
    DROP TABLE stucourse;
    -- 创建stucourse数据表
    CREATE TABLE [dbo].[stucourse](
        [id] [int] NOT NULL PRIMARY KEY IDENTITY(10000,1),
        --列名    字段类型  是否为空   标识外键列(外键列名)关联表的表名(关联的字段名)
        [sid] int NULL FOREIGN KEY(sid) REFERENCES student(id),
        [cid] int NULL FOREIGN KEY(cid) REFERENCES course(id)
    );

    ③、点击执行

     

    ④、在 数据库->CollegeSystemDB->表 那里刷新一下,就会发现刚刚建立的三张表了。

    (选择 数据库->CollegeSystemDB->表->dbo.student 右键单击选择设计,就可以查看刚刚建立的表的具体信息了。)

    二、列数据类型

       在关系数据库中,每一个关系都表现为一张表。表是用来存储数据和操作数据的逻辑结构,关系数据库中的所有数据都表现为表的形式,由列和行组成,如图3-1所示。关系数据库由表、具体查询等对象组成,而查询等对象又是通过表来呈现的。

      2.1、表的数据类型

    2.2、数据类型使用分析

    1.char,varchar,nchar,nvarchar

    char性能好;varchar节省空间;
    选择方法:10个字节以上的用varchar,nvarchar类型的占用空间大,性能低,如果不准备存中文或中亚文字则尽量避免使用。
    尤其向类似工号的字段更不要使用n类型,ESL首先它不会存入中文,其次它可能作为索引,此时对性能的影响就更大。

    2.datetime和smalldatetime

      datetime:从1753年1月1日到9999年12月31日的日期和时间数据,精确到毫秒。
      smalldatetime:从1900年1月1日到2079年6月6日的日期和时间数据,精确到分钟。

    3.bigint,int,smallint,tinyint和bit

      bigint:从-2^63(-9223372036854775808)到2^63-1(9223372036854775807)的整型数据。
      int:从-2^31(-2,147,483,648)到2^31-1(2,147,483,647)的整型数据。
      smallint:从-2^15(-32,768)到2^15-1(32,767)的整数数据。
      tinyint:从0到255的整数数据。
      bit:1或0的整数数据。
      首先int,空间占用合适,运算速度快;(2147,...,...2个多亿)
      如果非常在意空间的话,考虑tinyint,超大应用场合,考虑bigint

    4.decimal和numeric

      这两种数据类型是等效的。都有两个参数:p(精度)和s(小数位数)。p指定小数点左边和右边可以存储的十进制数字的最大个数,p必须是从 1到38之间的值。s指定小数点右边可以存储的十进制数字的最大个数,s必须是从0到p之间的值,默认小数位数是0。

    5.float和real

      float:从-1.79^308到1.79^308之间的浮点数字数据。
      real:从-3.40^38到3.40^38之间的浮点数字数据。在SQL Server中,real的同义词为float(24)。

    6.money,smallmoney

      尽量考虑用decimal替代,原因:性能稍稍好一些;相对其它数据库兼容性好。
      money的好处是可以用到某些货币运算函数。
      float类型尽量少用,性能不好,精度不高,一般只用于科学计算。

    7.text/image

      考虑到维护方便、效率以及程序开发的方便性,最好不用,即不将其存入数据库中;采用varchar指向其相应的存储路径

    三、表的完整性

      表的完整性分为实体完整性、引用完整性、域完整性、自定义完整性

    3.1、实体完整性

      要求表中的每一行都反映不同的实体。通过索引、唯一约束、主键约束或者标识列来实现

    3.2、引用完整性

      用于定义主表之间的关系,保证从表中外键列不会出现主表中对应主键列没有的项

    3.3、域完整性

      表示给定输入的有效性。通过限制数据类型、检查约束、输入格式、外键约束、非空约束等方法来实现

    3.4、自定义完整性

      用户自定义完整性用来定义特定的规则

    四、向表中添加数据

    五、查看表

    六、修改表

    七、删除表

      语法格式:DELETE TABLE 

     

  • 相关阅读:
    自定义百度地图链接
    Spring中获取request、response对象的方法
    Windows中使用TortoiseGit提交项目到GitLab配置
    IDEA热部署
    SpringBoot+thymeleaf+mybatis+shiro
    lombok——简化Java代码
    SpringBoot部署到tomcat
    深度学习--深入理解Batch Normalization
    MCMC(一)蒙特卡罗法
    Java反射机制详解
  • 原文地址:https://www.cnblogs.com/BalmyLee/p/10952896.html
Copyright © 2011-2022 走看看