码迷,mamicode.com
首页 > 数据库 > 详细

数据库实验二 数据库和数据表的创建

时间:2016-03-22 06:12:26      阅读:290      评论:0      收藏:0      [点我收藏+]

标签:

  实验环境: SQL Service 2014

 

一、数据库的创建

  

  有三种类型的文件用来存储数据库:

    主文件包含数据库的启动信息。主文件还可以用来存储数据。每个数据库都包含一个主文件。

    次要文件保存所有主要数据文件中容纳不下的数据。如果主文件大到足以容纳数据库中的所有数据,就不需要有次要数据文件。而另一些数据库可能非常大,需要多个次要数据文件,也可能使用多个独立磁盘驱动器上的次要文件,以将数据分布在多个磁盘上。

    事务日志文件保存用来恢复数据库的日志信息。每个数据库必须至少有一个事务日志文件(尽管可以有多个)。事务日志文件最小为 512 KB。
每个数据库至少有两个文件,一个主文件和一个事务日志文件。

    注意:主文件是列表中的第一个文件,并使用 PRIMARY 关键字显式指定。事务日志文件在 LOG ON 关键字后指定。注意 FILENAME 选项中所用的文件扩展名:主要数据文件使用 .mdf,次要数据文件使用 .ndf,事务日志文件使用 .ldf。


  使用create database 语句创建数据库

    用sql语句创建一个名为book的数据库,它由5MB的主数据文件、2MB的次数据文件和1MB的日志文件组成。并且主数据文件以2MB的增长速度增长,其最大数据文件的大小为15MB,次数据文件以10%的增长速度增长,其最大次数据文件的大小为10MB,事务日志文件以1MB速度增长,其最大日志文件大小为10MB。

技术分享
-- 先判断要创建的数据库是否已经存在,若存在则删除
if exists(select * from sysdatabases where name=book)

drop database book;

--使用create database语句创建数据库
create database book
on primary  -- 默认属于primary文件组,可省略
(
    -- 主数据文件的具体描述
    name = book1,    --主数据文件的逻辑名称
    -- 注意这里的目录 E:\database 必须是存在的,否则会有语法错误
    filename = E:\database\book1.mdf, --主数据文件的物理文件名
    size = 5,    --主数据文件的初始大小
    maxsize = 15, --主数据文件的最大大小
    filegrowth = 2 --主数据文件的增长速度 单位是M
),

(
    -- 次数据文件的具体描述
    name = book2, --次数据文件的逻辑名称
    filename = E:\database\book2.ndf, --次数据文件的物理文件名
    size = 2,    --次数据文件的初始大小
    maxsize = 10, --次数据文件的最大大小
    filegrowth = 10%    --次数据文件的增长率
)

log on
(
    -- 日志文件的具体描述
    name = book_log, --日志文件的逻辑名称
    filename = E:\database\book_log.ldf,  --日志文件的物理文件名称 
    size = 1,    --日志文件的初始大小
    maxsize = 10, --日志文件的最大大小
    filegrowth = 1 --日志文件的增长速度 单位是M
)
View Code

 

 二、数据表的创建

   分别用企业管理器和SQL语句创建如下数据库表。

    1、学生(学号,姓名,性别,出生日期,系别)
      学号为主键,性别默认为男。
    2、课程(课程号,课程名,学分)
      课程号为主键,学分只能为1位数字1,2,4。
    3、选课(学号,课程号,成绩)
      学号和课程号为主键,成绩0--100之间。

 

技术分享
/* 实验2 --- 数据表的创建 */

--使用前面创建的book数据库
use book;

/*** 创建学生数据表  ***/

--要创建表需先判断该表是否已经存在
if exists(select * from sysobjects where name = Student)
    --注意当SC使用foreign key引用到该数据表时将无法删除,若想删除需先删除数据表SC
    drop table Student;    

--使用create table语句创建数据表Student
create table Student
(
    --数据表Student的属性
    Snum char(20) primary key,    --学号定义为主码
    Sname char(10),                --学生姓名
    Ssex char(4) check(Ssex in(,)) default (),    --学生性别,只能为男或女
    Sbirth char(20),            --学生出生日期
    Sdept char(20)                --学生系别
)

/*** 创建课程数据表 ***/

--要创建数据表需先判断该表是否已存在,若已存在则删除
if exists(select * from sysobjects where name = Course)
    drop table Course;
--使用create table创建数据表Course
create table Course
(
    --数据表Class的属性
    Cnum char(20) primary key,                --课程号为主码
    Cname char(30) not null,                --课程名,不为空
    Ccredit int check(Ccredit in(1,2,4))    --学分只能为1,2,4
)


/*** 创建学生选课数据表 ***/

--判断表是否已经存在,若存在则删除
if exists(select * from sysobjects where name = SC)
    drop table SC;

--使用语句create table创建数据表SC
create table SC
(
    Snum char(20),        --学生学号,受参照完整性条件约束
    Cnum char(20),        --课程号,也受参照完整性条件约束
    --课程得分,取值范围1-100, 使用check进行检查
    Cscore int check(Cscore between 0 and 100),

    --主码由两个属性组成,必须作为表级完整性进行定义
    primary key(Snum, Cnum), 

    --表级参照完整性约束条件,Snum是外码,被参照表是Student
    foreign key(Snum) references Student(Snum),

    --表级参照完整性约束条件,Cnum是外码,被参照表是Course
    foreign key(Cnum) references Course(Cnum)
)
View Code

 

数据库实验二 数据库和数据表的创建

标签:

原文地址:http://www.cnblogs.com/tommychok/p/5304439.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!