zoukankan      html  css  js  c++  java
  • 数据库的实现----(建库,建表,建约束)

    首先大家要知道数据库是由哪三个部分组成的.

    解析:

    01.数据库文件:*.mdf

    02.次要数据文件:*.ndf

    03.日志文件:*.ldf

    每个数据库至少要包含两个文件:一个数据文件和一个日志文件.数据文件中包含了数据库的数据和对象,如表,视图和索引等;日志文件中包含了用于恢复数据库所需的信息.创建数据库时,次要数据库文件可选.一个数据库可以有多个数据库文件和多个日志文件.

    一.使用SQL语句创建数据库

    以Myschool数据库为例:

    create database Myschool
    on primary  --默认属于primary主文件组,可省略
    (
    -----------数据文件的具体描述---------
    --主数据文件的逻辑名称
    name='Myschool_data',
    --主数据文件的物理名称
    filename='E:Myschool.mdf',
    --主数据文件的初始大小
    size=5,
    --主数据文件增长的最大值
    maxsize=100,
    --主数据文件的增长率
    filegrowth=15%
    
    
    )
    Log on
    (
    ---------日志文件的具体描述---------
    --日志文件的逻辑名称
    name='Myschool_log',
    --日志文件的物理名称
    filename='E:Myschool.ldf',
    --日志文件的初始大小
    size=2,
    --日志文件的增长率
    filegrowth=1
    )

    二.使用SQL删除数据库

    --删除数据库名称为Myschool
    drop database Myschool

    三.检测要创建的数据库是否存在

    use master --设置当前数据库为master ,以便访问sysdatabase表
    if exists(select * from sysdatabases where name='Myschool')
    --如果存在则删除Myschool数据库
    drop database Myschool
    --重新创建Myschool数据库
    create database Myschool
    on primary  --默认属于primary主文件组,可省略
    (
    -----------数据文件的具体描述---------
    --主数据文件的逻辑名称
    name='Myschool_data',
    --主数据文件的物理名称
    filename='E:Myschool.mdf',
    --主数据文件的初始大小
    size=5mb,
    --主数据文件增长的最大值
    maxsize=100mb,
    --主数据文件的增长率
    filegrowth=15%
    
    
    )
    Log on
    (
    ---------日志文件的具体描述---------
    --日志文件的逻辑名称
    name='Myschool_log',
    --日志文件的物理名称
    filename='E:Myschool.ldf',
    --日志文件的初始大小
    size=2mb,
    --日志文件的增长率
    filegrowth=1mb
    )


    四.如何在指定的路径下创建文件夹.

    xp_cmdshell时SQL server的扩展储存过程,他以操作系统命令行解释器的方式执行给定的命令字符串,并以文本行的方式返回任何输入.

    在SQL server Management Studio 中,如果希望在操作系统的指定路径下创建文件夹,可以使用下面的语句:

    EXEC xp_cmdshell 'mkdir E:project'

    其中,字符串mkdir E:project 是DOS命令用于在E盘下创建文件夹.

    注意.在使用xp_cmdshell之前,需要执行sp_configure以启用xp_cmdshell

    EXEX sp_configure 'show advanced options',1
    go
    reconfigure
    co
    EXEC sp_configure 'xp_cmdshell',1
    go
    reconfigure
    go

     五.使用SQL语句创建表

    create table 表名
    (
    列1 数据类型 列的特征,
    列2 数据类型 列的特征
    )

    列的特征:包括该列是否为空,是否是标识列,是否有默认值,是否是主键等.

    eg:

    --同创建数据库一样,如果当前数据库中已存在Student表,则再次创建时系统会提示错误,所以我们需要先检测当前数据库
    
    --中是否存在该表,如果存在该表,则删除,然后在创建.
    
    use myschool
    if exists(select * from sysobjects where name='student') 
    drop table student--删除表student
    
    ------------创建表Myschool中的学生表--------
    create table student
    (
      studentNO int not null,--学号,非空
      studentname nvarchar(20) not null,--学生姓名,非空
      Sex bit not null ,--性别,非空,取值0或1
      gradeid int not null,--年级编号
      phone nvarchar(50) null, --联系电话,允许为空
      address nvarchar(200) null, --住址,允许为空
      bornDate datetime null,--出生日期,允许为空
      Email nvarchar(50) null,--邮箱,允许为空
      Cid varchar(18) not null --身份证,非空
      
    )

    六.使用sql语句删除表

    drop table student

    七.使用sql语句创建和删除约束

    01.实体完整性:唯一确定表中一行记录.

    02.域完整性:表中特定列数据的有效性,以确保不会输入无效的数值.

    03.引用完整性:插入或删除记录时,维护表之间定义的关系.

    04.自定义完整性:为了确保数据库的数据完整性.

    常用的约束类型:

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

    02.非空约束:(not null):要求列不能存在空值.

    03.检唯一约束:(Unique Constraint):要求该列的值必须唯一,允许为空,但只能出现一个空值.

    04.默认约束:(Dafault Constraint):某列的默认值.

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

    添加约束的语法:

    alter table 表名

    add Constraint 约束名 约束类型 具体的约束说明

    --把studentno学号列设置为主键
    alter table student
    add constraint PK_studentno primary Key (studentno)
    --把身份证号列cid添加唯一约束
    alter table student
    add constraint UQ_cid unique(cid)
    --把地址列添加默认约束
    alter table student
    add constraint DF_address Default('地址不详') for address
    --为出生日期列添加检查约束
    alter table student
    add constraint CK_bornDate Check(bornDate>='1980-01-01')
    --添加外键约束(主表student和从表result建立关系,关联列为StudentNo)
    alter table result
    add constraint FK_studentno foreign key (studentno) references student(studentno)
    --添加grade表中的主键
    alter table grade
    add constraint pk_gradeid primary key (gradeid)
    --添加外键约束(主表grade和从表student建立关系,关联列为gradeid)
    alter table grade
    add constraint FK_gradeid foreign key (gradeid) references grade(gradeid)

    删除约束:

    语法:

    alter table 表名

    drop Constraint 约束名

    eg:删除student表中地址默认约束

    alter table student
    drop constraint DF_adress

    八.sqlserver 文档

    如何查看 sql server 帮助:

    把光标放置在需要查找某个语法的关键字上方,饭F1键,就会启动Sql server联机丛书,并查找出有关关键字的帮助资料.

  • 相关阅读:
    第04组 Beta冲刺(2/4)
    第04组 Beta冲刺(1/4)
    2019 SDN上机第6次作业
    SDN课程阅读作业(2)
    2019 SDN上机第5次作业
    第04组 Alpha事后诸葛亮
    第04组 Alpha冲刺(4/4)
    2019 SDN上机第4次作业
    第04组 Alpha冲刺(3/4)
    第07组 Alpha冲刺(4/6)
  • 原文地址:https://www.cnblogs.com/hyjj/p/5115485.html
Copyright © 2011-2022 走看看