实验四 SQL的数据定义语句

news2024/11/15 18:49:29

题目

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

CREATE DATABASE ecommerce1

2、在数据库ecommerce1中练习模式的创建和删除语句(如给用户li创建一个学生管理模式“S-T”)(需要先添加一个用户li)

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

商品类别表:category(catno,catname,describe),主码为catno

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

供应商表:supplier(supno,supname,contactname,address,telephone),主码为(supno),属性supname不能取空值

订单表:orders(orderno,memno,prono,qty,discount,totalmoney,orderdate,paydate), 属性prono参照商品表product的属性prono,memno参照会员表member的属性memno

会员表:member(memno,memname,address,telephone,username,userpwd)

员工表:employee(empno,empname,depno,sex,telephone,username,userpwd)

部门表:department(depno,depname,manager,deptotal)

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

4、使用sql语句修改表:

(1)为订单表增加一属性deliverdate(发货日期),数据类型为datetime,允许取空值。

(2)修改商品表中属性列ontime的数据类型为date

(3)为商品类别表中属性列catname增加不能取空值(not null)的约束

(4)为商品表增加一个主码约束,约束名为pk1,主码为prono

(5)为员工表employee的属性userpwd增加一个默认值约束,默认值为123456,约束名为DF1

(6)删除约束DF1

(7)为会员表member属性列username添加取唯一值的约束,约束名为UK1

(8)删除订单表中新增的属性deliverdate

(9)为商品表中属性列catno增加一个外码约束,约束名为FK1,要求其参照商品类别表中主码catno的值

(10)删除会员表、员工表和部门表

步骤如下:

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

   

 2、在数据库ecommerce1中练习模式的创建和删除语句(如给用户li创建一个学生管理模式“S-T”)(需要先添加一个用户li)

  

然后通过sql语句CREATE USER li FOR LOGIN li;创建一个与登录名li相关联的用户

然后通过sql语句GRANT CREATE SCHEMA TO li;,为其分配创建模式的权限

CREATE SCHEMA [S-T] AUTHORIZATION li;   这将在 "ecommerce1" 数据库中创建一个名为 "S-T" 的模式,并将其所有权授予用户 "li"。

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

1) 商品类别表:category(catno,catname,describe),主码为catno

create table category ( 

catno int not null, 

catname varchar(30) not null, 

describe text, 

primary key (catno) 

);

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

注:需先完成供应商表才可执行此sql命令

create table product ( 

prono int not null,

proname varchar(30) not null,

brand varchar(30), stock int,

supno int, price smallmoney,

cost smallmoney, picture varchar(30), 

catno int, ontime datetime default getdate(), 

satus smallint not null default 0 check (satus in (0, 1, 2)),

primary key (prono), 

foreign key (supno) references supplier(supno),

foreign key (catno) references category(catno) 

);

3) 供应商表:supplier(supno,supname,contactname,address,telephone),主码为(supno),属性supname不能取空值

create table supplier ( supno int not null, 

supname varchar(30) not null,

contactname varchar(20), 

address varchar(30),

telephone varchar(15), 

primary key (supno)

)

4)订单表 orders(orderno,memno,prono,qty,discount,totalmoney,orderdate,paydate),属性prono参照商品表product的属性prono,memno参照会员表 member的属性memno

注:需先创建下面的会员表

create table orders ( 

orderno int not null, 

memno int, prono int,

qty int not null,

discount money not null default 0,

totalmoney money not null,

orderdate datetime not null,

paydate datetime, primary key (orderno),

foreign key (memno) references member(memno),

foreign key (prono) references product(prono) 

);

  1. 会员表:member(memno,memname,address,telephone,username,userpwd)

create table member ( 

memno int not null,

memname varchar(30) not null,

ddress varchar(50),

telephone varchar(15),

username varchar(30) not null unique,

userpwd varchar(30) not null,

 primary key (memno) 

  1. 员工表:employee(empno,empname,depno,sex,telephone,username,userpwd)
  2. 部门表:department(depno,depname,manager,deptotal)

先创建没有外键约束的department表

CREATE TABLE department (

depno INT NOT NULL,

depname VARCHAR(30) NOT NULL,

manager INT, deptotal INT, 

PRIMARY KEY (depno) ); 

再正常创建employee表

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, 

primary key (empno), 

foreign key (depno) references department(depno) ); 

创建员工表后,再修改department的外键关系

alter table department add constaint manager_department foreign key (manager) references employee(empno);

  1. 使用sql语句修改表:
  1. 为订单表增加一属性deliverdate(发货日期),数据类型为datetime,允许取空值。
     alter table orders add deliverdate datetime null;
  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

(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)删除会员表、员工表和部门表
drop table member;
drop table employee; 
drop table department;

(写不完时,可另加附页。)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1892587.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

苏东坡传-读书笔记九

我们论到苏东坡,我们就不能避免“气”这个字。因为每个文学批评家综括苏东坡的个性,必用孟子所说的这个“气”字。 在《孟子》里,“气”是哲学的概念,类似柏格森所说的“生气勃勃”,是人格上的“元气”。使伟人和匹夫显…

jvm 03 JVM的运行时数据区域 ,(类常量池,运行时常量池,字符串常量池这个三个的区别),操作系统内存模型JMM和JVM的内存模型联系

方法区在jdk8后,改成元空间 JVM内存模型: JMM 主内存:本地方法区和堆 工作内存:私有的工作栈 其实一个JVM内存模型(主要就是运行时数据区域)一个Java进程的JMM,工作内存JVM中线程的内存区域…

路由LLM:优化模型调用的成本与效率

引言 在最近的一些视频和讨论中,我们经常提到使用较便宜和较快的模型来替代一些昂贵的大型语言模型(LLM)。这种方法的一个主要原因是看到许多人在不必要的场合调用如GPT-4或Claude Opus等高级模型,从而浪费了大量资金。而事实上&…

利用Arcgis绘制克吕金插值图

工作中我们常用到克吕金插值图,下面简单介绍下使用Arcmap绘制克吕金插值图的方法及注意事项,希望能帮到大家。 一、准备工作 软件:Arcgis 数据:点图层、研究范围 二、操作步骤 1 添加数据 打开Arcmap,从添加位置将…

springboot酒店管理系统-计算机毕业设计源码93190

目 录 摘 要 1 绪论 1.1 选题背景与意义 1.2开发现状 1.3论文结构与章节安排 2 酒店管理系统系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 法律可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分析 2.3 系统用例分析…

一句注释引发的思考 - 论代码质量

一句注释引发的思考 接到一个有鸡毛信般的紧急需求(当然,002的需求向来是如此紧急的):大屏展示原来只有二个品牌数据,现增加到三个品牌的数据。一句话的需求,且没有业务逻辑变更,我认为可以迅雷…

LineageOs-21.0系统编译问题

🏆本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&…

如何使用 3D 建模库在 C# 中将 3DS 转换为 USDZ?

USDZ/USD是一种 3D 文件格式,被广泛用于跨平台共享 3D 资产。另一方面,3DS是另一种以块形式存储数据的 3D 文件格式。在某些情况下,您需要将3DS 文件转换为 USDZ/USD文件格式。因此,本篇博文介绍了一个功能丰富的3D 建模库&#x…

MySQL—常用的数据类型

数据类型 整型 1.创建一个含有无符号/有符号整型的字段的表 CREATE TABLE L1(id tinyint unsigned #无符号 ) CREATE TABLE L2(id tinyint #默认为有符号 ) 数值型(bit) 2.数值型(bit)的使用 小数 3.数值型(小数)的基本使用 字符串 4.字符串的基本使用 #演示字符串类型…

urfread刷算法|构建一棵树

大意 示例标签串: 处理结果: 题目1 根据标签串创建树 需求 需求:给出一个字符串,将这个字符串转换为一棵树。 字符串可以在代码里见到,是以#开头,按照\分割的字符串。 你需要将这个字符串&#xff0…

详解COB封装的定义

COB封装全称是Chip on Board(板上芯片封装),是一种非常先进的电子封装工艺,其会涉及到将发光芯片直接封装于印刷电路板(PCB)或者其他类型的互连电气基板上,通过细小的金属线进行键合&#xff0c…

golang出现panic: runtime error: index out of range [0] with length 0(创建n阶矩阵时)

本打算创建一个n阶的二维数组:以下两种情况都试了但都会出现如图片中的错误 ans : make([][]int, n)//① var ans [][]int //② 原因是初始化问题: 虽然创建了切片 ans,但是没有初始化其内部的切片。这会导致在尝试访问 ans[i][j] 等位置时出…

还是NC,项目代码开源|scRNA+bulkRNA+因子分析验证地塞米松治疗Covid19

说在前面 平时发文章的话,做药物用的大多都是仅仅是GEO的bulkRNA,有人的有鼠的,然后做做流水线分析,最后面PCR。今天看一篇发NC的工作量,怎么用转录组分析做药物的转化免疫学 这篇文章作者已经上传Github了&#xff…

vue3中使用弹幕组件vue-danmaku

1、最开始使用的是vue3-marquee,后面发现一直有一个bug无法解决,就是鼠标hover到第一个弹幕上字体就会变粗,已经提了issue给作者,但是目前还未答复,所以就换了方案。 地址如下: https://github.com/megasa…

Zoom视颊会议软件使用

GPT-3.5 (OpenAI) Zoom是一款极受欢迎的视频会议软件。使用Zoom可以方便地进行视频会议、远程授课、在线研讨会等活动。以下是Zoom的使用步骤: 1. 下载Zoom客户端 可以在Zoom官网上下载对应平台的Zoom客户端。下载并完成安装后,双击打开客户端。 2. 创建…

用Python制作动态钟表:实时显示时间的动画

文章目录 引言准备工作前置条件 代码实现与解析导入必要的库初始化Pygame绘制钟表函数主循环 完整代码 引言 动态钟表是一种直观且实用的UI元素,能够实时显示当前时间。在这篇博客中,我们将使用Python创建一个动态钟表,通过利用Pygame库来实…

动手学Avalonia:基于SemanticKernel与硅基流动构建AI聊天与翻译工具

Avalonia是什么? Avalonia是一个跨平台的UI框架,专为.NET开发打造,提供灵活的样式系统,支持Windows、macOS、Linux、iOS、Android及WebAssembly等多种平台。它已成熟并适合生产环境,被Schneider Electric、Unity、Jet…

高薪程序员必修课-Java中 ReentrantLock的公平锁和非公平锁底层实现原理

目录 前言 公平锁(Fair Lock) 原理 实现 示例代码 底层实现 非公平锁(Non-Fair Lock) 原理 实现 示例代码 底层实现 比较与选择 总结 ⭐️ 好书推荐 前言 在Java中,ReentrantLock 提供了公平锁和非公平锁…

详解 RisePro 信息窃密木马

RisePro 是一种窃密木马,以恶意软件即服务(MaaS)的模式在地下论坛出售。该恶意软件家族最早在 2022 年被发现,近期攻击行为快速增长。 RisePro 不依赖特定的感染媒介,可以通过多种方式植入失陷主机,通常使…

抖音本地生活服务商入驻流程须知指南!

近日,抖音发布关于新增《【到家外卖】内容服务商开放准入公告》的意见征集通知(以下简称“通知”),并在其中公布了抖音外卖服务商入驻的一系列申请条件。在此背景下,许多想要成为抖音本地生活服务商的创业者在关注抖音…