zoukankan      html  css  js  c++  java
  • Sql Server创建删除数据库,表,约束

    使用SQL语句创建和删除数据库

    数据库的组成部分:

            1>主数据文件:       *.mdf

            2>次数据文件:       *.ndf

            3>日志文件:           *.ldf

    创建数据库:

    T-SQL创建数据库的语法如下:

            CREATE DATABASE 数据库名

                ON [PRIMARY]

                (

                 <数据文件参数>  [,……n] [<文件组参数>]

                )

                [LOG ON]

                (

                 {<日志文件参数>  [,……n] }

                )

              文件具体参数语法如下:

              (

               [NAME=逻辑文件名,]

               FILENAME=物理文件名

               [,SIZE=大小]

               [,MAXSIZE={最大容量|UNLIMITED}]

               [,FILEGROWTH=增长值]

               )[,……n]

               文件组参数的语法如下:

               FILEGROUP 文件组名 <文件参数> [,……n]

               其中,“[ ]”表示可选部分,“{ }”表示必需的部分。各参数的含义说明如下:

               》数据库名:数据库的名称,最长为128个字符

               》PRIMARY:该选项是一个关键字,指定主文件组中的文件

               》LOG ON:指明事务日志文件的明确定义

               》NAME:指定数据库的逻辑名称,这是在SQL Server系统中使用的名称,是数据库在SQL Server中的标识符

               》FILENAME:指定数据库所在文件的操作系统文件名称和路径,该操作系统文件名和NAME的逻辑名称一一对应

               》SIZE:指定数据库的初始容量大小

               》MAXSIZE:指定操作系统文件可以增长到的最大尺寸

               》FILEGROWTH:指定文件每次增加容量的大小,当指定的数据为0时,表示文件不增长

               删除数据库:

               DROP DATABASE 数据库名

              接下来的问题是如何检测是否存在该数据库

               EXISTS(查询语句)可以检测某个查询是否存在,如果查询语句返回的记录结果不为空,则表示存在;否则表示不存在

               IF EXISTS ( SELECT * FROM SYSDATABASES WHERE NAME='KEYMO' )

               DROP DATABASE KEYMO

               CREATE DATABASE KEYMO

               (

                             ……

               )

               这段语句表示在系统表中查询是否有KEYMO库存在,如果不存在,则创建KEYMO数据库,如果存在,则删除该库再创建KEYMO数据库

    使用SQL语句创建和删除数据表

     创建表

               创建表的步骤:

               1>确定表中有哪些列

               2>确定每列的数据类型

               3>给表添加各种约束

               4>创建各表之间的关系

    创建表的语法如下:

               CREATE TABLE 表名

               (

               字段1 数据类型 列的特征

               字段2数据类型 列的特征

               ……       

               )

    删除表

               DROP TABLE 表名

    使用SQL语句创建和删除约束

     约束的目的是确保表中数据的完整性,常用的约束类型如下:

    》主键约束(Primary Key Constraint):要求主键列数据唯一,并且不允许为空

    》唯一约束(Unique Constraint):要求该列唯一,允许为空,但只能出现一个空值

    》检查约束(Check Constraint):某列取值范围限制、格式限制等,如有关年龄的约束

    》默认约束(Default Constraint):某列的默认值,比如学员信息表,男生多的话就可将默认设为“男”

    》外键约束(Foreign Key Constraint):用于在两表之间建立关系,需要指定引用主键的那一列

    添加约束

               ALTER TABLE 表名

               ADD CONSTRAINT 约束名 约束类型 具体的约束说明

    示例:

               ——添加主键约束(将stuNo作为主键)

               ALTER TABLE STUINFO

               ADD CONSTRAINT PK_STUNO PRIMARY KEY (stuNo)

               ——添加唯一约束(身份证号唯一)

               ALTER TABLE STUINFO

               ADD CONSTRAINT UQ_STUID UNIQUE (stuId)

               ——添加默认约束(如果地址不填,默认为“地址不详”)

               ALTER TABLE STUINFO

               ADD CONSTRAINT DF_STUADDRESS DEFAULT ('地址不详') FOR STUADDRESS

               ——添加检查约束,要求年龄只能在15~40岁之间

               ALTER TABLE STUINFO

               ADD CONSTRAINT CK_STUAGE CHECK (STUAGE BETWEEN 15 AND 40)

               ——添加外键约束(主表STUINFO和从表STUMARKS建立关系,关联字段为stuNo)

               ALTER TABLE STUINFO

               ADD CONSTRAINT FK_STUNO FOREIGN KEY (stuNo) REFERENCES STUINFO (stuNo)

              

    删除约束

               ALTER TABLE 表名

               DROP CONSTRAINT 约束名

              

  • 相关阅读:
    Hyper-V中的VM如何使用Pass-through Disk
    LDF文件丢失, 如何仅用MDF文件恢复数据库呢?
    PowerShell中的一个switch的例子
    NetBiosDomainNamesEnabled与SharePoint User Profile Service Application
    在Windows Server 2008 R2上安装Exchange 2013过程中遇到的一些问题
    C语言位域精解(转)
    uniq命令 (转)
    sort命令
    curl命令(测试连接命令)
    C10K——千万级并发实现的秘密:内核不是解决方案,而是问题所在!(转)
  • 原文地址:https://www.cnblogs.com/Kung/p/Sql.html
Copyright © 2011-2022 走看看