数据库学习笔记1-数据库实验1

文章目录

  • 创建表格的时候出现的一些错误
  • 查询所有的表格
  • 实验一
  • 查询单个表格
  • 分块
  • 修改大学数据库表格
  • 创建大学数据库表格
    • 课程
    • 教师
    • 课程段
    • 授课
    • 学生
    • 选课
    • 注意
    • 吐槽
  • 修改大学数据库表格2(英文版本)
    • a
    • b
    • c
    • d
    • e
  • 自建项目-在线书店数据库

创建表格的时候出现的一些错误

小白使用sql语句出现的一些错误

create table 课程段(课程号    varchar(5),课程段号  varchar(8),学期      varchar(6) check(学期 in ('Fall', 'Winter', 'Spring', 'Summer')),年份      number(4,0) check(年份 > 2001 and 年份 < 2050),primary key(课程号, 课程段号, 学期, 年份),foreign key(课程号) references 课程 on delete cascade,);

我输入上面的语句,试图创建一个表格,
在这里插入图片描述

第 8 行出现错误:
ORA-00904: : 标识符无效

提示出现这个错误,谷歌之后说是,使用了数据库的关键字,但是其实没有,主要是因为最后一行多了一个逗号

create table 课程段(课程号    varchar(5),课程段号  varchar(8),学期      varchar(6) check(学期 in ('Fall', 'Winter', 'Spring', 'Summer')),年份      number(4,0) check(年份 > 2001 and 年份 < 2050),primary key(课程号, 课程段号, 学期, 年份),foreign key(课程号) references 课程 on delete cascade);

在这里插入图片描述
其实是可以了,只是我把这个创建了一遍了,所以就显示重复了
在这里插入图片描述
这个错误列表挺奇怪的,命令行会返回说出现了什么问题,这个错误列表就没啥用了

查询所有的表格

在这里插入图片描述

SELECT TABLE_NAME FROM USER_TABLES;

经过查询,显示有14个表格

实验一

第1、3题创建的表的名字都以“T_”开头

总共有三个题目,第一题和已有的实验报告里面的完全一致,我仔细检查了一遍,原来所有题目和实验报告的题目其实是完全一样的

查询单个表格

在这里插入图片描述
desc 课程段

分块

首先是图书采购的表格的创建,然后是修改大学数据库中的表,最后是自己做一个表格,比如说在线书店,总共是三个部分

修改大学数据库表格

增加“国家”表(表名为:T_country),属性:cid(国家代码)、name(国名)等。
instructor表中增加属性:age、gender、cid、academic_title(职称)、native_place(籍贯)。
student表中增加属性:gender、native_place(籍贯)。
删除section表中的属性:time_slot_id、room_number。
将takes表中grade的数据类型改为整型。

后面要用的时候都是英文的,但是前面创建表格的时候表的名字都是中文的,所以重新创建一下表

创建大学数据库表格

create table department(dept_name    varchar(20),building     varchar(15),budget   number(12,2) check(budget> 0),primary key(dept_name));

课程

create table course(course_id    varchar(5),title    varchar(50),dept_name      varchar(20),credits      number(2,0) check(credits > 0),primary key(course_id),foreign key(dept_name) references departmenton delete set null);

教师

create table instructor(ID       varchar(7),name         varchar(20) not null,dept_name    varchar(20),salary       number(8,2) check(salary > 29000),primary key(ID),foreign key(dept_name) references department on delete set null);

课程段

create table section(course_id    varchar(5),sec_id  varchar(8),semester      varchar(6) check(semester in ('Fall', 'Winter', 'Spring', 'Summer')),year      number(4,0) check(year > 2001 and year < 2050),primary key(course_id, sec_id, semester, year),foreign key(course_id) references course on delete cascade);

授课

create table teaches(ID    varchar(7),course_id    varchar(5),sec_id  varchar(8),semester      varchar(6),year      number(4,0),primary key(ID, course_id, sec_id, semester, year),foreign key(course_id,sec_id, semester, year) references section on delete cascade,foreign key(ID) references instructor on delete cascade);

学生

create table student(ID    varchar(10),name    varchar(20) not null,dept_name    varchar(20),tot_cred  number(3,0) check(tot_cred >= 0),primary key(ID),foreign key(dept_name) references department on delete set null);

选课

create table takes(ID      varchar(10),course_id    varchar(5),sec_id  varchar(8),semester      varchar(6),year      number(4,0),grade      varchar(2),primary key(ID, course_id, sec_id, semester, year),foreign key(course_id,sec_id, semester, year) references section on delete cascade,foreign key(ID) references student on delete cascade); 

注意

课程段号和开课号是一个意思(姑且这么记忆就行),英文缩写都是sec_id

学生的学号和老师的教师号都是ID

吐槽

这个中英文转换确实老费时间了,经过查询,现在有21个表格了
在这里插入图片描述

第一个采购图书主要任务是创建表格,创建完成了

修改大学数据库表格2(英文版本)

修改的具体内容和往年的要求不太一样,五个小问只有一问是相等的

a

增加“国家”表(表名为:T_country),属性:cid(国家代码)、name(国名)等。

在这里插入图片描述
启发是可以多多使用ai来辅助学习

CREATE TABLE T_country (  cid CHAR(2) PRIMARY KEY,    -- 假设国家代码是两位字符  name VARCHAR2(100) NOT NULL -- 国名可能较长,这里使用VARCHAR2类型并设定长度为100,你可以根据需要调整  
);

b

instructor表中增加属性:age、gender、cid、academic_title(职称)、native_place(籍贯)。

在这里插入图片描述
现在老师的这个数据库有四个属性,教师号,姓名,系名,工资,需要增加五个属性

NOT NULL 是一个约束,用于确保某个列(字段)不包含 NULL 值。当你为一个表的列定义 NOT NULL 约束时,该列在插入新记录或更新现有记录时都必须有一个值,不能是 NULL

CHECK 约束用于限制列中的值范围。它确保列中的所有数据都满足指定的条件。如果试图插入或更新不满足 CHECK 约束条件的行,数据库将抛出一个错误。

在这里插入图片描述

alter table instructor add academic_title varchar(5) not null check(academic_title in ('教授','副教授','讲师'));

在这里插入图片描述
新增之后可以发现,在表格里面多了一行属性

数据库表格里面的行,貌似被称为列(column)

增加年龄,限制必须非空且大于18
alter table instructor add age INT not null check(age>=18);
在这里插入图片描述
输入多条修改命令,可以实现修改,最后得到的表格如下
在这里插入图片描述
籍贯

alter table instructor add native_place varchar(20);

国家代码

alter table instructor add cid varchar(20);

性别

alter table instructor add gender varchar(1) not null check(gender in ('男','女'));

c

student表中增加属性:gender、native_place(籍贯)。

修改之后是这样,修改命令如下
在这里插入图片描述

# 学生表格的修改
alter table student add gender varchar(1) not null check(gender in ('男','女'));alter table student add native_place varchar(20);

d

删除section表中的属性:time_slot_id、room_number。

等下,貌似这个数据库表格里面压根就没有这几个属性

在这里插入图片描述
我先把这两个属性加进去,再删除试试

在这里插入图片描述
现在把这个属性加进去了

alter table section add time_slot_id INT;

通过下面的命令删除

ALTER TABLE section DROP COLUMN time_slot_id;

在这里插入图片描述
可以发现确实被删除了

在这里插入图片描述

# 这个压根没有,我先新建,
alter table section add time_slot_id INT;
alter table section add room_number INT;# 删除
ALTER TABLE section DROP COLUMN time_slot_id;
ALTER TABLE section DROP COLUMN room_number;

e

将takes表中grade的数据类型改为整型。

在这里插入图片描述
可以发现目前不是整型,这个的意思是最多存两个字符的字符串

在这里插入图片描述
实现了修改

ALTER TABLE takes MODIFY (grade INT);

自建项目-在线书店数据库

这个貌似可以直接用代码

create table T_author
(name varchar(5),address varchar(20),URL varchar(25) not null,primary key(name)
);create table T_book1
(ISBN varchar(13),title varchar(10),year numeric(4,0),price numeric(4,2),primary key(ISBN)
);create table T_publisher
(name varchar(10),phone varchar(11) not null,address varchar(20) not null,URL varchar(20) not null,primary key(name)
);create table T_shopping_basket
(basket_id varchar(10) primary key
);create table T_warehouse
(code varchar(6) primary key,address varchar(20),phone varchar(11)
);create table T_customer
(email varchar(15) primary key,name varchar(5),address varchar(20),phone varchar(11)
);create table T_written_by
(name varchar(5),ISBN varchar(13),primary key(name,ISBN),foreign key(name) references T_author on delete cascade,foreign key(ISBN) references T_book1 on delete cascade
);create table T_published_by
(name varchar(5),ISBN varchar(13),primary key(name,ISBN),foreign key(name) references T_publisher on delete cascade,foreign key(ISBN) references T_book1 on delete cascade
);create table T_contains
(ISBN varchar(13),
basket_id varchar(10),
num numeric(4,0),
primary key(ISBN,basket_id,num),
foreign key(ISBN) references T_book1 on delete cascade,
foreign key(basket_id) references T_shopping_basket on delete cascade
);create table T_stocks
(ISBN varchar(13),code varchar(6),num numeric(4,0),primary key(ISBN,code,num),foreign key(ISBN) references T_book1 on delete cascade,foreign key(code) references T_warehouse on delete cascade
);create table T_basket_of
(basket_id varchar(10),email varchar(15),primary key(basket_id,email),foreign key(basket_id) references T_shopping_basket on delete cascade,foreign key(email) references T_customer on delete cascade
);

全部创建完之后可以发现有这么多表格,最后实验报告加几张自己电脑的截图,就好了,缝缝补补
在这里插入图片描述

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

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

相关文章

子集和问题(回溯法)

目录 ​​​​ 前言 一、算法思路 二、分析过程 三、代码实现 伪代码&#xff1a; C&#xff1a; 总结 前言 【问题描述】考虑定义如下的PARTITION问题中的一个变型。给定一个n个整数的集合X{x1,x2,…,xn}和整数y&#xff0c;找出和等于y的X的子集Y。 一、算法思路 基本思想&am…

【STL】C++ stack(栈) 基本使用

目录 一 stack常见构造 1 空容器构造函数&#xff08;默认构造函数&#xff09; 2. 使用指定容器构造 3 拷贝构造函数 二 其他操作 1 empty 2 size 3 top 4 push && pop 5 emplace 6 swap 三 总结 一 stack常见构造 1 空容器构造函数&#xff08;默认构造…

云计算OpenStack基础

1.什么是虚拟化&#xff1f; •虚拟化是云计算的基础。 •虚拟化是指计算元件在虚拟的而不是真实的硬件基础上运行。 •虚拟化将物理资源转变为具有可管理性的逻辑资源&#xff0c;以消除物理结构之间的隔离&#xff0c;将物理资源融为一个整体。虚拟化是一种简化管理和优化…

最长递增子序列,交错字符串

第一题&#xff1a; 代码如下&#xff1a; int lengthOfLIS(vector<int>& nums) {//dp[i]表示以第i个元素为结尾的最长子序列的长度int n nums.size();int res 1;vector<int> dp(n, 1);for (int i 1; i < n; i){for (int j 0; j < i; j){if (nums[i]…

Spring-注解

Spring 注解分类 Spring 注解驱动模型 Spring 元注解 Documented Retention() Target() // 可以继承相关的属性 Inherited Repeatable()Spirng 模式注解 ComponentScan 原理 ClassPathScanningCandidateComponentProvider#findCandidateComponents public Set<BeanDefin…

动态规划part03 Day43

LC343整数拆分&#xff08;未掌握&#xff09; 未掌握分析&#xff1a;dp数组的含义没有想清楚&#xff0c;dp[i]表示分解i能够达到的最大乘积&#xff0c;i能够如何分解呢&#xff0c;从1开始遍历&#xff0c;直到i-1&#xff1b;每次要不是j和i-j两个数&#xff0c;要不是j和…

【传知代码】自监督高效图像去噪(论文复现)

前言&#xff1a;在数字化时代&#xff0c;图像已成为我们生活、工作和学习的重要组成部分。然而&#xff0c;随着图像获取方式的多样化&#xff0c;图像质量问题也逐渐凸显出来。噪声&#xff0c;作为影响图像质量的关键因素之一&#xff0c;不仅会降低图像的视觉效果&#xf…

串口通信问题排查总结

串口通信问题排查 排查原则&#xff1a; 软件从发送处理到接收处理&#xff0c;核查驱动、控制及发送接收数据是否正常。硬件从发送到接收&#xff0c;针对信号经过的各段&#xff0c;分段核对信号是否正常。示波器、逻辑分析仪。用万用表、示波器、逻辑分析仪等工具&#xf…

JRT性能演示

演示视频 君生我未生&#xff0c;我生君已老&#xff0c;这里是java信创频道JRT&#xff0c;真信创-不糊弄。 基础架构决定上层建筑&#xff0c;和给有些品种的植物种植一样&#xff0c;品种不对&#xff0c;施肥浇水再多&#xff0c;也是不可能长成参天大树的。JRT吸收了各方…

基于文本来推荐相似酒店

基于文本来推荐相似酒店 查看数据集基本信息 import pandas as pd import numpy as np from nltk.corpus import stopwords from sklearn.metrics.pairwise import linear_kernel from sklearn.feature_extraction.text import CountVectorizer from sklearn.feature_extrac…

C++:类和对象

一、前言 C是面向对象的语言&#xff0c;本文将通过上、中、下三大部分&#xff0c;带你深入了解类与对象。 目录 一、前言 二、部分&#xff1a;上 1.面向过程和面向对象初步认识 2.类的引入 3.类的定义 4.类的访问限定符及封装 5.类的作用域 6.类的实例化 7.类的…

【busybox记录】【shell指令】readlink

目录 内容来源&#xff1a; 【GUN】【readlink】指令介绍 【busybox】【readlink】指令介绍 【linux】【readlink】指令介绍 使用示例&#xff1a; 打印符号链接或规范文件名的值 - 默认输出 打印符号链接或规范文件名的值 - 打印规范文件的全路径 打印符号链接或规范文…

(函数)颠倒字符串顺序(C语言)

一、运行结果&#xff1b; 二、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h> # include <string.h>//声明颠倒函数; void reverse(char a[]) {//初始化变量值&#xff1b;int i, j;char t;//循环颠倒&#xff1b;for (i 0, j strl…

【使用ChatGPT构建应用程序】应用程序开发概述:1. 管理秘钥、2. 数据安全、3. 与应用程序解耦、4. 注意提示语的注入攻击

文章目录 一. 首先注意的两个方面1. 管理API密钥1.1. 用户提供API密钥1.2. 你自己提供API密钥 2. 数据安全和数据隐私 二. 软件架构设计原则&#xff1a;与应用程序解耦三. 注意LLM提示语的注入攻击1. 分析输入和输出2. 监控和审计3. 其他要注意的注入情况 在了解了ChatGPT的文…

一篇文章讲透排序算法之快速排序

前言 本篇博客难度较高&#xff0c;建议在学习过程中先阅读一遍思路、浏览一遍动图&#xff0c;之后研究代码&#xff0c;之后仔细体会思路、体会动图。之后再自己进行实现。 一.快排介绍与思想 快速排序相当于一个对冒泡排序的优化&#xff0c;其大体思路是先在文中选取一个…

基于Python实现 HR 分析(逻辑回归和基于树的机器学习)【500010104】

介绍 数据集说明 此数据集包含与员工有关的综合属性集合&#xff0c;从人口统计细节到与工作相关的因素。该分析的主要目的是预测员工流动率并辨别导致员工流失的潜在因素。 在这个数据集中&#xff0c;有14,999行&#xff0c;10列&#xff0c;以及这些变量&#xff1a;满意度…

ClickHouse 与其他数仓架构的对比——Clickhouse 架构篇(四)

文章目录 前言ClickHouse与Hive的对比计算引擎的差异ClickHouse比Hive查询速度快的原因 ClickHouse与HBase的对比HBase的存储系统与ClickHouse的异同HBase的适用场景及ClickHouse不适合的原因 ClickHouse与Kylin的对比Kylin的架构Kylin解决性能问题的思路Kylin方案的缺陷ClickH…

我觉得 “砍需求” 是程序员最牛逼的本领

在下认为&#xff0c;不会 “砍需求” 的程序员不是好程序员&#xff0c;工作经验越丰富的程序员&#xff0c;砍需求的本领一般就越高。即使现在我多了一个身份 —— 管理团队&#xff0c;我也会帮开发同学去跟产品砍需求。 没错&#xff0c;从管理者的角度&#xff0c;我希望…

web练习

[CISCN 2022 初赛]ezpop ThinkPHP V6.0.12LTS 反序列化漏洞 漏洞分析 ThinkPHP6.0.12LTS反序列漏洞分析 - FreeBuf网络安全行业门户 解题过程 ThinkPHP V6.0.12LTS反序列化的链子可以找到&#xff0c;找到反序列化的入口就行 反序列化的入口在index.php/index/test 链子 …

latex中伪代码后面多出=0

这latex简直就是憨猪&#xff01;&#xff01;&#xff01; \usepackage{algpseudocode} 注释掉&#xff0c;或者删除就可以了 还有&#xff0c;引用包的时候一般begin{}中括号里是什么就引入什么包。 这下面这几行&#xff0c;开始全爆红说没定义&#xff0c;我就去一行一行问…