MySQL 学习笔记 (CONSTRAINT 预设值篇)

内文皆使用 MySQL 语法

参考资料

CONSTRAINT (预设值)

用来限制哪一些资料可以存入表格中用于 CREATE TABLE 或后续 ALTER TABLE

常见限制

AUTO_INCREMENT 自动 +1 (该栏位不需要自行传入,会自动产生)NOT NULL (不可为空)UNIQUE (独特、唯一、不可重複)CHECK (可带入判断式、MySQL无法使用此)DEFAULT (设定预设值)PRIMARY KEY 主键FOREIGN KEY 外来键
  CREATE TABLE users (    -- 主键 必带有 UNIQUE 特性    id INT AUTO_INCREMENT,    name VARCHAR(100) UNIQUE,    phone VARCHAR(10) NOT NULL,    location VARCHAR(100) DEFAULT 'taiwan',    -- MySQL 无法使用 CHECK    age INT(10) CHECK (age>0),    CONSTRAINT pk_UserID PRIMARY KEY (id,name)  )

主键

主键 为各 TABLE 的唯一数值,用以判断每行资料主键 可为资料中的栏位(name)、与资料无关的栏位(id)主键 亦可包含多个栏位,又称组合键 (Composite Key)Why use 组合键? 因为被组合的栏位皆非 Unique,但组合后可为 Unique主键 亦可由外来键组成
  CREATE TABLE users (    -- 主键 必带有 UNIQUE 特性    id INT AUTO_INCREMENT,    name VARCHAR(50),    CONSTRAINT pk_UserID PRIMARY KEY (id,name)  );  -- 变更主键 (必须确定该栏位为 NOT NULL)  ALTER TABLE users ADD PRIMARY KEY (id);  ALTER TABLE users ADD PRIMARY KEY (id, name);  -- 外来键 组成 主键  CREATE TABLE sc(    sno VARCHAR(10), -- 学生编号 (学生资料表主键)    cno VARCHAR(10), -- 课程编号 (课程资料表主键)    score INT(4), -- 分数    CONSTRAINT pk_score PRIMARY KEY (sno,cno)  );

外来键

指向另一个表格的主键栏位目的: 确定两个资料表的关联性
  CREATE TABLE ORDERS (    Order_ID INT(100) AUTO_INCREMENT,     Order_Date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     Customer_SID INT(100),     AMOUNT INT(100),     PRIMARY KEY (Order_ID),     FOREIGN KEY (Customer_SID) REFERENCES CUSTOMER (SID)  );  -- 新增外来键  ALTER TABLE ORDERS ADD FOREIGN KEY (Customer_SID) REFERENCES CUSTOMER (SID);

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章