《数据库原理》实验四 SQL的数据定义语句

该实验详细介绍了如何使用SQL Server SSMS创建和管理数据库,包括创建数据库、模式,以及数据表的创建、修改和删除。实验内容涵盖了数据定义语句,如创建、修改和删除表,添加外键约束,修改表结构,以及处理数据库完整性和安全性。此外,还涉及到了视图、存储过程、触发器和索引等高级概念。
摘要由CSDN通过智能技术生成

本系列传送门:

  1. 实验二 SQL Server SSMS工具创建和管理数据库及数据表
  2. 实验三 SQL Server SSMS工具添加数据
  3. 实验四 SQL的数据定义语句
  4. 实验五 数据库完整性约束的实现与验证
  5. 实验六 SQL数据查询实验
  6. 实验六(2) SQL数据查询—连接查询
  7. 实验七 SQL的数据更新和视图
  8. 实验八 T_SQL编程
  9. 实验九 存储过程和触发器
  10. 实验十 索引和数据库的安全性

1. 实验要求

1. 掌握 SQL数据定义语句:create、 drop 、alter各自的功能
2. 掌握数据库、模式、基本表的创建、修改、删除的SQL语句语法格式
3. 通过SQL语句完成“电子商务系统”数据库及其基本表、模式的创建、修改和删除实践练习

2. 实验内容

2.1 通过SQL语句创建名为ecommerce1的数据库:

CREATE DATABASE ecommerce1

2.2 在数据库ecommerce1中练习模式的创建和删除语句

(如给用户li创建一个学生管理模式“S-T”)(需要先添加一个用户li)

use ecommerce1
create schema S_T authorization li;

2.3 在数据库ecommerce1中执行SQL语句操作,创建如下表:

2.3.1 商品类别表 category

category(catno,catname,describe),主码为catno

CREATE TABLE category (
	catno	int	not null primary key,
	catname varchar(30) not null,
	describe text
)
2.3.2 商品表 product

product(prono,proname,brand,stock,supno,price,cost,picture,catno,ontime,status),要求proname不能取空值

CREATE TABLE product (
	prono	int not null primary key,
	proname	varchar(30) not null,
	brand	varchar(30),
	stock	int,
	supno	int,
	price	smallmoney,
	cost	smallmoney,
	picture	varchar(30),
	catno	int,
	ontime	datetime,
	satus	smallint
)
2.3.3 供应商表 supplier

supplier(supno,supname,contactname,address,telephone),主码为(supno),属性supname不能取空值

CREATE TABLE supplier(
	supno	int not null primary key,
	supname	varchar(30) not null,
	contactname	varchar(20),
	address	varchar(30),
	telephone	varchar(15),
)
2.3.4 订单表 orders

orders(orderno,memno,prono,qty,discount,totalmoney,orderdate,paydate)

  • 属性prono参照商品表product的属性prono
  • memno参照会员表member的属性memno
create table orders(
	orderno int primary key,
	memno	int not null,
	prono	int not null,
	qty int,
	discount money,
	totalmoney money,
	orderdate datetime,
	paydate datetime
);
2.3.5 会员表 member

member(memno,memname,address,telephone,username,userpwd)

CREATE TABLE member(
	memno	int not null primary key,
	memname	varchar(30) not null,
	address	varchar(50),
	telephone	varchar(15),
	username	varchar(30) not null unique,
	userpwd	varchar(30) not null
)
2.3.6 员工表 employee

employee(empno,empname,depno,sex,telephone,username,userpwd)

CREATE TABLE employee(
	empno	int not null,
	empname	varchar(30) not null,
	depno	int,
	sex	varchar(4),
	telephone	varchar(15),
	username	varchar(30) not null,
	userpwd	varchar(30) not null,
)
2.3.7 部门表 department

department(depno,depname,manager,deptotal)

CREATE TABLE department(
	depno	int not null primary key,
	deppname	varchar(30) not null,
	manager	int,
	deptotal	int,
)

2.4 对上表增加外键约束

由于存在两个表互相有约束,所以不方便在建表的时候就加外键。
完成上述表的创建后,可以执行下列语句进行外键的添加。

alter table product 
add constraint fk_supno
foreign key(supno) references supplier(supno);

alter table orders
add constraint fk_memno
foreign key(memno) references member(memno);

alter table orders
add constraint fk_prono
foreign key(prono) references product(prono);

alter table employee
add constraint fk_depno
foreign key(depno) references department(depno);

alter table department
add constraint fk_empno
foreign key(manager) references employee(empno);

(说明:表的属性设置具体参照实验二即可)

2.5 使用sql语句修改表

(1)为订单表增加一属性deliverdate(发货日期),数据类型为datetime,允许取空值。
alter table orders
add deliverdate datetime
(2)修改商品表中属性列ontime的数据类型为date
alter table product
alter column ontime date
(3)为商品类别表中属性列catname增加不能取空值(not null)的约束
alter table category
alter column catname varchar(30) not null;
(4)为商品表增加一个主码约束,约束名为pk1,主码为prono
alter table product
add constraint pk1 primary key(prono);
(5)为员工表employee的属性userpwd增加一个默认值约束,默认值为123456,约束名为DF1
alter table employee
add constraint DF1 default 123456 for userpwd
(6)删除约束DF1
alter table employee
drop constraint DF1
(7)为会员表member属性列username添加取唯一值的约束,约束名为UK1
alter table member
add constraint UK1 unique(username)
(8)删除订单表中新增的属性deliverdate
alter table orders
drop column deliverdate
(9)为商品表中属性列catno增加一个外码约束,约束名为FK1,要求其参照商品类别表中主码catno的值
alter table product
add constraint FK1
foreign key(catno) references category(catno)
(10)删除会员表、员工表和部门表

先删除外键约束

alter table department
drop constraint fk_empno;

alter table employee
drop constraint fk_depno;

alter table orders
drop constraint fk_memno;

再删除表

drop table member;
drop table employee;
drop table department;
本文档为数据库上机实验报告,是自己认认真真一步一步写的,报告包含试验中的具体步骤,过程以及代码和实验结果截图,和实验总结。 实验实验题目: 数据库管理系统的使用 实验目的: 掌握SQL SERVER2005的使用数据库设计的一般方法实验内容: (1)SQL SERVER2005的使用 (2)数据库的设计过程并利用SQL SERVER2005建立数据库实验实验题目: 数据库定义 实验目的:掌握数据表建立、修改、删除、索引的SQL语句实验内容: (1)数据表的建立 (2)数据表的修改 (3)数据表的删除 (4)数据表的索引建立 为S表的DEPT建立唯一索引 (5)视图的建立与删除 建立一个计算机系学生基本信息视图CSV(SNO,SNAME,SEX,AGE) 查询1983年以后出生的计算机系学生基本信息。 建立一个计算机系学生成绩视图JSGV(SNO,CNO,GRADE)。 查询计算机系学生选课多于3门的学生学号。 查询计算机系学生2号课不及格的学生学号和成绩。 实验实验题目: 数据表的操作 实验目的: 掌握数据数据操作的SQL语句实验内容: SQL语句插入数据操作 SQL语句修改数据操作 SQL语句删除数据操作 SQL语句查询数据操作 维护数据SQL语句: (1)在学生表中插入一新生信息(‘200213808’,’HUJING’,’女’,22,’计算机’) (2)删除数据库中学号为’200213801’的退学学生有关信息。 (3)将计算机系学生2号课成绩全部提高5%。 查询数据SQL语句: (4)统计有学生选修的课程门数。 (5)统计HU老师所授每门课程的学生平均成绩。 (6)统计所有选修人数多于20的课程号和选课人数,并按人数降序排列,若人数相等,则按课程号升序排列。 (7)检索所有缓考即成绩为NULL的同学学号、姓名和缓考课程号。 (8)检索‘OS’课成绩高于该课平均成绩的同学学号。 (1) 检索计算机系女生的学号和姓名。 (2) 检索全体学生姓名、出生年份和所在系。 (3) 检索未选修任何课程的学生学号。 (4) 检索WANG老师所授课程号、课程名。 (5) 检索所有姓LI同学的基本信息。 (6) 检索选修‘DATABASE’课程的学生学号。 (7) 检索年龄介于LIPING同学年龄和28岁之间的学生基本信息。 (8) 检索选修TIAN老师所授全部课程的学生学号。 实验 实验题目: T-SQL编程 实验目的: 掌握T-SQL语句使用实验内容: 1.定义一个表变量,用来存储两名学生的学号,姓名,所在系。 2.编写一个自定义的函数,该函数接受一个学生姓名,返回其学生表中基本信息及选课情况。 3.试用CASE语句输出学生表中各年龄段的学生人数。 4.编写存储过程,以系别作为参数,统计指定系别的人数,并作为存储过程的输出。 实验题目: 数据库的完整性 实验目的: 掌握数据库的完整性约束定义,完整性检查及违约处理方式。 掌握触发器的定义使用实验内容: 1. 定义S, C表的完整性约束 2. 定义SC表的完整性约束,要求当其被参照表发生删除操作时,违约处理的方式为级联,当其被参照表发生修改操作时,违约处理的方式为拒绝。 3. 触发器 ☆ 建立一DML触发器,每当学生的成绩发生更新时,将更新的学号,成绩存入g-log表内 ☆ 建立一个INSTEAD OF触发器,每当修改课程表中记录时,利用触发器动作替代修改操作。 ☆ 建立一个DDL 触发器,不允许删除数据库中表,并作出响应。 实验实验题目: 数据库的安全性 实验目的: 掌握SQL SERVER 2005的安全控制机制 实验内容: 1. 创建登录 创建lg1,lg2,并设定口令 2. 定义用户 定义user1,user2,user1以lg1登录,user2以lg2登录,user1定义角色ddl_admin,datareader,datawriter 3. 掌握SQL SERVER 2005架构和用户分离的概念 为user1创建架构u1,并建立test表,通过授权模式的方法,授权给user2表访问test的权限 4. 数据库的授权、收权语句 ☆ 将查询SC表和修改GRADE属性的权限授予用户user1。 ☆ 将对表S的插入权限授予用户user2,并允许他将此权限授予其他用户。 ☆ 收回所有用户对表S的插入权限。 实验实验题目: 数据库的设计 实验目的: 掌握数据库的概念结构设计和逻辑结构与设计,掌握ER图的表示方法即如何将ER模型转化为关系模型 1.学校有若干系,每个系有若干班级和教研室,每个教研室有若干教师,其中有教授和副教授每人各带若干研究生,每个班有若干学生,每个学生选修若干课程,每门课有若干学生选修。 2.某工厂生产若干产品,每种产品由不同的零件组成,有的零件可用在不同的产品上。这些零件由不同的原材料组成,不同零件所用的材料可以相同。有些零件按所属的不同产品分别放在仓库中,原材料按照类别放在若干仓库中。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

okfang616

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值