精华内容
下载资源
问答
  • 2021-11-25 20:00:54

    一、选择题
    1.SQL Server 数据库是由文件组成的。下列关于数据库所包含的文件的说法中,正确的是?
    A.一个数据库可包含多个主要数据文件和多个日志文件
    B.一个数据库只能包含一个主要文件和一个日志文件
    C.一个数据库可包含多个次要数据文件,但只能包含一个日志文件
    D.一个数据库可包含多个次要数据文件和多个日志文件

    2.在SQL Server 中创建用户数据库,其主要数据文件的大小必须大于?
    A. master数据库的大小
    B. model数据库的大小
    C. msdb数据库的大小
    D. 3Mb

    3.在SQL Server 系统数据库中,存放用户数据库公共信息的是
    A. maste B.model C. msdb D. tempdb

    4.在SQL Server 中创建用户数据库,实际就是定义数据库所包含的文件以及文件的属性。下列不属于数据库文件属性的是?
    A.初始大小
    B.物理文件名
    C.文件结构
    D.最大大小

    5.下列不属于创建分区表步骤的是?
    A.创建分区依据列
    B.创建分区函数
    C.创建分区方案
    D.使用分区方案创建表

    二、填空题
    1.SQL Server 数据库中数据的存储分配单位是 M.
    2.SQL Server 中一个数据页的大小是 8 KB
    3.SQL Server 数据库中主要数据文件的推荐扩展名是 .mdf ,日志文件 的推荐扩展名是 .ldf
    4.SQL Server 一个数据库中可以包含 个次要数据文件。
    5.如果某个数据表包含20000行数据,每行的大小是5000B ,则此数据表需要的存储空间大约是 16MB
    6.用户创建数据库时,其主要数据文件的初始大小必须不小于model 系统数据库大小。

    更多相关内容
  • PAGE PAGE 1 [模拟] 数据库工程师数据库对象安全管理 选择题 第1题 存储过程是存储在数据库中的代码具有很多优点下列陈述中不属于存储过程优点的是_ A.可通过预编译机制提高数据操作的性能 B.可方便地按用户视图表达...
  • PAGE PAGE 1 [模拟] 数据库工程师数据库对象安全管理备份和恢复数据库 选择题 第1题 如果要删除user数据库中的user1表可以使用下列哪个命令? A.ALERT TABLE user1 B.DROP TABLE user1 C.DELETE TABLE user1 D....
  • 所有数据库对象名称必须使用小写字母并用下划线分割所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来)数据库对象的命名要能做到见名识意,并且最后不要超过32个...
  • 数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B+树。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种...

    说白了,索引问题就是一个查找问题。。。

    数据库索引

    ,是数据库管理系统中

    一个排序的数据结构

    ,以协助快速查询、更新数据库表中数据。

    索引的实现通常使用B树及其变种B+树

    在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。

    为表设置索引要付出代价的:

    一是增加了数据库的存储空间

    二是在插入和修改数据时要花费较多的时间(因为索引也要随之变动)

    2ccc740411a2f12de0e1bfd4aa821b3f.png

    上图展示了一种可能的索引方式。左边是数据表,一共有两列七条记录,最左边的是数据记录的物理地址(注意逻辑上相邻的记录在磁盘上也并不是一定物理相邻的)。为了加快Col2的查找,可以维护一个右边所示的二叉查找树,每个节点分别包含索引键值和一个指向对应数据记录物理地址的指针,这样就可以运用二叉查找在O(log

    2

    n)的复杂度内获取到相应数据。

    创建索引可以大大提高系统的性能。

    第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。

    第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。

    第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。

    第四,在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。

    第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。

    也许会有人要问:增加索引有如此多的优点,为什么不对表中的每一个列创建一个索引呢?因为,增加索引也有许多不利的方面。

    第一,创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。

    第二,索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。

    第三,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。

    索引是建立在数据库表中的某些列的上面。在创建索引的时候,应该考虑在哪些列上可以创建索引,在哪些列上不能创建索引。

    一般来说,应该在这些列上创建索引:

    在经常需要搜索的列上,可以加快搜索的速度;在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构;在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度;在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的;在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间;在经常使用在WHERE子句中的列上面创建索引,加快条件的判断速度。

    同样,对于有些列不应该创建索引。

    一般来说,不应该创建索引的的这些列具有下列特点:

    第一,对于那些在查询中很少使用或者参考的列不应该创建索引。这是因为,既然这些列很少使用到,因此有索引或者无索引,并不能提高查询速度。相反,由于增加了索引,反而降低了系统的维护速度和增大了空间需求。

    第二,对于那些只有很少数据值的列也不应该增加索引。这是因为,由于这些列的取值很少,例如人事表的性别列,在查询的结果中,结果集的数据行占了表中数据行的很大比例,即需要在表中搜索的数据行的比例很大。增加索引,并不能明显加快检索速度。

    第三,对于那些定义为text, image和bit数据类型的列不应该增加索引。这是因为,这些列的数据量要么相当大,要么取值很少。

    第四,当修改性能远远大于检索性能时,不应该创建索引。这是因为,

    修改性能和检索性能是互相矛盾的

    。当增加索引时,会提高检索性能,但是会降低修改性能。当减少索引时,会提高修改性能,降低检索性能。因此,当修改性能远远大于检索性能时,不应该创建索引。

    根据数据库的功能,可以在数据库设计器中创建三种索引:

    唯一索引、主键索引和聚集索引

    唯一索引

    唯一索引是不允许其中任何两行具有相同索引值的索引。

    当现有数据中存在重复的键值时,大多数数据库不允许将新创建的唯一索引与表一起保存。数据库还可能防止添加将在表中创建重复键值的新数据。例如,如果在employee表中职员的姓(lname)上创建了唯一索引,则任何两个员工都不能同姓。

    主键索引

    数据库表经常有一列或列组合,其值唯一标识表中的每一行。该列称为表的主键。

    在数据库关系图中为表定义主键将自动创建主键索引,主键索引是唯一索引的特定类型。该索引要求主键中的每个值都唯一。当在查询中使用主键索引时,它还允许对数据的快速访问。

    聚集索引

    在聚集索引中,表中行的物理顺序与键值的逻辑(索引)顺序相同。一个表只能包含一个聚集索引。

    如果某索引不是聚集索引,则表中行的物理顺序与键值的逻辑顺序不匹配。与非聚集索引相比,聚集索引通常提供更快的数据访问速度。

    局部性原理与磁盘预读

    由于存储介质的特性,磁盘本身存取就比主存慢很多,再加上机械运动耗费,磁盘的存取速度往往是主存的几百分分之一,因此为了提高效率,要尽量减少磁盘I/O。为了达到这个目的,磁盘往往不是严格按需读取,而是每次都会预读,即使只需要一个字节,磁盘也会从这个位置开始,顺序向后读取一定长度的数据放入内存。这样做的理论依据是计算机科学中著名的

    局部性原理

    当一个数据被用到时,其附近的数据也通常会马上被使用。程序运行期间所需要的数据通常比较集中。

    由于磁盘顺序读取的效率很高(不需要寻道时间,只需很少的旋转时间),因此对于具有局部性的程序来说,预读可以提高I/O效率。

    预读的长度一般为页(page)的整倍数。页是计算机管理存储器的逻辑块,硬件及操作系统往往将主存和磁盘存储区分割为连续的大小相等的块,每个存储块称为一页(在许多操作系统中,页得大小通常为4k),主存和磁盘以页为单位交换数据。当程序要读取的数据不在主存中时,会触发一个缺页异常,此时系统会向磁盘发出读盘信号,磁盘会找到数据的起始位置并向后连续读取一页或几页载入内存中,然后异常返回,程序继续运行。

    B-/+Tree索引的性能分析

    到这里终于可以分析B-/+Tree索引的性能了。

    上文说过一般使用磁盘I/O次数评价索引结构的优劣。先从B-Tree分析,根据B-Tree的定义,可知检索一次最多需要访问h个节点。数据库系统的设计者巧妙利用了磁盘预读原理,将一个节点的大小设为等于一个页,这样每个节点只需要一次I/O就可以完全载入。为了达到这个目的,在实际实现B-Tree还需要使用如下技巧:

    每次新建节点时,直接申请一个页的空间,这样就保证一个节点物理上也存储在一个页里,加之计算机存储分配都是按页对齐的,就实现了一个node只需一次I/O。

    B-Tree中一次检索最多需要h-1次I/O(根节点常驻内存),渐进复杂度为O(h)=O(log

    d

    N)。

    一般实际应用中,出度d是非常大的数字,通常超过100,因此h非常小(通常不超过3)。

    而红黑树这种结构,h明显要深的多。由于逻辑上很近的节点(父子)物理上可能很远,无法利用局部性,所以红黑树的I/O渐进复杂度也为O(h),效率明显比B-Tree差很多。

    综上所述,用B-Tree作为索引结构效率是非常高的。

    应该花时间学习B-树和B+树数据结构

    =============================================================================================================

    1)B树

    B树中每个节点包含了键值和键值对于的数据对象存放地址指针,所以成功搜索一个对象可以不用到达树的叶节点。

    成功搜索包括节点内搜索和沿某一路径的搜索,成功搜索时间取决于关键码所在的层次以及节点内关键码的数量。

    在B树中查找给定关键字的方法是:首先把根结点取来,在根结点所包含的关键字K1,…,kj查找给定的关键字(可用顺序查找或二分查找法),若找到等于给定值的关键字,则查找成功;否则,一定可以确定要查的关键字在某个Ki或Ki+1之间,于是取Pi所指的下一层索引节点块继续查找,直到找到,或指针Pi为空时查找失败。

    2)B+树

    B+树非叶节点中存放的关键码并不指示数据对象的地址指针,非也节点只是索引部分。所有的叶节点在同一层上,包含了全部关键码和相应数据对象的存放地址指针,且叶节点按关键码从小到大顺序链接。如果实际数据对象按加入的顺序存储而不是按关键码次数存储的话,叶节点的索引必须是稠密索引,若实际数据存储按关键码次序存放的话,叶节点索引时稀疏索引。

    B+树有2个头指针,一个是树的根节点,一个是最小关键码的叶节点。

    所以B+树有两种搜索方法:

    一种是按叶节点自己拉起的链表顺序搜索。

    一种是从根节点开始搜索,和B树类似,不过如果非叶节点的关键码等于给定值,搜索并不停止,而是继续沿右指针,一直查到叶节点上的关键码。所以无论搜索是否成功,都将走完树的所有层。

    B+ 树中,数据对象的插入和删除仅在叶节点上进行。

    这两种处理索引的数据结构的不同之处:

    a,B树中同一键值不会出现多次,并且它有可能出现在叶结点,也有可能出现在非叶结点中。而B+树的键一定会出现在叶结点中,并且有可能在非叶结点中也有可能重复出现,以维持B+树的平衡。

    b,因为B树键位置不定,且在整个树结构中只出现一次,虽然可以节省存储空间,但使得在插入、删除操作复杂度明显增加。B+树相比来说是一种较好的折中。

    c,B树的查询效率与键在树中的位置有关,最大时间复杂度与B+树相同(在叶结点的时候),最小时间复杂度为1(在根结点的时候)。而B+树的时候复杂度对某建成的树是固定的。

    展开全文
  • 表示修改一个数据库对象的SQL关键字是:ALTER。在数据库中,可以使用“ALTER TABLE”语句来改变原有表的结构,可以在已有的表中添加、删除或修改列。本教程操作环境:windows7系统、mysql8版、Dell G3电脑。表示修改...

    表示修改一个数据库对象的SQL关键字是:ALTER。在数据库中,可以使用“ALTER TABLE”语句来改变原有表的结构,可以在已有的表中添加、删除或修改列。

    846d08a7fd0c7f2956665fadd8e52764.png

    本教程操作环境:windows7系统、mysql8版、Dell G3电脑。

    表示修改一个数据库对象的SQL关键字是:alte。

    SQL ALTER DATABASE 语句

    在 MySQL 中,可以使用 ALTER DATABASE 来修改已经被创建或者存在的数据库的相关参数。修改数据库的语法格式为:ALTER DATABASE [数据库名] {

    [ DEFAULT ] CHARACTER SET |

    [ DEFAULT ] COLLATE }

    语法说明如下:ALTER DATABASE 用于更改数据库的全局特性。

    使用 ALTER DATABASE 需要获得数据库 ALTER 权限。

    数据库名称可以忽略,此时语句对应于默认数据库。

    CHARACTER SET 子句用于更改默认的数据库字符集。

    示例:

    查看 test_db 数据库的定义声明的执行结果mysql> SHOW CREATE DATABASE test_db;

    +----------+--------------------------------------------------------+

    | Database | Create Database |

    +----------+--------------------------------------------------------+

    | test_db | CREATE DATABASE `test_db` /*!40100 DEFAULT CHARACTER SET utf8 */|

    +----------+--------------------------------------------------------+

    1 row in set (0.05 sec)

    使用命令行工具将数据库 test_db 的指定字符集修改为 gb2312,默认校对规则修改为 gb2312_unicode_cimysql> ALTER DATABASE test_db

    -> DEFAULT CHARACTER SET gb2312

    -> DEFAULT COLLATE gb2312_chinese_ci;

    mysql> SHOW CREATE DATABASE test_db;

    +----------+--------------------------------------------------------+

    | Database | ALTER Database |

    +----------+--------------------------------------------------------+

    | test_db | ALTER DATABASE `test_db` /*!40100 DEFAULT CHARACTER SET gb2312 */|

    +----------+--------------------------------------------------------+

    1 row in set (0.00 sec)

    SQL ALTER TABLE 语句

    SQL ALTER TABLE 语句用于在已有的表中添加、删除或修改列。使用 ALTER TABLE 语句来改变原有表的结构,例如增加或删减列、更改原有列类型、重新命名列或表等。

    其语法格式如下:ALTER TABLE [修改选项]

    修改选项的语法格式如下:{ ADD COLUMN

    | CHANGE COLUMN

    | ALTER COLUMN { SET DEFAULT | DROP DEFAULT }

    | MODIFY COLUMN

    | DROP COLUMN

    | RENAME TO

    | CHARACTER SET

    | COLLATE }

    修改表名

    MySQL 通过 ALTER TABLE 语句来实现表名的修改,语法规则如下:ALTER TABLE RENAME [TO] ;

    其中,TO 为可选参数,使用与否均不影响结果。

    修改表字符集

    MySQL 通过 ALTER TABLE 语句来实现表字符集的修改,语法规则如下:ALTER TABLE 表名 [DEFAULT] CHARACTER SET [DEFAULT] COLLATE ;

    其中,DEFAULT 为可选参数,使用与否均不影响结果。

    修改字段名称

    MySQL 中修改表字段名的语法规则如下:ALTER TABLE CHANGE ;

    其中:旧字段名:指修改前的字段名;

    新字段名:指修改后的字段名;

    新数据类型:指修改后的数据类型,如果不需要修改字段的数据类型,可以将新数据类型设置成与原来一样,但数据类型不能为空。

    修改字段数据类型

    修改字段的数据类型就是把字段的数据类型转换成另一种数据类型。在 MySQL 中修改字段数据类型的语法规则如下:ALTER TABLE MODIFY

    其中:表名:指要修改数据类型的字段所在表的名称;

    字段名:指需要修改的字段;

    数据类型:指修改后字段的新数据类型。

    删除字段

    删除字段是将数据表中的某个字段从表中移除,语法格式如下:ALTER TABLE DROP ;

    其中,“字段名”指需要从表中删除的字段的名称。

    添加字段

    1、在末尾添加字段

    一个完整的字段包括字段名、数据类型和约束条件。MySQL 添加字段的语法格式如下:ALTER TABLE ADD [约束条件];

    对语法格式的说明如下: 为数据表的名字;

    为所要添加的字段的名字;

    为所要添加的字段能存储数据的数据类型;

    [约束条件] 是可选的,用来对添加的字段进行约束。

    这种语法格式默认在表的最后位置(最后一列的后面)添加新字段。

    2、在开头添加字段

    MySQL 默认在表的最后位置添加新字段,如果希望在开头位置(第一列的前面)添加新字段,那么可以使用 FIRST 关键字,语法格式如下:ALTER TABLE ADD [约束条件] FIRST;

    FIRST 关键字一般放在语句的末尾。

    3、在中间位置添加字段

    MySQL 除了允许在表的开头位置和末尾位置添加字段外,还允许在中间位置(指定的字段之后)添加字段,此时需要使用 AFTER 关键字,语法格式如下:ALTER TABLE ADD [约束条件] AFTER ;

    AFTER 的作用是将新字段添加到某个已有字段后面。

    注意,只能在某个已有字段的后面添加新字段,不能在它的前面添加新字段。

    更多计算机编程相关知识,请访问:编程视频!!

    展开全文
  • Oracle中常见的数据库对象

    千次阅读 2017-06-18 13:38:54
    常见的数据库对象包括以下几种: table 表 基本的数据存储集合,由行和列组成。 view 视图 从表中抽出的逻辑上相关的数据集合 sequence 序列 提供有规律的数值。 index 索引 提高查询的效率 synonym 同义词 给...

    常见的数据库对象包括以下几种:
    table 表 基本的数据存储集合,由行和列组成。
    view 视图 从表中抽出的逻辑上相关的数据集合
    sequence 序列 提供有规律的数值。
    index 索引 提高查询的效率
    synonym 同义词 给对象起别名

    table 表前面已经做过介绍,这里主要介绍余下的几种。


    view 视图

    视图是一种虚表.
    视图建立在已有表的基础上, 视图赖以建立的这些表称为基表。
    向视图提供数据内容的语句为 SELECT 语句, 可以将视图理解为存储起来的 SELECT 语句.
    视图向用户提供基表数据的另一种表现形式

    使用下面的语法格式创建视图

    CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view
      [(alias[, alias]...)]
     AS subquery
    [WITH CHECK OPTION [CONSTRAINT constraint]]
    [WITH READ ONLY [CONSTRAINT constraint]];
    
    

    FORCE: 子查询不一定存在
    NOFORCE: 子查询存在(默认)
    WITH READ ONLY:只能做查询操作
    子查询可以是复杂的 SELECT 语句

    视图的优点:
    限制数据访问
    简化复杂查询
    提供数据的相互独立
    同样的数据,可以有不同的显示方式

    PS.视图不能提高性能, 不建议通过视图对表进行修改

    简单视图和复杂视图:
    简单视图的表的数量为一个,没有函数和分组,可以进行DML操作。
    复杂视图的表的数量为一个或多个,可以有函数和分组,有时候可以进行DML操作。

    创建视图

    CREATE VIEW 	empview
    AS SELECT  employee_id, last_name, salary
    FROM    employees
    WHERE   department_id = 10;
    

    使用CREATE OR REPLACE VIEW 子句修改视图

    CREATE OR REPLACE VIEW empview
    (id_number, name, sal, department_id)
    AS SELECT  employee_id, first_name || ' ' || last_name, salary, department_id
    FROM  employees
    WHERE department_id = 10;
    
    

    CREATE VIEW 子句中各列的别名应和子查询中各列相对应

    视图中使用DML的规定:
    可以在简单视图中执行 DML 操作
    当视图定义中包含以下元素之一时不能使用delete:
    组函数
    GROUP BY 子句
    DISTINCT 关键字
    ROWNUM 伪列

    当视图定义中包含以下元素之一时不能使用update :
    组函数
    GROUP BY子句
    DISTINCT 关键字
    ROWNUM 伪列
    列的定义为表达式

    当视图定义中包含以下元素之一时不能使用insert :
    组函数
    GROUP BY 子句
    DISTINCT 关键字
    ROWNUM 伪列
    列的定义为表达式
    表中非空的列在视图定义中未包括

    屏蔽 DML 操作:
    可以使用 WITH READ ONLY 选项屏蔽对视图的DML 操作
    任何 DML 操作都会返回一个Oracle server 错误

    CREATE OR REPLACE VIEW empview2
    (employee_number, employee_name, job_title)
    AS SELECT	employee_id, last_name, job_id
    FROM     employees
    WHERE    department_id = 10
    WITH READ ONLY;
    
    

    删除视图:
    删除视图只是删除视图的定义,并不会删除基表
    的数据

    drop view empview2;
    

    sequence 序列

    序列: 可供多个用户用来产生唯一数值的数据库对象
    自动提供唯一的数值
    共享对象
    主要用于提供主键值
    将序列值装入内存可以提高访问效率

    定义序列:

    CREATE SEQUENCE sequence
           [INCREMENT BY n]
           [START WITH n]
           [{MAXVALUE n | NOMAXVALUE}]
           [{MINVALUE n | NOMINVALUE}]
           [{CYCLE | NOCYCLE}]
           [{CACHE n | NOCACHE}];
    
    

    创建序列:
    创建序列 DEPT_DEPTID_SEQ为表 DEPARTMENTS 提供主键
    不使用 CYCLE 选项

    CREATE SEQUENCE dept_deptid_seq
                    INCREMENT BY 10
                    START WITH 120
                    MAXVALUE 9999
                    NOCACHE
                    NOCYCLE;
    
    

    查询序列
    查询数据字典视图 USER_SEQUENCES 获取序列定义信息

    SELECT	sequence_name, min_value, max_value, 
    	increment_by, last_number
    FROM	user_sequences;
    
    

    如果指定NOCACHE 选项,则列LAST_NUMBER 显示序列中下一个有效的值

    NEXTVAL 和 CURRVAL 伪列:
    NEXTVAL 返回序列中下一个有效的值,任何用户都可以引用
    CURRVAL 中存放序列的当前值
    NEXTVAL 应在 CURRVAL 之前指定 ,二者应同时有效

    使用序列
    将序列值装入内存可提高访问效率
    序列在下列情况下出现裂缝:
    回滚
    系统异常
    多个表同时使用同一序列
    如果不将序列的值装入内存(NOCACHE), 可使用表 USER_SEQUENCES 查看序列当前的有效值

    修改序列
    修改序列的增量, 最大值, 最小值, 循环选项, 或是否装入内存

    ALTER SEQUENCE dept_deptid_seq
                   INCREMENT BY 20
                   MAXVALUE 999999
                   NOCACHE
                   NOCYCLE;
    
    

    修改序列的注意事项:
    必须是序列的拥有者或对序列有 ALTER 权限
    只有将来的序列值会被改变
    改变序列的初始值只能通过删除序列之后重建序列的方法实现

    删除序列
    使用DROP SEQUENCE 语句删除序列
    删除之后,序列不能再次被引用

    DROP SEQUENCE dept_deptid_seq;
    
    

    index 索引

    索引:
    一种独立于表的模式对象, 可以存储在与表不同的磁盘或表空间中
    索引被删除或损坏, 不会对表产生影响, 其影响的只是查询的速度
    索引一旦建立, Oracle 管理系统会对其进行自动维护, 而且由 Oracle 管理系统决定何时使用索引. 用户不用在查询语句中指定使用哪个索引
    在删除一个表时, 所有基于该表的索引会自动被删除
    通过指针加速 Oracle 服务器的查询速度
    通过快速定位数据的方法,减少磁盘 I/O

    创建索引
    自动创建: 在定义 PRIMARY KEY 或 UNIQUE 约束后系统自动在相应的列上创建唯一性索引
    手动创建: 用户可以在其它列上创建非唯一的索引,以加速查询

    在一个或多个列上创建索引

    语法
    CREATE INDEX index
    ON table (column[, column]...);
    
    示例
    create index myindex
    on emp(deptno);
    
    

    以下情况可以创建索引:
    列中数据值分布范围很广
    列经常在 WHERE 子句或连接条件中出现
    表经常被访问而且数据量很大 ,访问的数据大概占数据总量的2%到4%

    下列情况不要创建索引:
    表很小
    列不经常作为连接条件或出现在WHERE子句中
    查询的数据大于2%到4%
    表经常更新

    查询索引
    可以使用数据字典视图 USER_INDEXES 和 USER_IND_COLUMNS 查看索引的信息

    SELECT	ic.index_name, ic.column_name,
    	ic.column_position col_pos,ix.uniqueness
    FROM  	user_indexes ix, user_ind_columns ic
    WHERE	ic.index_name = ix.index_name
    AND	ic.table_name = 'EMP';
    
    

    删除索引
    使用DROP INDEX 命令删除索引

    DROP INDEX indexname;
    
    

    只有索引的拥有者或拥有DROP ANY INDEX权限的用户才可以删除索引


    synonym 同义词

    使用同义词访问相同的对象:
    方便访问其它用户的对象
    缩短对象名字的长度

    CREATE [PUBLIC] SYNONYM synonym
    FOR    object;
    

    创建和删除同义词

    CREATE SYNONYM  d_sum
    FOR  dept_sum;
    
    DROP SYNONYM d_sum;
    
    

    Coding Diary

    展开全文
  • 数据库应用技术模拟试题 1 一单项选择题每个题只有一个答案是正确的请将正确的答案填写到括号内 1下列功能中不属于数据库管理系统功能的是 B 数据库对象定义 数据库文件读写 C数据查询 数据更新 2下列类型中属于定点...
  • Oracle-Oracle数据库模式对象管理

    千次阅读 2019-06-21 21:46:58
    Oracle数据库模式对象管理 下面通过一些简单的例子来熟悉一下在Oracle数据库中: 表的创建与管理。 索引的创建与管理。 视图的创建与管理。 序列的创建与应用。 例子来源于:《Oracle数据库基础教程(第2版)》...
  • Oracle数据库模式对象管理

    千次阅读 2019-10-11 22:29:08
    实验四 Oracle数据库模式对象管理 一、预习报告 一、 实验目的 1) 掌握表的创建与管理。 2) 掌握索引的创建与管理。 3) 掌握视图的创建与管理。 4) 掌握序列的创建与管理。 5) 了解簇、同义词、数据库链接等...
  • 日常数据库练习题(每天进步一点点系列)

    万次阅读 多人点赞 2021-06-15 17:46:39
    1、下列四项中,不属于数据库系统的特点的是( ) 正确答案: C 你的答案: C (正确) 数据结构化 数据由DBMS统一管理和控制 数据冗余度大 数据独立性高 题解: 1.数据结构化 2.数据的共享性高,冗余度低,易扩充 3....
  • 利用数据库连接池对象获取,常用的数据库连接池为C3P0、Druid C3P0使用步骤: 导入jar包 : c3p0-0.9.5.2.jar mchange-commons-java-0.2.12.jar mysql-connector-java-5.1.37-bin.jar ...
  • 对于数据库的连接语句,要检查其是否连接成功,可以使用下列代码来检测: if(MySQLi_connect_errno()) { echo'Error:could not connect to DB.Please try again later.' exit; } MySQL的max_connection
  • Connection对象也称为连接对象,用来创建一个与指定数据源的连接,包括Microsoft SQL server、Oracle以及能够为其指明一个OLEDB提供程序或一个ODBC驱动器的任何数据源。不同的.NET数据提供程序都有自已的连接类。...
  • 数据库运维【4】

    千次阅读 2022-03-08 13:52:11
    1.MySQL中基本操作权限中,下列属于数据层级操作权限的是 A.update B.alter C.create D.drop 2.在MySQL数据库服务器中,mysql数据库中的权限表user表中,限制账户资源列max_connections是限定 A.每小时内该用户向...
  • 关系数据库系统与面向对象数据库系统各自的优缺点 关系数据库系统的优点 a.灵活性和建库的简单性:目前在多数RDDMS产品中使用标准查询语言SQL,允许用户几乎毫无差别地从一个产品到另一个产品存取信息。 b....
  • 数据库系统是采用了数据库技术的计算机系统,数据库系统由数据库数据库管理系统、应用系统和(C ) 。A.系统分析员 B.程序员C.数据库管理员 D.操作员2.数据库(DB),数据库系统(DBS)和数据库管理系统(DBMS)之间的关系...
  • 创建数据库和表的SQL语句

    千次阅读 2021-01-21 18:11:05
    创建数据库DROP DATABASE库名; 删除数据库USE 库名;(1) 数据记录筛选:sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]" ORDER BY 用于对结果集进行排序sql="select * from 数据表 where ...
  • SQL Server笔记-删除数据库对象

    千次阅读 2019-09-20 11:10:12
    删除数据库对象 SQL Server 2008 若要删除在本教程中创建的所有对象,您只需删除数据库即可。但是,在本主题中,您将完成下列步骤执行与教程中每项操作...
  • 第七章 数据库及数据库对象

    万次阅读 热门讨论 2019-03-29 20:04:21
    第七章 数据库及数据库对象 SQL Server数据库分类 用户数据库 系统数据库,保存维护系统正常运行的信息 SQL Server系统数据库 master :记录实例的所有系统级信息(元数据,端点,连接服务器和系统配置),记录...
  • 1.把ER图转换成关系模型的过程,属于数据库设计中的2.在标准SQL中,建立数据库表结构的命令是3.下列叙述正确的是4.SQL的SELECT语句中,“HAVING条件表达式”用来筛选满足条件的5.数据库的并发操作可能带来的问题包括...
  • 1、安装oracle数据库过程中系统表空间是哪一个:( B ) A.sys B.system C.user D.myspace 2、系统中有权利启动和关闭数据库的用户是:( C )。 A.hr B.user C.system D.scott 3、在创建索引的时候,哪一类索引...
  • 数据库原理(一)- 数据库系统概述

    千次阅读 2020-05-18 13:54:09
    数据(data)是数据库中存储的基本对象,在计算机中的概念是广义的,描述事物的符号记录称为数据,比如你手机里的音乐、文档和图形都是数据。 数据的表现形式还不能完全表达其内容,需要经过一端解释,而数据的解释...
  • Oracle数据库试题.docx

    2022-06-16 18:31:54
    检查点进程(CKPT) 在Oracle中,一个用户拥有的所有数据库对象统称为(B)。 A.数据库 B.模式 C.表空间 D.实例 在Oracle中,有一个教师表teacher的结构如下: ID NUMBER(5) NAME VARCHAR2(25) EMAIL VARCHAR2...
  • 存储过程存储在数据库内,可独立执行或由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其它强大的编程功能。存储过程一旦创建,在服务器上即被编译,可以在需要时执行多次,有效的提高了执行效率...
  • 实验4 Oracle数据库模式对象管理

    千次阅读 多人点赞 2019-05-03 15:07:51
    一、实验目的: (1)掌握表的创建与管理。 (2) 掌握索引的创建与管理。 (3) 掌握视图的创建与管理。...2、按下列方式创建一个用户bs,并给该用户授权。 3、使用bs用户登录数据库,并进行下面...
  • 关系型数据库的核心单元是Nucleoid is an open source (Apache 2.0), a runtime environment that provides logical integrity in declarative programming, and at the same time, it stores declarative ...
  • 数据库笔记.docx

    2019-05-14 10:42:07
    数据库笔记.docx2017上半年 在设计软件的模块结构时,(26)不能改进设计质量。...CAP理论是NoSql理论的基础,下列性质不属于CAP的是(61)。 (61)A.分区容错性 B.原子性 C.可用性 D.一致性 【答案】B 【解析】 CAP理论
  • 数据库安全-数据库习题

    千次阅读 2021-11-29 22:13:13
    SQL Server是微软的数据库,只能用在Windows平台,不能跨平台 数据库的( ) 是指数据的正确性和相容性。 A. 安全性 B. 完整性 C. 并发控制 D. 恢复 正确答案: B 数据完整性是通过各种约束实现的,保证数据库中...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 111,606
精华内容 44,642
关键字:

下列属于数据库对象的是