【SQL实验】数据库、表、模式的SQL语句操作

news2024/11/30 10:52:21

完整代码在文章末尾

1、数据库的建立、删除和修改操作

(1)使用SQL语句创建数据库EDUC,并进行如下设置:

数据库文件和日志文件的逻辑名称分别为:Student_data和Student_log;数据文件的物理文件名为‘C:\DATABASE\Student_data.MDF';数据文件的初始大小为5MB,文件增长量为1MB;日志文件的增长方式初始大小为2MB,文件增长量为10%;日志文件的物理文件名为‘C:\DATABASE\Student_log.LDF'。

将要执行的语句高亮可以单独执行

如果像这样没有出现的话,

右击刷新

通过数据库属性查看操作结果

(2)使用SQL语句在数据库EDUC添加一个数据文件,逻辑名称:Student_data1,物理文件名为‘C:\DATABASE\Student_data1.NDF'文件夹中,数据文件的初始大小为2MB,文件增长量为10%

 

通过数据库属性查看操作结果

(3)使用SQL语句修改数据文件"Student_data1",初始大小为5MB,文件增长量为2MB,最大值为1GB

通过数据库属性查看操作结果

(4)使用SQL语句将新添加数据文件"Student_data1"删除。

通过数据库属性查看操作结果

2、数据表的建立、删除和修改操作

(1)使用SQL语句在EDUC数据库中创建三个基本表(表名为“student”、“course”和“sc”)。

通过数据库属性查看操作结果

(2)使用SQL语句将student表中“sname”列的数据类型为CHAR(40)

通过数据库属性查看操作结果

(3)使用SQL语句在student表中添加新列,列名为“高考成绩”,数据类型为int

通过数据库属性查看操作结果

(4)使用SQL语句删除“高考成绩”列

通过数据库属性查看操作结果

(5)使用SQL语句设置student中的“sage”为not null

通过数据库属性查看操作结果

ALTER COLUMN 指定要修改的列

ADD CONSTRAINT 用于添加新约束,约束名称为 check_ccredit

CHECK (ccredit BETWEEN 1 AND 3)

CHECK 是一种约束,用于限制列中的值。

(ccredit BETWEEN 1 AND 3) 表示 ccredit 列的值必须在 1 和 3 之间(包括 1 和 3),确保数据在有效范围内。

(6)使用SQL语句设置course中的“ccredit”的取值范围为1-3

通过数据库属性查看操作结果

--  添加新列,指定数据类型和是否允许为空
ALTER TABLE 表名
ADD 列名 数据类型[(长度)] [NULL | NOT NULL];  -- NULL:允许空值,NOT NULL:不允许空值

-- 添加自增列 (IDENTITY)
ALTER TABLE 表名
ADD 列名 数据类型[(长度)] IDENTITY(标识种子, 标识增量);  -- IDENTITY:自动递增


-- 修改列的数据类型、长度或是否允许为空
ALTER TABLE 表名
ALTER COLUMN 列名 数据类型[(长度)] [NULL | NOT NULL];  -- ALTER COLUMN 修改现有列


--  删除列
ALTER TABLE 表名
DROP COLUMN 列名 [, …n];  -- DROP COLUMN 删除一个或多个列


--  添加约束
ALTER TABLE 表名
ADD CONSTRAINT 约束名 约束定义;  -- ADD CONSTRAINT 添加约束


-- 添加外键约束,引用其他表的主键
-- 例如:在 "sc" 表中为 "sno" 列添加外键,引用 "student" 表中的 "sno"
ALTER TABLE sc
ADD CONSTRAINT fk_sc_sno FOREIGN KEY (sno) REFERENCES student(sno);

--  删除约束
ALTER TABLE 表名
DROP CONSTRAINT 约束名;  -- DROP CONSTRAINT 删除约束


--  禁用约束
ALTER TABLE 表名
NOCHECK CONSTRAINT 约束名;  -- NOCHECK 暂时禁用约束


-- 8启用约束
ALTER TABLE 表名
CHECK CONSTRAINT 约束名;  -- CHECK 重新启用已禁用的约束


3、模式的建立、删除和修改操作

(1)使用SQL语句:在EDUC数据库下,为guest用户创建ST模式,在该模式下面创建一张STUDENT表(列信息如上面的student表)

这个错误的意思需要将 CREATE SCHEMA 和其他操作分开处理,单独建一个文件,但这样运行不影响

或者

再运行:

   (2)使用SQL语句删除ST模式,若不能删除,为什么?如何才能删除?

  • 模式不能直接删除,如果其中包含对象(如表),必须先删除模式下的所有对象,才能删除模式。
  • 先删除模式中的对象,再删除模式本身,才能成功删除模式。

完整运行代码:

--创建数据库EDUC并设置数据库文件和日志文件【这里路径自己设定了一下】
CREATE DATABASE EDUC
ON 
(
    NAME = 'Student_data',
    FILENAME = 'D:\code files\SQL DATA\Student_data.MDF',
    SIZE = 5MB,
    FILEGROWTH = 1MB
)

LOG ON
(
    NAME = 'Student_log',
    FILENAME = 'D:\code files\SQL DATA\Student_log.LDF',
    SIZE = 2MB,
    FILEGROWTH = 10%
);

--在数据库EDUC中添加数据文件

ALTER DATABASE EDUC
ADD FILE 
(
    NAME = 'Student_data1',
    FILENAME = 'D:\code files\SQL DATA\Student_data1.NDF',
    SIZE = 2MB,
    FILEGROWTH = 10%
);
--修改数据文件
ALTER DATABASE EDUC
MODIFY FILE
(
    NAME = 'Student_data1',
    SIZE = 5MB,
    FILEGROWTH = 2MB,
    MAXSIZE = 1GB
);
--删除数据文件
ALTER DATABASE EDUC
REMOVE FILE Student_data1;


--数据表的建立、删除和修改操作

-- 创建 student 表
CREATE TABLE student (
    sno CHAR(9) NOT NULL,  
    sname CHAR(20) NOT NULL, 
    ssex CHAR(2),           
    sage SMALLINT,           
    sdept CHAR(20),          
    PRIMARY KEY (sno)
);

-- 创建 course 表
CREATE TABLE course (
    cno CHAR(4) NOT NULL,   
    cname CHAR(40) NOT NULL, 
    cpno CHAR(4),           
    ccredit SMALLINT,        
    PRIMARY KEY (cno)
);

-- 创建 sc 表
CREATE TABLE sc (
    sno CHAR(9) NOT NULL,   
    cno CHAR(4) NOT NULL,   
    grade SMALLINT,         
    PRIMARY KEY (sno, cno),
    FOREIGN KEY (sno) REFERENCES student(sno),
    FOREIGN KEY (cno) REFERENCES course(cno)
);

--修改

ALTER TABLE student
ALTER COLUMN sname CHAR(40) NOT NULL;

ALTER TABLE student
ADD 高考成绩 INT;

ALTER TABLE student
DROP COLUMN 高考成绩;

ALTER TABLE student
ALTER COLUMN sage SMALLINT NOT NULL;

ALTER TABLE course
ADD CONSTRAINT check_ccredit
CHECK (ccredit BETWEEN 1 AND 3);


go
-- 在 EDUC 数据库中为 guest 用户创建 ST 模式
CREATE SCHEMA ST AUTHORIZATION guest;
go

-- 在 ST 模式下创建 STUDENT 表
CREATE TABLE ST.STUDENT (
    sno CHAR(9) NOT NULL,      
    sname CHAR(20) NOT NULL,    
    ssex CHAR(2),              
    sage SMALLINT,              
    sdept CHAR(20),            
    PRIMARY KEY (sno)
);


-- 尝试删除 ST 模式
DROP SCHEMA ST;

--运行结果:无法对 'ST' 执行 drop schema,因为对象 'PK__STUDENT__DDDF64467444FCB1' 正引用它。


-- 要删除 ST 模式中的 STUDENT 表
DROP TABLE ST.STUDENT;
-- 删除 ST 模式
DROP SCHEMA ST;



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

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

相关文章

【Linux】:线程概念

朋友们、伙计们,我们又见面了,本期来给大家带来线程概念相关代码和知识点,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! C 语 言 专 栏:C语言:从入门到精通 数…

Oracle T5-2 ILOM配置

ILOM管理口ip地址配置 连接控制器(SP)串口(RJ45),进行系统设置 (缺省:9600,8-n-1,root/changeme) …………………. ORACLESP-AK02566506 login: root Password: Detecting screen size; pl…

CSS3 动画相关属性实例大全(1)(@keyframes ,background属性,border 属性)

CSS3 动画相关属性实例大全(1) (CSS 中有动画效果的属性图例大全) 本文目录: 零、时光宝盒 一、CSS3 动画基本概念 (1)、CSS3的动画基本属性 (2)、keyframes 规则和所有动画属性 二、CSS 中有动画效果…

SQLI LABS | Less-1 GET - Error based - Single Quotes - String

关注这个靶场的其它相关笔记:SQLI LABS —— 靶场笔记合集-CSDN博客 0x01:过关流程 输入下面的链接进入靶场(如果你的地址和我不一样,按照你本地的环境来): http://localhost/sqli-labs/Less-1/ 靶场提示 …

CyberRT通信介绍与基于Reader、Writer的通信实践(apollo9.0)

目录 数据通信场景 CyberRT中的通信方式 ​编辑 通信模式 话题通信 服务通信 参数通信 protobuf protobuf简介 protobuf文件编写 topic通信实验 实验环境 实验准备 代码编写 定义消息格式 发送消息 接收消息 定义编译规则 程序编译 运行程序 数据通信场景 …

STM32-Modbus协议(一文通)

Modbus协议原理 RT-Thread官网开源modbus RT-Thread官方提供 FreeModbus开源。 野火有移植的例程。 QT经常用 libModbus库。 Modbus是什么? Modbus协议,从字面理解它包括Mod和Bus两部分,首先它是一种bus,即总线协议,和…

开发一个微信小程序要多少钱?

在当今数字化时代,微信小程序成为众多企业和个人拓展业务、提供服务的热门选择。那么,开发一个微信小程序究竟需要多少钱呢? 开发成本主要取决于多个因素。首先是功能需求的复杂程度。如果只是一个简单的信息展示小程序,功能仅限…

使用HIP和OpenMP卸载的Jacobi求解器

Jacobi Solver with HIP and OpenMP offloading — ROCm Blogs (amd.com) 作者:Asitav Mishra, Rajat Arora, Justin Chang 发布日期:2023年9月15日 Jacobi方法作为求解偏微分方程(PDE)的基本迭代线性求解器在高性能计算&#xff…

Java实现油画滤镜效果【参数可调】

油画滤镜的基本原理 油画滤镜的基本思想是通过改变图像的像素,将每个像素用周围随机选择的像素来代替,从而产生类似油画笔触的效果。这种处理方式可以模糊图像的细节,使得图像的色块更加连贯,从而模仿油画的艺术效果。 核心步骤…

后台管理员登录实现--系统篇

我的小系统后台原来就有一个上传图片的功能还夹带个删除图片的功能,还嵌到了一个菜单里面。之前效果如下 那么现在为了加大安全力度,想增加一个登录页面。通过登录再到这个页面。看着貌似很简单,但是听我细细说来,要新增些什么东西…

OpenLayers:构建现代Web地图应用

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 OpenLayers:构建现代Web地图应用 文章目录 OpenLayers:构建现代Web地图应用1. 简介2. 为什么选择 OpenLa…

Redis 高可用:从主从到集群的全面解析

目录 一、主从复制 (基础)1. 同步复制a. 全量数据同步b. 增量数据同步c. 可能带来的数据不一致 2. 环形缓冲区a. 动态调整槽位 3. runid4. 主从复制解决单点故障a. 单点故障b. 可用性问题 5. 注意事项a. Replica 主动向 Master 建立连接b. Replica 主动向 Master 拉取数据 二、…

腾讯云宝塔面板前后端项目发版

后端发版 1. 打开“网站”页面,找到java项目,点击状态暂停服务 2.打开“文件”页面,进入jar包目录,删除原有的jar包,上传新jar包 3. 再回到第一步中的网站页面,找到jar项目,启动项目即可 前端发…

C#的小数位保留以及四舍五入

C#使用Math.Round("数值","保留位","保留方式")进行小数位保留以及四舍五入 //1.MidpointRounding.ToEven(四舍六入五成双) //当保留小数位后一位为0~4时,舍去末位 var x1 Math.Round(1.124, 2, MidpointRo…

立仪科技:光谱共焦传感器精准测量玻璃

光谱共焦测量技术作为一种创新的光学检测方法,近年来在工业领域引起了广泛关注。 它以其高精度、非接触式的特点,特别适用于透明或半透明材料如玻璃的厚度和表面形貌测量。 接下来,立仪科技小编将深入探讨光谱共焦技术在玻璃测量上的应用及其…

计算机毕业设计Hadoop+Hive+Spark+Flink广告推荐系统 广告预测 广告数据分析可视化 广告爬虫 大数据毕业设计 深度学习 机器学习

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 专业 小四号宋体 班级 小…

飞机大战告尾

参考 PPO算法逐行代码详解 链接 通过网盘分享的文件:PlaneWar 链接: https://pan.baidu.com/s/1cbLKTcBxL6Aem3WkyDtPzg?pwd1234 提取码: 1234 10.17关于博客发了又改这件事 悲催的事 今天训练了一早上ppo模型,满怀期待的检测成果时发现一点长进都…

mac安装brew时踩坑解决方案

安装包 mac上如果按照git等工具可能会使用brew,例如使用:$ brew install git命令,如果电脑没有按照brew,则会提示:zsh: command not found: brew 解决方案 需要我们打开brew的官网https://brew.sh/,复制…

动态规划一>下降路径最小和

1.题目&#xff1a; 2.解析&#xff1a; 代码&#xff1a; /**1.创建dp表2.初始化3.填表4.返回值*/public int minFallingPathSum(int[][] matrix) {int n matrix.length;int[][] dp new int[n1][n2];int minNum Integer.MAX_VALUE; for(int i 1; i < n; i) dp[i][0]…

【CSS】纯CSS Loading动画组件

<template><div class"ai-loader-box"><!-- AI loader --><div class"ai-loader"><div class"text"><p>AI智能分析中....</p></div><div class"horizontal"><div class&quo…