• 关系数据库—SQL学习笔记


    SQL的特点:

    • 综合统一
    • 高度非过程化(存取路径的选择以及SQL的操作过程由系统自动完成)
    • 面向集合的操作方式,以同一种语法结构提供多种使用方法(可以在终端键盘上直接键入SQL命令对数据库进行操作,也能够嵌入到高级语言(C,C++,JAVA)程序中)

    模式,外模式,和内模式:

    关系模型支持三级模式结构:模式,外模式,和内模式;

    模式:是指数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。它涉及的仅仅是对于某一类数据的结构和属性的描述。模式的一个具体值称为模式的一个实例,同一模式下可以有很多个实例。模式是相对稳定的,而实例是相对变动的。

    外模式:也称子模式,或用户模式,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的表述,是数据库用户的数据视图。是与某一应用有关的数据的逻辑表示。

    内模式:也称存储模式,一个数据库只有一个内模式。他是数据物理结构和存储方式的描述,是数据库内部的组织方式。

    模式与外模式的关系:一对多。

    外模式与应用的关系:一对多。

    其中外模式包括若干视图和部分基本表,数据库模式包括若干基本表,内模式包括若干存储文件。

    数据库,模式,表的关系:

    一个数据库可以建立多个模式,一个模式下通常包括多个表,视图和索引等数据库对象;

    SQL数据库定义语句:

    1. 模式 :创建:create schema 删除:drop schema
    2. 表: 创建:create table 删除:drop table
    3. 视图:创建:create view 删除:drop view
    4. 索引:创建:create index 删除:drop index

    模式的定义与删除:

    1.定义模式:

    Create schema 模式名 authorization 用户名

    定义模式实际上定义了一个命名空间,建立了一个数据库的命名空间,一个框架。在创建模式时,同时也可以创建基本表,以及视图,并且可以定义授权。

    2.删除模式:

    drop schema 模式名 cascade或者drop schema 模式名 restrict

    cascade:为级联,表示删除该模式时,删除该模式中所有的数据库对象。

    Restrict:为限制,表示如果该模式中已经定义了下属的数据库对象,则拒绝执行该语句。

    基本表:

    1.定义基本表:

    Create table 表名 (列名 数据类型 列级完整性约束条件,

    列名 数据类型 列级完整性约束条件,

    表级完整性约束条件);

    如果完整性约束涉及该表的多个属性列,则必须定义在表级上,否则既可以定义在表级也可以定义在列级。

    例如:

    Create table course(
    Cno char(4) primary key,/* primary key标示主码*/
    Cname char(40) not NULL,/* 列级完整性约束条件,Cname 不能为空*/
    Cpno char(4)Ccredit smallint,
    foreign key(Cpno)refernces course(Cno) 
       /* 表级完整性约束条件,Cpno是外码,被参照表是:Cno;*/
    ); 

    定义表的模式:

    方法一:在表中明显的定义模式名:

    Create table “S-T”.course(…);/*course所属的模式是S-T*/

    方法二:在创建模式的同时创建表;

    方法三:设置所属的模式。

    当创建基本表时,若没有指定模式,系统会根据搜索路径来确定该对象所属的模式(搜索结果中第一个存在的模式)。

    显示当前的搜索路径:

    Show search_path; /*默认值是$user,public ,首先搜索与用户名相同的模式名,不过不存在这使用public*/

    设置搜索路径,如:

    Set search_path to “S-T”,public;

    然后创建基本表:

    Create table course(…);

    2.修改基本表:

    Alter table 表名

    Add [column] 新列名 数据类型 完整性约束 /*增加新列*/

    Add 表级完整性约束 /*增加表级完整性约束*/

    Drop [column] 列名 cascade /**强制删除*/

    Drop [column] 列名 restrict

    Alter column 列名 数据类型 /*修改原有列定义**/

    3.删除基本表:

    Drop table 表名 restrict //有限制条件的删除,不能被其他的对象引用。

    或者Drop table 表名cascade //强制删除

  • 相关阅读:
    go第二天
    go第一天
    engish
    english
    git 生成公钥
    tp5 验证码
    css处理文本折行截断
    数组对象总结(牢记)
    全局css样式
    Flexbox 弹性盒子布局
  • 原文地址:https://www.cnblogs.com/hesi/p/6202822.html
Copyright © 2020-2023  润新知