实验四 SQL的数据定义语句

题目

  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;

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Windows如何安装并启动Nginx

0、前言 Nginx 是一款高性能、轻量级的Web服务器和反向代理服务器,广泛应用于互联网领域。它以其高效稳定、内存占用少和丰富的模块化设计而受到开发者们的青睐。 在实际使用过程中,我们多数时候会在Linux系统上运行Nginx,但实际上&#xff…

国产强大免费WAF, 社区版雷池动态防护介绍

雷池WAF,基于智能语义分析的下一代 Web 应用防火墙 使用情况 我司于2023年4月23日对雷池进行测试,测试一个月后,于2023年5月24日对雷池进行正式切换,此时版本为1.5.1。 里程碑纪念 后续一直跟随雷池进行版本升级,当前…

秋招力扣刷题——从前序与中序遍历序列构造二叉树

一、题目要求 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 二、解法思路 根据二叉树的遍历结构重构二叉树,至少两种遍历方式结合&…

kettle生成uuid32位——kettle开发44

生成UUID: UUID是由一组字符组成,通常呈现为32位的十六进制数, 如 "550e8400-e29b-41d4-a716-446655440000" 目标: 生成的UUID是34位的,我们去掉-,转换为正常的32位 实现:

Android TextView的属性与用法

文本控件包括TextView、EditText、AutoCompleteTextView、CheckedTextView、MultiAutoCompleteTextView、TextInputLayout等,其中TextView、EditText是最基本最重要的文本控件,是必须要掌握的文本控件。 1.TextView TextView控件用于显示文本信息&…

Three.js机器人与星系动态场景(二):强化三维空间认识

在上篇博客中介绍了如何快速利用react搭建three.js平台,并实现3D模型的可视化。本文将在上一篇的基础上强化坐标系的概念。引入AxesHelper辅助工具及文本绘制工具,带你快速理解camer、坐标系、position、可视区域。 Three.js机器人与星系动态场景&#x…

红酒的秘密花园:探索葡萄的种植艺术

在远离城市喧嚣的某个角落,隐藏着一座神秘的红酒秘密花园。这里,葡萄藤缠绵交织,绿叶间闪烁着晶莹的露珠,仿佛在诉说着关于红酒与葡萄种植艺术的古老传说。今天,就让我们一起走进这片神秘的花园,探寻葡萄种…

Mysql查询IFNULL和想象的不一样

select sum(ifnull(a,0)) aaa,ifnull(sum(a),0) bbb from (select g.goodsid a from goods g where g.goodsid 601 ) tmp #注意 goodsid 601 的不存在 ​​​ 返回的结果和想象中不同,解释如下 在您SQL查询中,创建了一个子查询(别名为tmp&a…

FEBLESS SAP软件对芯片设计企业的重要性

在集成电路(IC)设计行业,无晶圆厂模式(Fabless)企业专注于芯片的设计和销售,而将制造和封装测试外包给专业的代工厂和封测厂。Fabless模式下,企业面临着复杂的供应链管理和项目协同挑战,而SAP软件作为一款成熟的企业资源规划(ERP)…

iiiiiiiiiiiiiiiiiiiiiiiiiio_contexttttttttttttttttttttttttt

https://www.cnblogs.com/bwbfight/p/17594353.html 谈一谈linux下线程池 - 白伟碧一些小心得 - 博客园 (cnblogs.com) 谈一谈linux下线程池 - 白伟碧一些小心得 - 博客园 (cnblogs.com) https://www.cnblogs.com/bwbfight/p/10901574.html 前面的设计,我们对asio…

Kafka集群安装部署

简介 Kafka是一款分布式的、去中心化的、高吞吐低延迟、订阅模式的消息队列系统。 同RabbitMQ一样,Kafka也是消息队列。不过RabbitMQ多用于后端系统,因其更加专注于消息的延迟和容错。 Kafka多用于大数据体系,因其更加专注于数据的吞吐能力…

AI网络爬虫006:从当当网批量获取图书信息

文章目录 一、目标二、输入内容三、输出内容一、目标 用户输入一个图书名称,然后程序自动从当当网批量获取图书信息 查看相关元素在源代码中的位置: 二、输入内容 第一步:在deepseek中输入提示词: 你是一个Python爬虫专家,一步步的思考,完成以下网页爬取的Python脚本任…

WEB攻防-XSS跨站反射型存储型DOM型标签闭合输入输出JS代码解析

文章目录 XSS跨站-输入输出-原理&分类&闭合XSS跨站-分类测试-反射&存储&DOM反射型XSS存储型XSSDOM-base型XSS XSS跨站-输入输出-原理&分类&闭合 漏洞原理:接受输入数据,输出显示数据后解析执行 基础类型:反射(非持续…

ffmpeg下载/配置环境/测试

一、下载 1、访问FFmpeg官方网站下载页面:FFmpeg Download Page; 2、选择适合Windows的版本(将鼠标移动到windows端)。通常,你会找到“Windows builds from gyan.dev”或者“BtbN GitHub Releases”等选项&#xff0…

Java的异常处理体系

目录 异常处理1、Java的异常类层次结构2、try-catch-finally 使用注意事项3、在Web应用中如何实现全局异常处理机制 异常处理 1、Java的异常类层次结构 其中Error表示程序运行错误 常见的错误类型有: OutOfMemoryError (内存溢出错误) StackOverFlowError (栈内存溢…

ctfshow-web入门-命令执行(web118详解)Linux 内置变量与Bash切片

输入数字和小写字母,回显 evil input 查看源码,发现这里会将提交的参数 code 传给 system 函数 使用 burpsuite 抓包进行单个字符的模糊测试 fuzz: 发现过滤掉了数字和小写字母以及一些符号,下面框起来的部分是可用的 结合题目提…

vue2使用use注册自定义指令实现输入控制与快捷复制

使用场景 在一些form表单填写内容的时候,要限制输入的内容必须是数值、浮点型,本来el-input-number就可以实现,但是它本身带那个数值控制操作,等一系列感觉不舒服的地方。如果只是使用el-input该多好,只要监听一下输入…

爬虫笔记20——票星球抢票脚本的实现

以下内容仅供交流学习使用!!! 思路分析 前面的爬虫笔记一步一步走过来我们的技术水平也有了较大的提升了,现在我们来进行一下票星球抢票实战项目,实现票星球的自动抢票。 我们打开票星球的移动端页面,分…

身份证OCR识别的深度解读

引言 随着信息技术的飞速发展,光学字符识别(OCR)技术在各个领域得到了广泛应用。身份证OCR识别,作为OCR技术的一个重要分支,以其高效、准确的特点,在身份验证、信息录入等方面发挥着重要作用。本文将深入解…

【Linux】Linux用户,用户组,其他人

1.文件拥有者 初次接触Linux的朋友大概会觉得很怪异,怎么“Linux有这么多用户,还分什么用户组,有什用呢?”,这个“用户与用户组”的功能可是相当健全而且好用的一个安全防护措施。 怎么说呢?由于Linux是个…