当前位置: 首页 » 综合知识 » it知识 » 正文

怎样通过create命令设置表约束

发布时间:2024-10-06 以下文章来源于网友投稿,内容仅供参考!

在MySQL中,CREATE TABLE命令用于创建新表,并且可以设置表约束来确保数据的完整性和准确性。以下是一些常见的表约束及其设置方法:

  1. 主键约束(PRIMARY KEY)

    • 使用PRIMARY KEY关键字指定主键列。
    • 主键列必须唯一,并且不允许为NULL。
    • 示例:CREATE TABLE students (id INT PRIMARY KEY, name VARCHAR(50), age INT);
  2. 唯一约束(UNIQUE)

    • 使用UNIQUE关键字指定某列或多列的组合必须唯一。
    • 唯一约束允许NULL值(如果列定义为允许NULL)。
    • 示例:CREATE TABLE users (username VARCHAR(50) UNIQUE, email VARCHAR(100));
  3. 检查约束(CHECK)

    • 使用CHECK关键字添加条件表达式,确保列中的值满足特定条件。
    • 检查约束在插入或更新数据时进行验证。
    • 示例:CREATE TABLE products (price DECIMAL(10, 2), quantity INT CHECK (price > 0 AND quantity >= 0));
  4. 外键约束(FOREIGN KEY)

    • 使用FOREIGN KEY关键字创建外键列,该列引用另一个表的主键。
    • 外键列必须唯一,并且不允许为NULL(除非指定了ON DELETE SET NULLON DELETE CASCADE)。
    • 示例:CREATE TABLE orders (order_id INT PRIMARY KEY, product_id INT, supplier_id INT, FOREIGN KEY (product_id) REFERENCES products(id), FOREIGN KEY (supplier_id) REFERENCES suppliers(id));
  5. 默认值约束(DEFAULT)

    • 使用DEFAULT关键字为列指定默认值。
    • 当插入新行且未为该列提供值时,将使用默认值。
    • 示例:CREATE TABLE employees (salary DECIMAL(10, 2), join_date DATE DEFAULT CURRENT_DATE);
  6. 非空约束(NOT NULL)

    • 使用NOT NULL关键字指定列不允许为NULL。
    • 必须在插入或更新数据时为列提供值。
    • 示例:CREATE TABLE contact_info (email VARCHAR(100) NOT NULL, phone VARCHAR(20));

在创建表时,可以将这些约束与CREATE TABLE命令一起使用,以确保数据的完整性和准确性。例如:

CREATE TABLE employees (
    id INT AUTO_INCREMENT PRIMARY KEY,
    first_name VARCHAR(50) NOT NULL,
    last_name VARCHAR(50) NOT NULL,
    email VARCHAR(100) UNIQUE NOT NULL,
    phone VARCHAR(20),
    hire_date DATE NOT NULL,
    job_id INT,
    salary DECIMAL(10, 2),
    manager_id INT,
    FOREIGN KEY (job_id) REFERENCES jobs(job_id),
    FOREIGN KEY (manager_id) REFERENCES employees(id)
);

在这个示例中,我们定义了一个employees表,其中包含了主键约束、非空约束、唯一约束和外键约束。

  • • Linux Ecdsa密钥长度选择有何依据

    在Linux

  • • Linux Khook在内核监控中的应用如何

    Linux

  • • Linux Gsoap是否支持异步通信

    GSOAP是

  • • Linux Coremail如何提升用户体验

    提升Linu

  • • Linux Ecdsa算法有哪些局限性

    ECDSA

  • 哎呀音乐钢琴键盘学习《 钢琴主人训练营》 西瓜学琴
    郭蝈 陪练钢琴 30节课时 考级刚需 让孩子每一次练琴都是高质量的
    30天轻松学会五线谱 流行钢琴自学初级教程 牙牙学琴
    流行爵士钢琴实战技巧VIP课 - 继伟 哎呀音乐
    【海上钢琴师】原版 MT1990钢琴谱
    百首经典流行钢琴实战曲集 - 继伟
    雷费尔德电钢琴重锤88键专业考级儿童初学者数码电子钢琴家用
    小练咖 真人钢琴陪练 1v1服务 2999随时退 1课时50分钟 考级刚需
    雅马哈电钢琴88键重锤CLP735智能数码电子钢琴家用专业初学者考级
    【原装进口】Yamaha/雅马哈钢琴 b121 SC2原声静音钢琴
  • 珠海专业调钢琴
  • 天津宝坻区调钢琴
  • 天津静海区钢琴调音
  • 成都简阳市钢琴调律
  • 大连瓦房店市钢琴调音
  • 眉山调钢琴联系方式
  • 惠州大亚湾钢琴调琴师
  • 长治调琴师
  • 厦门湖里区钢琴调音师
  • 上海普陀区钢琴调音师