SQL语法入门(五)

高级SQL特性

约束(constraint)
管理如何插入或处理数据库数据的规则

主键

主键是一种特殊的约束,它用来保证一个列(或一组列)中的值是唯一的,并且永不改动。
表中任意列只要满足一下条件,都可以用于主键:
1、任意两列的主键值都不相同
2、每行都具有一个主键值(即列中不允许NULL值)
3、包含主键值的列不修改或更新
4、主键值不能重用。如果从表中删除某一行,其主键值不分配给新行。

CREATE TABLE Vendors
(
    vend_id       CHAR(10)    NOT NULL PRIMARY KEY,
    vend_name     CHAR(30)    NOT NULL,
    vend_address  CHAR(50)    NOT NULL
)

给vend_id列定义添加关键字PRIMARY KEY,使其成为主键

ALTER TABLE Vendors
ADD CONSTRAINT PRIMARY KEY (vend_id);

外键
外键是表中的一个列,其值必须在另一表的主键中列出。外键是保证引用完整性的一个极重要的成分。

定义外键的一种方法:

CREATE TABLE Orders
(
    order_num     INTEGER    NOT NULL PRIMARY KEY,
    order_date    DATETIME   NOT NULL,
    cust_id       CHAR(10)   NOT NULL REFERENCES
    Customers(cust_id)
);

也可以用ALTER TABLE语句中CONSTRAINT语法来完成

ALTER TABLE Customers
ADD CONSTRAINT
FOREIGN KEY (cust_id) REFERENCES Customers(cust_id)

检查约束

CREATE TABLE OrderItems
(
    order_num     INTEGER    NOT NULL,
    order_item    INTEGER    NOT NULL,
    quantity      INTEGER    NOT NULL CHECK (quantity > 0)
);

索引

创建索引

CREATE INDEX prod_name_ind
ON PRODUCTS (prod_name);

索引必须唯一命名。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值