首页 > 数据库 >数据库系统概论-3.3数据定义-赵亮老师

数据库系统概论-3.3数据定义-赵亮老师

时间:2024-04-01 20:02:14浏览次数:27  
标签:删除 Create 模式 索引 3.3 Student Table 数据库系统 概论

  • 对数据库,仓库,表的形象比喻

数据库->仓库 模式->房间 表->房间里面的物品

模式的定义与删除

定义模式

Create Schema <模式名> Authorization <用户名>;

  • 例如为用户wang定义一个学生-课程模式S-T。

Create schema “S-T” Authorization WANG;

说明

  1. 若没有指定模式名,那么<模式名>隐含为<用户名>

Create schema Authorization WANG;

  1. 在Create Schema<模式名> Authorization <用户名>[<表定义子句>|<视图定义子句>|<授权定义子句>];
  2. 执行创建模式语句必须拥有DBA权限,或者DBA授权在Create Schema的权限。

删除模式

语句格式:Drop Schema <模式名> <Cascade|Restrict>;

说明

  1. Cascade和Restrict必须二选一
  2. Cascade(级联):删除模式(房间)的同时必须把该模式中所有的数据库对象全部删除
  3. Restrict(限制):(如果房间里面有东西就不能拆)当模式下面有数据库有数据表的时候会出错。(必须保证是空房子才能拆)

Drop Schema ZHANG Cascade;
删除模式ZHANG,同时改模式中定义的表TAB1也被删除。


基本表的定义、删除与修改

定义基本表

  • 语句格式
Create Table<表名> (<列名> <数据结构> [列级完整约束条件]
                                      [, <列名> <数据结构> [列级完整约束条件]]
                                      .....
                                      [,<表级完整约束条件>]);
                                      ```

模式与表

每一个基本表都属于某一个模式,一个模式包含多个基本表

  • 创建基本表(其他数据库对象一样),若没有指定模式系统根据搜索路径来确定该对象所属的模式。
  1. 显示当前的搜索路径:

SHOW search_pathn

  1. 搜索路径的当前默认值是:

$user,PUBLIC;

  1. DBA用户可以设置搜索路径

SET search_path TO “S-T”,PUBLIC;(第一个模式名S-T)

  • 若搜索路径中的存在模式,RDBMS会使用模式列表中的第一个存在的模式作为数据库对象的模式名

创建基本表

  • 以定义一个学生-课程模式S-T为例
  1. 创建表时给出模式名
Create Table “S-T”.Student (.....);
Create Table “S-T”.Course (.....);
Create Table “S-T”.SC (.....);
  1. 在创建模式语句中创建表

  1. 设置所属属性,在创建表名中不必给出模式名

前面的已经设置了搜索路径

  • 例如:
Set search_path “S-T”, PUBLIC;
Create Table Student(......);
  • 执行结果:建立了S-T.Student基本表

修改基本表

  • 例子 向Student表增加”入学时间”列,其数据类型为日期型

Alter Table Student Add S_entrance DATE; DATE是数据类型

  • 注意 不论基本表中原来是否已有数据,新增加的列一律为空值

  • 例子 将年龄的数据类型由字符型(假设之前为字符型)改为整数

Alter Table Student Alter Column Sage Int;

  • 例子增加课程名称必须取唯一值的约束条件

Alter Table Course Add Unique (Cname);


删除基本表

  • 语句格式:Drop Table <表名>[Reatrict|Cascade] ;
  • 例:删除Student表

Drop Table Student Cascade

基本表定义被删除,数据被删除,表上建立的索引、视图、触发器等一般也将被删除。


索引的建立与删除

  • 建立索引的目的:

    加快查询速度

  • 谁可以建立索引:

    DBA或表的属主(即建立表的人)

    DBMS一般会自动建立以上的索引:

    Primary Key; 也就是主键Sno

    Unique; Sname

  • 谁维护索引:

    DBMS自动完成

  • 使用索引:

    DBMS自动选择是否使用索引及使用哪些索引

建立索引

  • 语句格式:

Create [Unique] [Cluster] Index<索引名> On <表名> (<列名>[<次序>] [, <列名>[<次序>]]…);

  • Unique是唯一索引,Cluster是聚簇索引
  1. Unique表明此索引每一个索引值只对应唯一的数据,下面是一些例子
    _X_ZRTDX@1QDHF4I_O_L45V.png

  2. Cluster表示要建立的索引是聚簇索引。聚簇索引会调整实际的物理位置,调整成跟书的目录一样的顺序(这里拿书的目录作为例子)

  • 例一
  • 例二
  • 聚簇索引的详细用法

  • 在Student表的Sname列上建立一个聚簇索引。

Create Cluster Index Stusname On Student(Sname);

  • 在最经常查询的列上建立聚簇索引以提高查询效率
  • 一个基本表上最多只能建立一个聚簇索引
  • 经常更新的列不宜建立聚簇索引

写的很晚了,晚安!

标签:删除,Create,模式,索引,3.3,Student,Table,数据库系统,概论
From: https://blog.csdn.net/m0_74064456/article/details/137061656

相关文章

  • 密码算法概论
    基本概念什么是密码学?简单来说,密码学就是研究编制密码和破译密码的技术科学例题:密码学的三个阶段古代到1949年:具有艺术性的科学1949到1975年:IBM制定了加密标准DES1976至今:1976年开创了公钥密码学,1978年公布了RSA密码体制,1991年发布了邮件加密软件PGP,2000年AES取代DE......
  • 2024.3.31
    2024.3.31【人间骄阳刚好,风吹过树梢,彼时他们正当年少——某某】Sunday二月二十二<BGM=那年·年少-宋宇宁><theme=oi-"search">来看道典题P1763埃及分数附本体链接//2024.3.31//bywhite_ice#include<bits/stdc++.h>usingnamespacestd;#defineitnlongl......
  • q1-投资理财-2024.3.31
    q1-投资理财-2024.3.31​ 接上回,持有的徐工机械,一边下跌一边加仓,截止到5.86清仓想全仓做t,等第二天下跌下来再买入,没想到直接高开6个点,望尘莫及,亏死。​ 盈利的基本不去动了,亏损的等以后看看能不能想办法搞回来,传智资金到12-13左右就资金一直在流出,这玩应,我发现资金流入的很有......
  • 2024.3.31补题
    SMU2024spring天梯赛2(补题)https://pintia.cn/problem-sets/1772539187410104320/exam/overview7-10红色警报错误:①没写②用的unordered_map<>判断的联通条件。只要有城市和它相连就判它在城市群里,只对了样例。。。③不会深搜。。。#include<bits/stdc++.h>using......
  • 3.31
    所花时间:5小时代码量:154博客篇:1地铁起点到终点的最短路径查询:使用广度优先遍历,当要访问该站点时先储存在队列,最后出队形式访问每次访问传入数据:name:站点名;now:之前访问的站点字符串总和;nowline:当前站点的线路;ed:要到达的站点名称;i:当前经过站数以及字符串的数组下标;s:当前......
  • 3.30
    所花时间:3小时代码量:309博客篇:1使用自定义表格查询示例,总结统计:packagecom.example.studyapplication;importandroid.graphics.Color;importandroid.os.Bundle;importandroid.util.Log;importandroid.view.LayoutInflater;importandroid.view.View;importandr......
  • 3.31 联考
    3.31补题A\(5pts\)\(n=2\)时,\(\fracn2=1\),即为nim游戏。\(30pts\)对于\((a_1,a_2,a_3,a_4,a_5,a_6)\)这样的六元组,至多有\(10^6\)个。记忆化搜索他们的SG值即可。可能需要若干剪枝,因为复杂度其实是\(10^6\times6^3\)的。\(100pts\)首先观察样例2,合理猜测......
  • 3.25-3.31
    天梯赛2:7-12这是二叉搜索树吗?在满足题意的前提下从前后分别往中间走模拟二叉树的建立即可。///l、//(゚、。7//l、~ヽ//じしf_,)ノ//不要放弃!猫猫会为你加油!#include<bits/stdc++.h>#defineendl'\n'#defineintlonglongusingnamespacestd;constint......
  • SMU Winter 2024 div2 ptlks的周报Week 7(3.25-3.31)
    哈夫曼编码对出现频率大的字符赋予较短的编码,对出现频率小的字符赋予较长的编码。哈夫曼树的建树过程为,每次选取最小和次小的根节点,将它们之和作为它们的根节点,左子节点为小点,右子节点为次小点,直至仅剩一棵树。一棵哈夫曼树,左子树为0,右子树为1,以根节点到叶子结点的路径作为每个叶......
  • 3.30蚂蚁笔试
    SQL题还是不太熟牛客平台,不允许把在select语句中定义的as别名直接在select语句中用怎样制作临时表,with的用法date——format和date-add不太熟有返回值的都应该返回,否则不能通过编译求素数i*i的边界条件应该=x高精度加法  1.要注意数组永远让打的+小的数组  2.如果最......