• 创建数据库和表


    一、创建数据库

      我们知道表是属于架构的,而架构又是属于数据库的。要在SQL Server环境中创建一个名为TestDB的数据库,可以运行以下代码:

     IF DB_ID('TestDB') IS NULL
     CREATE DATABASE TestDB;
    

      如果不存在名为TestDB的数据库,这段代码就会创建一个新的。DB_ID函数接受一个数据库名称作为输入,返回它的内部数据库ID。如果输入名称指定的数据库不存在,这个函数将返回NULL。这是一种检查数据库是否存在的简单方法。注意:在这个简单的CREATE DATABASE语句中,采用了默认的文件设置(例如,区域和初始大小)。在产品环境中,通常应该显示指定所需要的数据库和文件的设置。

      在例子中使用的架构是dbo,在每个数据库中都会自动创建这个架构。当用户没有默认架构显示关联到其他架构时,就会将这个dbo作为默认架构。

    二、创建表

      以下代码在TestDB数据库中创建一个名为Employees的表:

    USE TestDB
     IF OBJECT_ID('dbo.Employees','U') IS NOT NULL
         DROP TABLE dbo.Employees;
     CREATE TABLE dbo.Employees
     (
         empid INT NOT NULL,
         firstname VARCHAR(30) NOT NULL,
         lastname VARCHAR(30) NOT NULL,
         hiredate DATETIME NOT NULL,
         mgrid INT NULL,
         ssn VARCHAR(20) NOT NULL,
         salary MONEY NOT NULL
     );
    

      USE语句将当前的数据库上下文切换为TestDB。在创建对象的脚本中加入USE语句,它的重要作用是确保要在正确的数据库中创建对象。

      IF语句调用调用OBJECT_ID函数来检查当前数据库中是否已经存在Employees表。OBJECT_ID函数接受一个对象名称和类型作为它的输入。这里,类型'U'代表用户表。如果匹配给定输入名称和类型的对象存在,这个函数就会返回内部的对象ID,否则返回NULL。如果该函数返回NULL,就可以知道检查的数据库对象是不存在的。在这个例子中,如果Employees表已经存在,代码就先删除(DROP)这个表,接着再创建一个新的。当然,也能够选择不同的处理办法,例如,当Employees表已经存在时,可以简单地不创建这个对象。

      CREATE TABLE语句负责定义前面提到的关系的主题。在这个语句中先指定表的名称,接着在圆括号中定义它的各个属性(列)。注意表名使用了两部分组成的名称dbo.Employees。如果省略了架构名称,SQL Server将使用与运行这段代码的数据库用户相关联的默认架构。

      对于表的每个属性,需要指定它的属性名称、数据类型和是否允许NULL数据值。在Employees表中,empid(雇员ID)和mgrid(经理ID)定义为INT(4字节的整数类型);firstname、lastname和ssn(社会保险号,social security number)定义为VARCHAR(可变长长度的字符串类型,指定最多支持的字符个数);hiredate定义为DATETIME,在SQL Server 2008中可以定义为DATE,DATE数据类型是SQL Server 2008新增的,salary定义为MONEY。

      如果不显示指定一个列是否允许NULL值,SQL Server则采用默认值。ANSI规定:如果不指定一个列是否允许NULL值,则假设应该是NULL(允许NULL值)。但SQL Server提供了一些设置可以改变这一默认行为。我们强烈推荐在这种情况下要显示指定设置,不要依赖其默认值。而且,也强烈推荐将列定义为NOT NULL,除非有明显的原因而需要支持NULL。即使认为一个列不允许NULL值,但没有用NOT NULL约束加以限制时,NULL值仍然可以插入这个列中。在Employees表中,除了mgrid列,其他所有列都定义为NOT NULL。mgrid属性为NULL值表示雇员没有经理,例如企业的CEO这种情况。

  • 相关阅读:
    WPF中样式中事件处理
    模板方法
    WPF 中ComboBox绑定DataSet
    装饰模式
    【转帖】c#项目的打包部署教材图文
    WPF中用比例设置长度或宽度
    在WFP中完美使用winform的控件
    一个WPF软件作品新鲜出炉,欢迎拍砖
    建造者模式(生成器模式)
    Windows Presentation Foundation 中的 Pack URI
  • 原文地址:https://www.cnblogs.com/ShaYeBlog/p/2695499.html
Copyright © 2020-2023  润新知