1、数据库中一般包含下列对象

  表、约束、索引、触发器、序列、视图;

  可以使用图形用户界面或通过显式执行语句来创建这些数据库对象。用于创建这些数据库对象的语句称为“数据定义语言”(DDL),它们通常以关键字 CREATE 或 ALTER 作为前缀。

  了解每个数据库对象提供的特征和功能很重要,这有助于设计一个好的数据库,该数据库不仅要满足当前业务的数据存储需求,同时还应保持足够的灵活性,以便能随着时间的推移进行扩充和增长。

  (资料源于https://www.ibm.com/support/knowledgecenter/zh/SSEPGG_9.5.0/com.ibm.db2.luw.admin.dbobj.doc/doc/c0023321.html,数据库是DB2,不同的数据库有不同)

  2、表

  表是数据库管理器维护的逻辑结构。表由列和行组成。

  3、约束——用于优化的规则

  在任何业务中,数据通常必须符合特定限制或规则。例如,职员编号必须是 唯一的。数据库管理器提供了约束作为强制实施这种规则的方法。

  通常,数据库会提供以下类型的约束:

  • NOT NULL 约束:非空约束防止在列中输入空值。

  在排序时NULL值会出现在增序排序的首位,出现在减序排序的末位。

  NULL意味着“not having a value”:

  • DEFAULT约束:默认约束,赋予某字段默认值。如果该字段没有插入数据,则其值为默认值。
  • UNIQUE KEY:唯一约束:设置字段的值是唯一的,允许为空,但只能有一个空值。
  • PRIMARY KEY:主键约束,设置字段为表的主键,作为该表的唯一标识。
  • FOREIGN KEY:外键约束,也称为引用约束或引用完整性约束。在两表之间建立关系,指定引用主表的哪一字段。InnoDB支持外键,MyISAM不支持。还有,作为外键的字段要求在主表中是主键(单字段主键)。
  • AUTO_INCREMENT:设置为自增字段,且每条默认自增1;通常用于设置主键,且为整数类型;可设置初始值和步长。
  • (表)检查约束:指定表中每行的一列或多列中允许使用的值。指定检查约束是通过限制格式的搜索条件完成的。
  • 参考约束:参考约束是一种约束属性,SQL 编译器可使用它来改善对数据的访问。参考约束不是由数据库管理器强制执行的,并且不用于数据的附加验证;它们用来提高查询性能。

  4、索引

  索引是一个或多个键的集合,每个键指向表中的一行。SQL优化器自动选择最有效率的访问表中数据的方法。当确定最快速的数据访问路径时,优化器会将索引考虑在内。

  5、触发器

  触发器定义一组操作,在响应对指定表的插入、更新或删除操作时将执行这些操作。执行这样的 SQL 操作时,触发器被认为是已激活的。触发器是可选的,并且可使用 CREATE TRIGGER 语句定义。

  6、序列

  序列是一个数据库对象,它允许自动生成值,例如,支票号。

  序列特别适合于生成唯一键值这一任务。应用程序可以使用序列来避免用于跟踪数字的列值所引起的可能的并行性和性能问题。

  与在数据库外部创建的数字相比,序列的优点在于数据库服务器将跟踪生成的数字。崩溃和重新启动不会导致生成重复的数字。

  7、视图

  视图是高效率的数据呈示方法(无需维护数据)。视图不是实际的表,不需要永久存储器。“虚拟表”是即创建即使用的。

MySQL中的数据库对象的更多相关文章

  1. 实验十--- MySQL过程式数据库对象

    实验十 MySQL过程式数据库对象 一.  实验内容: 1. 存储过程的创建和调用 2. 存储函数的创建和调用 3. 触发器的创建和触发 4. 事件的创建和修改 一.  实验项目:员工管理数据库 用于 ...

  2. C# 利用mysql.data 在mysql中创建数据库及数据表

    C# 利用mysql.data 在mysql中创建数据库及数据表 using System; using System.Collections.Generic; using System.Linq; ...

  3. mysql中影响数据库性能的因素讲解

    mysql中影响数据库性能的因素讲解 在本篇文章中我们给大家讲述了mysql中影响性能的因素以及相关知识点内容,有兴趣的朋友参考下 关于数据库性能的故事 面试时多多少少会讲到数据库上的事情,“你对数据 ...

  4. MySQL 中的数据库名称、数据表名称、字段名称

    如何查询Oracle,Sql Server,MySQL 中的数据库名称.数据表名称.字段名称 分类: Database2012-09-24 22:16 7034人阅读 评论(0) 收藏 举报 数据库s ...

  5. 在MySQL中保存Java对象

    需要在MySQL中保存Java对象. 说明: 对象必须实现序列化 MySQL中对应字段设置为blob 将Java对象序列化为byte[] public static byte[] obj2byte(O ...

  6. 查询MySQL中某个数据库中有多少张表

    SELECT COUNT(*) TABLES, table_schema FROM information_schema.TABLES   WHERE table_schema = '数据库' GRO ...

  7. MySQL中information_schema数据库的内容

    大家在安装或使用MYSQL时,会发现除了自己安装的数据库以外,还有一个information_schema数据库. information_schema数据库是做什么用的呢,使用WordPress博客 ...

  8. 关于RDS for mysql中导入数据库set global event_scheduler =1 需要更多超级权限

    关于RDS中导入数据库set global event_scheduler =1 需要更多超级权限 报错提示 其实这个意思是 让mysql自动启动 计划任务 如果在 命令行下 查询  SHOW VAR ...

  9. 【MYSQL笔记3】MYSQL过程式数据库对象之存储过程的调用、删除和修改

    mysql从5.0版本开始支持存储过程.存储函数.触发器和事件功能的实现. 我们以一本书中的例题为例:创建xscj数据库的存储过程,判断两个输入的参数哪个更大.并调用该存储过程. (1)调用 首先,创 ...

随机推荐

  1. Bootstrap4从入门到精通视频教程

    一.布局 0.课件1.Bootstrap介绍_栅格系统2.禁用响应式_响应式分界点 二.内容 3.排版_代码4.图片_图片框5.表格 三.公共样式 6.边框_浮动7.颜色_Display显示属性8.文 ...

  2. Qt之CMake和MinGW编译OpenCV

    这里编译的是最新版OpenCV3.4.3,编译过程比较曲折,大部分编译错误都可以查得到解决方法,也遇到了Google无果的错误,好在最后还是解决了,特此记录. 编译环境 win10-64bit Qt5 ...

  3. linux中安装python

    1.首先切换目录 大型的软件一定要安装在/ opt中  规范 cd /opt 2.下载python3的源码 wget https://www.python.org/ftp/python/3.6.2/P ...

  4. 前端三大框架(Angular Vue React)

    前端,HTML(超文本标记语言),CSS(层叠样式表)和JavaScript(脚本语言) HTML,通常说的h5,其实按标准来说,HTML4的后续版本不带编号了,并保证向前的兼容性 CSS的版本3,增 ...

  5. JVM源码分析之JDK8下的僵尸(无法回收)类加载器[z]

    [z]http://lovestblog.cn/blog/2016/04/24/classloader-unload/ 概述 这篇文章基于最近在排查的一个问题,花了我们团队不少时间来排查这个问题,现象 ...

  6. 一百零七:CMS系统之权限和角色模型定义

    模型与权限关系映射表 class CMSPersmission: """ 权限管理映射 """ # 255的二进制方式来表示 1111 11 ...

  7. HashMap 怎么 hash?又如何 map?

    HashMap 是 Java 中 Map 的一个实现类,它是一个双列结构(数据+链表),这样的结构使得它的查询和插入效率都很高.HashMap 允许 null 键和值,它的键唯一,元素的存储无序,并且 ...

  8. Spring-Kafka —— KafkaListener手动启动和停止

    一.KafkaListener消费 /** * 手动提交监听. * * @param record 消息记录 * @param ack 确认实例 */ @Override @KafkaListener ...

  9. React Native创建项目等待时间长解决

    1. 初始化工程 在终端输入命令 :react-native init AwesomeProject 从命令上看,看起来是初始化一个工程,于是, 1分钟...... 10分钟...... 1小时... ...

  10. Spring Boot Mybatis简单使用

    Spring Boot Mybatis简单使用 步骤说明 build.gradle:依赖添加 application.properties:配置添加 代码编写 测试 build.gradle:依赖添加 ...