切换导航
{{systemName}}
{{ info.Title }}
{{info.Title}}
{{ menu.Title }}
{{menu.Title}}
登录
|
退出
搜索
从零使用sqlserver打造一个选课系统数据库
作者:ych
### 创建数据库 #### 创建文件夹 ``` @echo off md "D:\myfile\sqlserver" ``` #### 创建数据库 ``` create database goodschool on (name=goodschool_data,--数据文件的逻辑名称,注意不能与日志逻辑同名 filename='D:\myfile\sqlserver\goodschool.mdf' ,--物理名称,注意路径必须存在 size=5,--数据初始长度为5M maxsize=10,--最大长度为10M filegrowth=1)--数据文件每次增长1M log on ( name=goodschool_log, filename='D:\myfile\sqlserver\goodschool.ldf ' , size=2 , maxsize=5 , filegrowth=1) ``` #### 将新创建的数据库设置为当前数据库 ``` USE goodschool GO ``` #### 编写6个基本表 ##### 1. 系 (系编号,系名称、系主任、联系电话、地址) 列名|类型|长度|条件 -|-|-|- 系编号|字符型(定长)|长度为4|主码 系名称|字符型(变长)|长度20|非空 系主任|字符型(定长)|长度为10| 联系电话|字符型(变长)|长度20| 地址|字符型(变长)|长度40| ##### 2. 专业 (专业编号、专业名称、所属系) 列名|类型|长度|条件 -|-|-|- 专业编号|字符型(定长)|长度为2|主码 专业名称|字符型(变长)|长度40|非空 所属系|字符型(定长)|长度为4|外码 ##### 3. 教师 (教师编号、姓名、所在系、电话、电子信箱) 列名|类型|长度|条件 -|-|-|- 教师编号|字符型(定长)|长度为10|主码 姓名|字符型(定长)|长度10|非空 所在系|字符型(定长)|长度为4|外码 电话|字符型(变长)|长度20| 电子信箱|字符型(变长)|长度30| ##### 4. 学生 (学号、姓名、性别、出生日期、所学专业) 列名|类型|长度|条件 -|-|-|- 学号|字符型(定长)|长度为10|主码 姓名|字符型(变长)|长度20|非空,唯一 性别|字符型(定长)|长度为2|性别只能为‘男‘ 或‘女’ 出生日期|日期型(datetime)|| 所学专业|字符型(定长)|长度为2|外码 ##### 5. 课程 (课程号、课程名、学分、先修课) 列名|类型|长度|条件 -|-|-|- 课程号|字符型(定长)|长度为4|主码 课程名|字符型(变长)|长度30| 学分|数值型|长度为2,含1位小数| 先修课|字符型(定长)|长度为4|外码 ##### 6. 学生选课 (学号、课程号、成绩) 列名|类型|长度|条件 -|-|-|- 学号|字符型(定长)|长度为10|外码 课程号|字符型(定长)|长度为4|外码 成绩|数值型|长度为4,含1位小数|成绩必须在:0~100分之间 >本表的主码为:学号,课程号 ##### 编写脚本 ``` -- 创建系表 create table department( dpt_id char(4) primary key, dpt_name varchar(20) not null, dpt_head char(10), dpt_phone varchar(20), dpt_address varchar(40) ) -- 创建专业表 create table major( mj_id char(2) primary key, mj_name varchar(40) not null, mj_dpt char(4) foreign key references department(dpt_id) ) -- 创建教师表 create table teacher( tc_id char(10) primary key, tc_name char(10) not null, tc_dpt char(4) foreign key references department(dpt_id), tc_phone varchar(20), tc_email varchar(30) ) -- 创建学生表 create table student( st_id char(10) primary key, st_name varchar(20) not null unique, st_sex char(2) check(st_sex in('男','女')), st_born datetime, tc_mj char(2) foreign key references major(mj_id) ) -- 创建课程表 create table course( cs_id char(4) primary key, cs_name varchar(30), cs_credit numeric(2,1), cs_prerequisite char(4) foreign key references course(cs_id) ) -- 创建学生选课表 create table select_course( sc_id char(10) foreign key references student(st_id), sc_num char(4) foreign key references course(cs_id), sc_grade numeric(4,1) check (sc_grade>0 and sc_grade<100) primary key(sc_id,sc_num) ) ``` #### 修改基本表结构,完整性约束条件 >用 Alter table 语句修改基本表的结构,以及完整性约束条件 ##### 1. 为学生表增加属性:班级,字符型(变长),长度20 ``` -- 为学生表增加属性:班级,字符型(变长),长度20 alter table student add st_class varchar(20) ``` ##### 2. 为课程表添加一条完整性约束条件:课程名不允许为空值 ``` -- 为课程表添加一条完整性约束条件:课程名不允许为空值 alter table course alter column cs_name varchar(30) not null ``` ##### 3. 删除学生表中的班级属性 ``` -- 删除学生表中的班级属性 alter table student drop column st_class ``` ##### 4. 删除学生表中对学生姓名的唯一值限制 ``` -- 删除学生表中对学生姓名的唯一值限制 alter table student drop constraint 约束名 --约束名通过图形化界面查看 ``` #### 用Drop table 语句删除基本表 ``` -- 创建一个新的基本表 create table test( id char(10) primary key, name varchar(10) not null ) -- 删除该表。 drop table test ```
相关推荐
SQL Server 复制订阅后如何修改表结构
数据库集群 SQLserver AlwaysOn部署
评论区
先去登录
版权所有:机遇屋在线 Copyright © 2021-2025 jiyuwu Co., Ltd.
鲁ICP备16042261号-1