首页 > 数据库 >数据库——一些复健(主要是约束和索引相关练习)

数据库——一些复健(主要是约束和索引相关练习)

时间:2024-04-26 23:23:27浏览次数:16  
标签:复健 定义 创建 数据库 练习 约束 索引 stusys

  重要的是练习,写作业时写的絮絮叨叨就忽略吧。

 

 

强化学习2                    

【练习9.1】在stusys数据库中创建course1表,以列级完整性约束方式定义主键。

 

 

【练习9.2】在stusys数据库中创建course2表,以表级完整性约束方式定义主键。

 

 

 

 

【练习9.3】在stusys数据库中创建course3表,以表级完整性约束方式定义主键,并指定主键约束名称。

 

 

 

【练习9.4】 删除练习9.3创建的在course3表上的主键约束。

 

 

 

【练习9.5】重新在course3表上定义主键约束。

 

 

【练习9.6】在stusys数据库中创建course4表,以列级完整性约束方式定义唯一性约束。

 

 

(这里都写错了,要将unique设置成cname列,因为cid默认主键,没法删掉的)

 

【练习9.7】在stusys数据库中创建course5表,以表级完整性约束方式定义唯一性约束。

 

 

(这里都写错了,unique设置成cname列,因为cid默认主键,没法删掉的)

【练习9.8】

 删除练习9.7在course5表创建的唯一性约束。(这里比较特殊,需要记忆)

 

 

【练习9.9】重新在course5表上定义唯一性约束。

 

 

【练习9.10】,创建score1表,在cno列以列级完整性约束方式定义外键。

 

 

(写的时候写快了,要求是cno,但是我这里写的是cid,毕竟我是先写强化学习2,所以建表的列名全是自己写的,将cid替换成cno就行了,列级完整性约束方式定义外键还是一样的写法,之后也可能会有类似的行为,)

【练习9.11】

创建score2表,在cno列以表级完整性约束方式定义外键,并定义相应的参照动作。

 

 

【练习9.12】删除练习9.11在score2表上定义的外键约束。

 

 

 

【练习9.13】 重新在score2表上定义外键约束。

 

 

【练习9.14】在stusys数据库中创建表score3,在grade列以列级完整性约束方式定义检查约束。

 

 

 

 

 

【练习9.15】在stusys数据库中创建表score4,在grade列以表级完整性约束方式定义检查约束。

 

 

【练习9.16】删除练习9.15在score4表上定义的检查约束。

 

 

【练习9.17】重新在score4表上定义检查约束。

 

 

总结:如果是想要添加表级约束,那么可以直接用constraint 约束名称 约束条件。如果是想要删掉/添加 约束,那么可以使用alter table 表名 DROP/ADD …… ,如果是表级的添加,省略号那里可以写 constraint 约束名称 约束条件,比如,alter table course3 add constraint pk_course3 primary key(id) , 表级的删除,可以写约束条件 约束名称 ,比如,alter table score2 drop foreign key FK_score2;如果是列级的添加,省略号那里可以把constraint 约束名称。(上述情况unique除外)

 ps:如果想要查看约束,可以使用show create table 表名   这个命令。

强化学习1

【练习8.1】 在stusys数据库中student表的sname列上,创建一个普通索引I_studentSname。

 

 

 

【练习8.2】 在stusys数据库中course表的cno列上,创建一个索引I_courseCno,要求按课程号cno字段值前2个字符降序排列。

 

 

【练习8.3】 在stusys数据库中student表的tc列(降序)和sname列(升序),创建一个组合索引I_studentTcSname。

 

 

【练习8.4】在stusys数据库teacher表的tname列,创建一个唯一性索引I_teacherTname,并按降序排列。

 

 

【练习8.5】在stusys数据库中,创建新表score1表,主键为sno和cno,同时在grade列上创建普通索引。

 

 

【练习8.6】查看练习8.5所创建的score1表的索引。

 

 

【练习8.7】删除已建索引I_studentTcSname。

 

 

 

【练习8.8】删除已建索引I_teacherTname。

 

 

 

 

 

标签:复健,定义,创建,数据库,练习,约束,索引,stusys
From: https://www.cnblogs.com/clina/p/18161061

相关文章

  • mysql 数据库时区问题
    当数据库时区设置为国际时区时jdbc-url中添加以下配置serverTimezone=GMT%2B0Java服务中设置东八区TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai"));使用mybatis红的mapper.xml<resultMapid="BaseResultMap"type="cn.xs.qxj.mtk.pojo.XpCallInfo"......
  • day25-索引和函数及存储过程
    1.索引在数据库中索引最核心的作用是:加速查找。例如:在含有300w条数据的表中查询,无索引需要700秒,而利用索引可能仅需1秒。mysql>select*frombigwherepassword="81f98021-6927-433a-8f0d-0f5ac274f96e";+----+---------+---------------+------------------------------......
  • 实验三 数据库完整性
    第1关:定义s表完整性createtables(snochar(2)PRIMARYKEY,snamevarchar(10)notnull,statusint,cityvarchar(10)DEFAULT'天津');第2关:定义p表完整性usedemo;#代码开始#定义p表;pno主码,pname非空、color只能取红、蓝、绿createtablep(......
  • 二十三、数据库性能优化方案
    数据库的优化方案核心本质有三种:减少数据量、用空间换性能、选择合适的存储系统,这也对应了开篇讲解的慢的三个原因:数据总量、高负载、查找的时间复杂度。 一、减少数据量数据序列化存储、数据归档、中间表生成、分库分表。二、用空间换性能该类型的两个方案都是用来应对......
  • Spring Boot应用中如何动态指定数据库,实现不同用户不同数据库的场景
    当在SpringBoot应用程序中使用SpringDataJPA进行数据库操作时,配置Schema名称是一种常见的做法。然而,在某些情况下,模式名称需要是动态的,可能会在应用程序运行时发生变化。比如:需要做数据隔离的SaaS应用。所以,这篇博文将帮助您解决了在SpringBoot应用程序中如何设置动态S......
  • 1、oracle数据库-导入导出
    Oracle数据库的导入导出主要有三种方式:使用pl、sql开发工具导入导出dmp文件方式:这是最常用的导入导出方式,生成的dmp文件是二进制的,可以跨平台操作,并且包含权限信息,也支持大字段数据,使用最广泛。在导出语法中,可以通过指定“full=y”和“ignore=y”参数来进行整个数据库的......
  • Matlab转python的索引问题
    python中numpy库可以实现类似matlab多维数组的运算.但两者在索引方式上存在一些差异.这是需要注意的.例如:%定义一个4*4矩阵A=1:16;A=reshape(A,[4,4]);%提取2*2的子矩阵a=A([1,4],[1,4])%得到一个2*2矩阵:%[A(1,1)A(1,4);%A(4,1)A(4,4)]但是python中则不......
  • 【Qt 专栏】Qt:SQLite数据库操作示例
    转载自:https://blog.csdn.net/qq_40344790/article/details/129521573作者:DevFrank(CSDNC/C++ 优质创作者)1. sqlite介绍SQLite 是一种轻量级的嵌入式关系型数据库管理系统,它是一个开源的、零配置的、自包含的、事务性的SQL数据库引擎。SQLite的设计目标是简单、高效、可......
  • SQL Server实战二:创建、修改、复制、删除数据库表并加以数据处理
      本文介绍基于MicrosoftSQLServer软件,实现数据库表的创建、修改、复制、删除与表数据处理的方法。目录1交互式创建数据库表T2交互式创建数据库表S3T-SQL创建数据库表C4T-SQL创建数据库表SC5T-SQL创建数据库表TC6交互式向数据库表S中添加新列NATIVE7交互式修改数据库......
  • WPF RICHTEXTBOX 和数据库读写图文的方法。
    存入数据库。publicstringtoxaml(){//Streams=newMemoryStream();//其他的什么Stream类型都没问题XamlWriter.Save(MemoryStreams=newMemoryStream();TextRangedocumentTextRange=newTextRange(thi......