zoukankan      html  css  js  c++  java
  • Oracle学习(三)SQL高级--表结构相关(建表、约束)

    一、建表语句

    CREATE DATABASE(创建数据库)

    --创建数据库
    create database 数据库名字;

    CREATE TABLE(创建表)

    --创建表
    CREATE TABLE 表名
    (
    字段1 类型(长度),
    字段2 类型(长度),
    字段3 类型(长度),
    字段4 类型(长度),
    字段5 类型(长度)
    );

    二、约束语句

    定义

    • SQL 约束用于规定表中的数据规则。
    • 如果存在违反约束的数据行为,行为会被约束终止。
    • 约束可以在创建表时规定(通过 CREATE TABLE 语句),或者在表创建之后规定(通过 ALTER TABLE 语句)。

    约束类型:

    • NOT NULL - 指示某列不能存储 NULL 值。
    • UNIQUE - 保证某列的每行必须有唯一的值。
    • PRIMARY KEY - (主键)NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。
    • FOREIGN KEY - (外键)保证一个表中的数据匹配另一个表中的值的参照完整性。
    • CHECK - 保证列中的值符合指定的条件。
    • DEFAULT - 规定没有给列赋值时的默认值。

    NOT NULL(非空约束)

    --创建表时增加约束 NOT NULL
    CREATE TABLE 表名
    (
    列1 类型(长度) NOT NULL,
    列2 类型(长度) NOT NULL,
    列3 类型(长度),
    列4 类型(长度),
    列5 类型(长度)
    );
    
    --删除约束 NOT NULL
    alter table 表 modify 列 null;
    --设置约束 NOT NULL
    alter table 表 modify 列 not null;

    UNIQUE(唯一约束)

    PS:每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。
    
    --创建表时增加约束 UNIQUE
    CREATE TABLE 表名
    (
    列1 类型(长度) NOT NULL,
    列2 类型(长度) NOT NULL,
    列3 类型(长度),
    列4 类型(长度),
    列5 类型(长度),
    CONSTRAINT 约束名 UNIQUE (列1,列2)
    );
    
    --修改表时,增加约束 UNIQUE (单列约束的情况)
    ALTER TABLEADD UNIQUE (列1);
    
    --修改表时,如需命名 UNIQUE 约束,并定义多个列的 UNIQUE 约束(多列约束的情况)
    ALTER TABLEADD CONSTRAINT 约束名 UNIQUE (列1,列2)
    
    --删除约束 UNIQUE
    ALTER TABLEDROP CONSTRAINT 约束名

    PRIMARY KEY(主键)

    • 主键必须包含唯一的值。
    • 主键列不能包含 NULL 值。
    • 每个表都应该有一个主键,并且每个表只能有一个主键。
    PS:每个表都应该有一个主键,并且每个表只能有一个主键。
    
    --创建表时增加约束 PRIMARY KEY
    CREATE TABLE 表名
    (
    列1 类型(长度) PRIMARY KEY,
    列2 类型(长度),
    列3 类型(长度),
    列4 类型(长度),
    列5 类型(长度)
    );
    
    --创建表时,如需命名 PRIMARY KEY 约束,并定义多个列的 PRIMARY KEY 约束(多列约束的情况)
    PS:这种情况还是只有一个主键。然而,此时主键的值是由两个列(列1和列2)组成的 CREATE TABLE 表名 ( 列1 类型(长度), 列2 类型(长度), 列3 类型(长度), 列4 类型(长度), 列5 类型(长度), CONSTRAINT 约束名 PRIMARY KEY (列1,列2) ); PS:用ALTER TABLE 语句添加主键(即修改表的场景),必须把主键列声明为不包含 NULL 值(在表首次创建时)。 --修改表时,增加约束 PRIMARY KEY (单列约束的情况) ALTER TABLEADD PRIMARY KEY (列1); --修改表时,如需命名 PRIMARY KEY 约束,并定义多个列的 PRIMARY KEY 约束(多列约束的情况) ALTER TABLEADD CONSTRAINT 约束名 PRIMARY KEY (列1,列2) --删除约束 PRIMARY KEY(有约束名的场景) ALTER TABLEDROP CONSTRAINT 约束名 --删除约束 PRIMARY KEY(未定义约束名的场景) ALTER TABLEDROP CONSTRAINT 列名

     FOREIGN KEY(外键)

    • 一个表中的 FOREIGN KEY 指向另一个表中的 UNIQUE KEY(唯一约束的键)。
    • FOREIGN KEY 约束用于预防破坏表之间连接的行为。
    • FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。
    --创建表时增加约束 FOREIGN KEY 
    CREATE TABLE 表名
    (
    列1 类型(长度) PRIMARY KEY,
    列2 类型(长度),
    列3 类型(长度) FOREIGN KEY REFERENCES 外键关联的表名(外键关联的表字段)
    );
    
    --创建表时,如需命名 FOREIGN KEY 约束,并定义多个列的 FOREIGN KEY 约束
    CREATE TABLE 表名
    (
    列1 类型(长度) PRIMARY KEY,
    列2 类型(长度),
    列3 类型(长度),
    CONSTRAINT 约束名 FOREIGN KEY (当前表的字段)
    REFERENCES 外键关联的表名(外键关联的表字段)
    );
    
    
    --修改表时,增加约束 FOREIGN KEY (单列约束的情况)
    ALTER TABLEADD FOREIGN KEY (当前表的字段)
    REFERENCES 外键关联的表名(外键关联的表字段);
    
    --修改表时,如需命名 FOREIGN KEY 约束,并定义多个列的 FOREIGN KEY 约束(多列约束的情况)
    ALTER TABLEADD CONSTRAINT 约束名 FOREIGN KEY (当前表的字段)
    REFERENCES 外键关联的表名(外键关联的表字段);
    
    
    --删除约束 FOREIGN KEY(有约束名的场景)
    ALTER TABLEDROP CONSTRAINT 约束名
    
    --删除约束 FOREIGN KEY(未定义约束名的场景)
    ALTER TABLEDROP CONSTRAINT 列名

    CHECK(校验)

    • CHECK 约束用于限制列中的值的范围。
    • 如果对单个列定义 CHECK 约束,那么该列只允许特定的值。
    • 如果对一个表定义 CHECK 约束,那么此约束会基于行中其他列的值在特定的列中对值进行限制。
    --创建表时增加约束 CHECK 
    CREATE TABLE 表名
    (
    列1 类型(长度) PRIMARY KEY,
    列2 类型(长度),
    列3 类型(长度) CHECK (校验条件,如:列3>0)
    );
    
    --创建表时,如需命名 CHECK 约束,并定义多个列的 CHECK 约束
    CREATE TABLE 表名
    (
    列1 类型(长度) PRIMARY KEY,
    列2 类型(长度),
    列3 类型(长度),
    CONSTRAINT 约束名 CHECK (校验条件1 AND 校验条件2)
    );
    
    
    --修改表时,增加约束 CHECK (单列约束的情况)
    ALTER TABLEADD CHECK (校验条件);
    
    --修改表时,如需命名 CHECK 约束,并定义多个列的 CHECK 约束(多列约束的情况)
    ALTER TABLEADD CONSTRAINT 约束名 CHECK (校验条件1 AND 校验条件2);
    
    
    --删除约束 CHECK(有约束名的场景)
    ALTER TABLEDROP CONSTRAINT 约束名
    
    --删除约束 CHECK(未定义约束名的场景)
    ALTER TABLEDROP CONSTRAINT 列名

    DEFAULT (默认值)

    --创建表时增加约束 DEFAULT  
    CREATE TABLE 表名
    (
    列1 类型(长度) PRIMARY KEY,
    列2 类型(长度),
    列3 类型(长度) DEFAULT 默认值
    );
    
    --修改表时,增加约束 DEFAULT  (单列约束的情况)
    ALTER TABLE 表 MODIFY 列 DEFAULT 默认值
    
    --删除约束 DEFAULT 
    ALTER TABLEALTER COLUMNDROP DEFAULT
  • 相关阅读:
    Oracle DB 管理数据库的空间
    五 Django 1.5.4 User Authentication 用户认证
    接口开放在即,先学招行做好微信内容营销
    WPF的ItemsControl设置数据源以及Binding使用
    WPF中后台代码停止RepeatBehavior=RepeatBehavior.Forever的办法
    WPF中使用RenderTransformOrigin来控制动画的起点
    使用Rectangle+ImageBrush来代替Image,解决图片模糊的问题
    WPF中Style文件引用另一个Style文件中的样式
    WPF中用后台C#代码为TabItem设置Background属性
    WPF中设置Border的BorderThickness属性会让背景图片产生模糊感
  • 原文地址:https://www.cnblogs.com/riches/p/11249529.html
Copyright © 2011-2022 走看看