• SQL语句(二)创建带主键和约束的数据表


    内容摘要

    创建带主键和约束的表

    创建带组合主键和外键的表

    1. 创建带主键和约束的表

    • Student (学生表) 

    • CREATE TABLE Student
      (
      sclass varchar(10) NOT NULL,      ---  限制非空
      snumb varchar(10) PRIMARY KEY,    ---  设置为主键
      sname varchar(40) NOT NULL,       ---  (下)设置默认值男,约束选项为男女
      sgender varchar(4) DEFAULT ''  CONSTRAINT consgender CHECK (sgender IN('', '')),
      sbirthday date,
      sage int CONSTRAINT consage CHECK (sage >= 0 and sage <= 150)
      )
      CONSTRAINT 约束名 CHECK (条件)
    • SELECT INTO Student VALUES('电气51', '10002', '王涛', '', '1993-2-1', 18)
      INSERT INTO Student(sclass, snumb, sname)
      VALUES('电气51', '10004', '王涛')          --->   产生默认性别男
      SELECT * FROM Student
      INSERT INTO Student(sclass, snumb)
      VALUES('电气51', '10005')          ----  出现错误: 不能将值 NULL 插入列 'sname'

      以上为,加了约束之后的效果

    • Course (课程)

    CREATE TABLE Course
    (
    cnumb varchar(10) PRIMARY KEY,              ---  设为主键
    cname varchar(40) NOT NULL,                 ---  非空
    chours int CONSTRAINT conshour CHECK(chours >= 0 and chours <= 300),
    credit decimal(5,2) CONSTRAINT conscredit CHECK(credit >= 0 and credit < 20),
    intro text                                  --- text字段存放一段文字
    )
    INSERT INTO Course
    VALUES('ENP09001', '理论力学', 56, 3, '研究物体机械运动的基本规律')
    
    SELECT * FROM Course

    2. 创建带组合约束和外键的表

    • study (选课表)

     

    CREATE TABLE Study
    (
    snumb varchar(10),
    cnumb varchar(10),
    score decimal(5,2),
    PRIMARY KEY (snumb, cnumb),                      ----   设为组合主键
    FOREIGN KEY (snumb) REFERENCES Student(snumb),   ----   (参照完整性)声明是什么表中的外键(即:插入数据时,必须要在Student和Course存在才可以)
    FOREIGN KEY (cnumb) REFERENCES Course (cnumb)
    )
    INSERT INTO Study
    VALUES('10001', 'ENP09001', 90)         --- snumb和cnumb必须要在Student和Course存在才可以
    
    SELECT * FROM Student
    SELECT * FROM Course
    SELECT * FROM Study

    3.总结:

     //添加内容

    四类数据完整性: 
    
         实体完整性,确保不出现完全相同的数据记录
         区域完整性, 通过限制数据类型,检查约束,输入格式,外键约束,默认值,非空等体现
         参考完整性,避免因一个数据表的记录改变而造成相关数据表内的数据变成无效值。
         用户自定义完整性,用户自定义由用户根据实际应用中的需要自行定义。

  • 相关阅读:
    angularJS中的MVC思想?
    angularJs初体验,实现双向数据绑定!使用体会:比较爽
    原生JS去解析地址栏的链接?超好用的解决办法
    HDCMS多图字段的使用?
    sublime添加到鼠标右键打开文件的方法?
    Ajax做列表无限加载和Ajax做二级下拉选项
    Atitit.获取某个服务 网络邻居列表 解决方案
    Atitit. 注册表操作查询 修改 api与工具总结 java c# php js python 病毒木马的原理
    Atitit. 注册表操作查询 修改 api与工具总结 java c# php js python 病毒木马的原理
    Atitit.prototype-base class-based  基于“类” vs 基于“原型”
  • 原文地址:https://www.cnblogs.com/douzujun/p/6413535.html
Copyright © 2020-2023  润新知