zoukankan      html  css  js  c++  java
  • 数据库学习随笔

    这篇随笔用来记录数据库的学习,随时更新补充,主要写一些比较少关注的内容

    PERSISTED:
    说明物理存储计算列的值(书本上的解释,什么鬼意思...)

    现实操作中,CHECK、FOREIGN KEY 和 NOT NULL 约束要求计算列是持久化(PERSISTED)的。

    大概它的作用就是这个吧?

    AS CONVERT (AS是计算列关键字,CONVERT将字符串从一个字符集转化为另一个字符集):

    CREATE TABLE test.测试
    (
    字符串 char(10) PRIMARY KEY

    新字符串 AS CONVERT(TINYINT,SUBSTRING(字符串,3,2)) PERSISTED NOT NULL  --从字符串第三位开始(包括第三位),截取两个字符

    )

    CHECK 里面使用 OR  IN

    CREATE TABLE test.学生(
    学号 char(10) PRIMARY KEY,
    姓别 char(2) CHECK(姓别='男' OR 姓别='女'),
    状态 char(4) CHECK(状态 IN('正常','留级','休学','退学'))
    )

    联合关键字?

    (1)学号和课程编号两列构成主关键字(需要表级完整性约束)

    (2)学号参照学生表的学号(约束选课的学生必须存在)

    (3)课程编号参照课程表的课程编号(约束被选的课程必须存在)

    CREATE TABLE test.选课
    (
    学号 char(10) FOREIGN KEY REFERENCES student.学生,
    课程编号 char(6) FOREIGN KEY REFERENCES student.课程,
    考试成绩 tinyint CHECK(考试成绩 BETWEEN 0 AND 100) DEFAULT NULL
    PRIMARY KEY(学号,课程编号)
    )

    如果某列定义了外部关键字约束,则需要先删除相关的约束,才能删除此列。

    CREATE TABLE test.课程(
    责任教师 char(6) CONSTRAINT duty_teacher
    FOREIGN KEY REFERENCES student.教师(编号),
    )

    第一步:ALTER TABLE test.课程 DROP duty_teacher

    第二步:ALTER TABLE test.课程 DROP COLUMN 责任教师

    ON DELETE SET NULL --当删除时,该列置为空值

    ON UPDATE CASCADE --级联更新

  • 相关阅读:
    Struts2 文件上传和下载
    Struts2的验证框架简单吗?
    Struts2防止重复提交
    Struts2的标签三大类是什么?
    Struts2的值栈和OGNL牛逼啊
    Struts2牛逼的拦截器,卧槽这才是最牛的核心!
    转载---C# 递归创建文件夹
    转载---C# 冻结 datagridview的列
    C# base64编码转成图片
    转载---C# 复制文件夹下的(内容)到指定文件夹中
  • 原文地址:https://www.cnblogs.com/ghylzwsb/p/5384696.html
Copyright © 2011-2022 走看看