数据库对象&用SQL定义数据库对象

133 阅读3分钟

一、常见的数据库对象:

  1. 模式Schema:(一个数据库里可有多个模式,一个模式下可有多个数据库对象
    • 是什么:
      • 一个数据库对象的集合
      • 一个命名空间,可包含多个表、视图、索引以及其他数据库对象
    • 组成:
      • 视图
      • 索引
      • 对象的访问权限
    • 能做什么:
      • 提供了逻辑上组织和隔离不同数据库对象的能力
  2. 视图View:
    • 是什么:
      • 一个基于一个或多个表的查询结果生成的虚拟表
    • 特点:
      • 可以像表一样被查询、引用,但实际上不存储数据
    • 组成:
      • 查询语句
        • 包括选择的列、过滤条件和连接条件
        • 查询语句结果返回的数据行
    • 能做什么:
      • 将复杂的查询结果封装为一个简单的、易于理解和使用的对象
  3. 表Table:
    • 是什么:
      • 用于存储和组织数据的基本结构
    • 组成:
      • 行(记录)
      • 列(字段)
    • 能做什么:
      • 提供了一种结构化和可查询的方式来组织和管理数据
  4. 索引Index:
    • 是什么:
      • 为了加快对表中数据的检索速度而创建的数据结构
    • 组成:
      • 创建索引所基于的
      • 根据列的值创建的索引项值所指向的具有相应值的数据行
    • 能做什么:
      • 基于一个或多个列来提供快速访问数据的能力

二、用SQL来定义数据库对象:

  1. 概述操作方式: image.png
  2. 有关模式的操作:
    • 创建用户:
      • create user 'username' identified by 'password';
    • 为用户授予权限:
      • 授予所有权限:
        • grant all privileges on database_name.* to 'username';
      • 授予读取权限:
        • grant select on database_name.* to 'username'@'localhost';
      • 授予写入权限:
        • grant insert,update,delete on database_name.* to 'username'@'localhost;
    • 用户在命令行访问数据库:
      • mysql -h hostname -u username -p password database_name
    • 删除模式:
      • drop schema schema_name cascade/restrict
        • cascade:级联
          • 删除了该模式,该模式下的所有数据库对象全部删除
        • restrict:限制
          • 只有当该模式下没任何下属数据库对象时才能执行
  3. 有关表的操作:
    • 设置表所属模式:
      • create table schema_name.table_name(行1,行2...);
        • 如果schema_name含'-',要加上``
      • 注:
        • 创建表时,如果没有指定模式,系统将根据搜索路径来确定该对象所属的模式
        • 关系型数据库将会使用模式列表中第一个存在的模式作为数据库对象的模式名
        • 若搜索路径中的模式名都不存在,系统将给出错误
        • 显示当前搜索路径:show search_path;
        • 搜索路径当前的默认值:$user,public;
        • 设置搜索路径,定义基本表:set search_path to "schema_name",public;
    • 定义表: image.png
      • 列级约束条件:
        • 列名 数据类型 primary key/primary key(列名1,列名2):主码
        • unique:约束
          • foreign key(列名) references 表名(参照列的1列名):外码
    • 修改表: image.png image.png
  4. 有关索引的操作:
    • 建立索引: image.png
    • 修改索引:
      • alter index old_schema rename to new_schema
  5. 数据字典:
    • 是什么:
      • 关系数据库管理系统内部的一组系统表,它记录了数据库中所有定义信息