数据库实验—DDL
使用SQL语句,在D盘的Data文件夹下,创建一个名为jxdb+学号后2位的教学管理数据库(如:学号后两位为01,则数据库名为jxdb01)。把教学管理数据库文件增长参数设置为4MB,文件最大大小参数设置为20MB,存储文件的文件名可自定义,其它参数均使用默认值。
- name为存储文件的文件名
- filename为真实的物理地址
- 记得加on关键字
create database jxdb29
on
(
name='jxdb29',
filename='D:\Data\jxdb29.mdf',
maxsize=20MB,
filegrowth=4MB
)
使用SQL语句,在教学管理数据库中,创建Department学院基本表,只定义属性和表的主键。
表结构如下:

create table Department(
Dno char(2) primary key,
Dname varchar(15) not null
)
使用SQL语句,在教学管理数据库中,创建Major专业基本表,只定义属性和表的主键。
表结构如下:

create table Major(
Mno char(4) primary key,
Mname varchar(15) not null,
Dno char(2)
)
使用SQL语句,在教学管理数据库中,创建Students学生基本表,只定义属性和表的主键。
表结构如下:

create table Students(
Sno char(10) primary key,
Sname varchar(4) no null,
Sgender nchar(1),
Sage int,
Dno char(2),
Sclass char(8),
Mno char(4)
)
使用SQL语句,在教学管理数据库中,创建Teachers教师基本表,只定义属性和表的主键。
表结构如下:

create table Teachers(
Tno char(4) primary key,
Tname varchar(4) not null,
Tgender nchar(1),
Tbirth smalldatetime,
Dno char(2)
)
使用SQL语句,在教学管理数据库中,创建Courses课程基本表,只定义属性和表的主键。
表结构如下:
create table Courses(
Cno char(8) primary key,
Cname varchar(20) not null,
Chours int,
Ccredit int
)
使用SQL语句,在教学管理数据库中,创建Reports选课基本表,只定义属性和表的主键。
表结构如下:

create table Reports(
Sno char(10),
Cno char(7),
Racademicyear int,
Rterm int,
Grade int,
primary key(Sno,Cno)
)
使用SQL语句,在教学管理数据库中,创建Tutors授课基本表,只定义属性和表的主键。
表结构如下:

create table Tutors(
Tno char(4) not null,
Cno char(8) not null,
Tacademicyear int,
Tterm int,
Sclass char(8)
)
使用SQL语句修改Department表结构:
增加“学院院长”字段Dheader,类型为CHAR(4)。alter table Department add Dheader char(4)
使用SQL语句修改Students表结构:
(1)将“年龄”字段Sage改为“出生日期”字段Sbirth,类型为SMALLDATETIME;alter table Students drop column Sage
alter table Students add Sbirth smalldatetime
(2)增加一个“生源地”字段Snative,类型为NVARCHAR(20)
alter table Students add Snative varchar(20)
使用SQL语句修改Courses表结构:
增加“先序课程编号”字段Pre_Cno,类型为CHAR(8)alter table Courses add Pre_Cno char(8)
使用SQL语句修改Reports表结构:
将“成绩”字段Grade的类型改为DECIMAL(4,1)alter table Reports alter column Grade decimal(4,1)
使用SQL语句修改Tutors表结构
增加以下字段内容 :
“课程评分”(Tevaluation) DECIMAL(4,2),
“学生评价”(Tmemo) NVARCHAR(150)alter table Tutors add Tevaluation decimal(4,2)
alter table Tmemo varchar(150)
使用SQL语句,对各基本表中的外键进行声明,包括:
(1)学院表Department:Dheaderalter table Department
add constraint FK_Dheader
foreign key(Dheader) references Teachers
(2)专业表Major:Dno
alter table Major
add constraint FK_Dno
foreign key(Dno) references Department
(3)学生表Students:Mno
alter table Students
add constraint FK_Mno
foreign key(Mno) references Major
(4)教师表Teachers:Dno
alter table Teachers
add constraint FK_Dno
foreign key(Dno) references Department
(5)选课表Reports:Sno, Cno
alter table Reports
add constraint FK_Sno
foreign key(Sno) references Students alter table Reports
add constraint FK_Cno
foreign key(Cno) references Courses
(6)课程表Courses:Pre_Cno
alter table Courses
add constraint FK_Pre_Cno
foreign key(Pre_Cno) references Courses(Cno)
-- 因为同一个表,不指名参照Cno可能会导致参照到Pre_Cno,因为外键一般都是和另一表主键同名
(7)授课表Tutors:Tno, Cno
alter table Tutors
add constraint FK_Tno
foreign key(Tno) references Teachers alter table Courses
add constraint FK_Cno
foreign key(Cno) references Courses
使用SQL语句,创建各基本表的索引,包括:
(1)在表Students的Mno列上按降序创建索引IDX_Stu_Mnocreate index IDX_Stu_Mno on Students(Mno desc)
(2)在表Courses的Cname列上按升序创建唯一索引IDX_Cou_Cname
create unique index IDX_Cou_Cname on Courses(Cname asc)
(3)在表Reports的学年列上按降序,同时在学期列上按升序创建索引
create index IDX_Rep_Year_Term on Reports(Racademicyear desc, Rterm asc)
(4)在表Teachers的职称列上按升序,同时在出生日期列上按降序创建索引
create index IDX_Prof_Birth ON Teachers(Dno asc, Tbirth desc)
(5)在表Tutors的Tno列上按升序创建索引
create index IDX_Tno ON Tutors(Tno asc)
(6)在表Tutors的Sclass列上按降序创建索引
create index IDX_Sclass ON Tutors(Sclass desc)
用SQL语句删除表Teachers中在职称列和出生日期列上创建的索引
drop index IDX_Prof_Birth on Teachers
数据库实验—DDL的更多相关文章
- 数据库---实验四 oracle的安全性和完整性控制
实验内容: (一) 授权 . 以dba用户的身份登陆oracle,创建用户u1+学号后四位,u2+学号后四位. SQL> create user u1_3985 identified by &q ...
- 数据库级别DDL操作监控审计、数据库触发器/服务器触发器
关键词:数据库触发器/服务器触发器 ,数据库级别DDL操作监控审计,禁止修改登录名密码 [1]数据库级别DDL操作监控审计 转自2012示例库,只能数据库级别,不能实例级别 use database ...
- MySQL数据库之DDL(数据定义语言)
1.MySQL数据库之DDL创建.删除.切换 (1)查看所有数据库 show databases: (2)切换数据库 use 数据库名: (3)创建数据库 create database 数据库名: ...
- 使用PostgreSQL 脚本导出数据库的DDL
使用PostgreSQL 脚本导出数据库的DDL 本文主要介绍如何使用基于 PostgreSQL pgdump编写的自定义脚本来导出数据库的DDL. 一.文件说明: 1.pgdump基础语句.sql: ...
- 数据库中DDL、DML、DCL和TCP概念
1.DDL(Data Definition Language)数据库定义语言statements are used to define the database structure or schema ...
- 数据库中"DDL","DML","DCL"
sql组成:DDL:数据库模式定义语言,关键字:createDML:数据操纵语言,关键字:Insert.delete.updateDCL:数据库控制语言 ,关键字:grant.removeDQL:数据 ...
- OGG_GoldenGate数据库配置DDL同步(案例)
2014-03-08 Created By BaoXinjian
- 数据库:DDL/DML/DCL/TCL基本概念
SQL(Structure Query Language)语言是数据库的核心语言 1. 数据查询语言DQL 数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE 子句组成的查询块: ...
- MySQL数据库实验六:存储过程建立与调用
实验六 存储过程建立与调用 一.实验目的 理解存储过程的概念.建立和调用方法. 二.实验环境 三.实验示例 1.定义一个函数,按性别计算所有学生的平均年龄. CREATE FUNCTION aver ...
- 数据库的DDL、DML和DCL的区别与理解
DML(data manipulation language): 它们是SELECT.UPDATE.INSERT.DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言 DDL ...
随机推荐
- #整体二分,树状数组#洛谷 3332 [ZJOI2013]K大数查询
题目 分析 虽然树套树也可以做,这里考虑整体二分, 对于二分的答案\(mid\),1操作实际上就是如果\(c>mid\)就给区间整体加1, 2操作即询问区间和是否超过\(k\),如果超过\(k\ ...
- 做好PPT,提高沟通效率
本文于2019年7月12日完成,发布在个人博客网站上. 考虑个人博客因某种原因无法修复,于是在博客园安家,之前发布的文章逐步搬迁过来. 只用一套PPT来通杀全部使用场景,这个想法其实很天真. 作为一种 ...
- 内存分析利器之UMDH
近两周投入分析产品的内存泄漏问题. 测试团队反馈产品在安卓平台运行时,随用户操作,应用占用的内存出现上涨的趋势,停止操作并等待一段时间之后,应用占用的内存没有下降,怀疑存在内存泄漏问题. 结合复现的情 ...
- 单元测试篇2-TDD三大法则解密
引言 在我们上一篇文章了解了单元测试的基本概念和用法之后,今天我们来聊一下 TDD(测试驱动开发) 测试驱动开发 (TDD) 测试驱动开发英文全称是Test Driven Development 简称 ...
- RabbitMQ 08 路由模式
路由模式 路由模式结构图: 定义配置类. import org.springframework.amqp.core.Binding; import org.springframework.amqp.c ...
- Django集成layui 的 layedit 之图片上传接口
# a.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- 树模型-CART树
分类回归树CART CART树是后面所有模型的基础,也是核心树 在ID3算法中我们使用了信息增益来选择特征,信息增益大的优先选择.在C4.5算法中,采用了信息增益比来选择特征,以减少信息增益容易选择特 ...
- 高云SOC芯片GW1NSR-LV4CQN48的ARM总线
高云SOC芯片GW1NSR-LV4CQN48的ARM总线 国产GOWIN高云出的一款芯片是GW1NSR-LV4CQN48PC7/I6,QN48封装,资源是4608,有10个18K BRAM,以及2个P ...
- FPGA技术脚本使用
做fpga 不会脚本,基本跟残废一个概念.以前我觉得做FPGA应该学习什么人工智能,大数据,机器人.现在想起来真是傻逼,做fpga也好,做ic,做逻辑其实基本能力都是一样的. 一个学习tcl脚本,pe ...
- Flutter开发技巧集锦
flutter中单例的写法 class AccountManager { factory AccountManager() => _instance ??= AccountManager._() ...