標籤:ons 業務 包含 varchar not let 欄位 sel 不能
非空約束
CREATE TABLE USER( uid INT NOT NULL,-- 非空約束 uname VARCHAR(10), address VARCHAR(30) DEFAULT ‘山東省‘ -- 預設值)
唯一約束
CREATE TABLE USER( uid INT UNIQUE,-- 唯一約束 uname VARCHAR(10), address VARCHAR(30) DEFAULT ‘山東省‘ -- 預設值)
-- 主鍵約束-- 注意:-- 1)通常情況下,每張表都會設定一個主鍵欄位。用於標記表中的每條記錄的唯一性。-- 2)建議不要選擇表的包含業務含義的欄位作為主鍵,建議給每張表獨立設計一個非業務含義的id欄位。
CREATE TABLE USER( uid INT PRIMARY KEY,-- 主鍵約束 非空+唯一 uname VARCHAR(10), address VARCHAR(30) DEFAULT ‘山東省‘ -- 預設值)INSERT INTO USER( uid,uname) VALUES(‘張三‘);
自增長約束
CREATE TABLE USER( uid INT PRIMARY KEY AUTO_INCREMENT,-- 自增長約束必須是主鍵 uname VARCHAR(10), address VARCHAR(30) DEFAULT ‘山東省‘ -- 預設值)INSERT INTO USER(uname) VALUES(‘張三‘);
零填充
CREATE TABLE USER( uid INT(5) ZEROFILL PRIMARY KEY AUTO_INCREMENT,-- 自增長約束必須是主鍵,零填充 uname VARCHAR(10), address VARCHAR(30) DEFAULT ‘山東省‘ -- 預設值)INSERT INTO USER(uname) VALUES(‘張三‘);
-- delete from 清空表不能刪除約束-- tauncate table 清空表能刪除約束
外鍵
CREATE TABLE dept( deptid INT PRIMARY KEY AUTO_INCREMENT, deptname VARCHAR(10))SELECT * FROM dept;SELECT * FROM emp;INSERT INTO dept(deptname) VALUES(‘軟體開發部‘);INSERT INTO dept(deptname) VALUES(‘軟體測試部‘);CREATE TABLE emp( eid INT PRIMARY KEY AUTO_INCREMENT, ename VARCHAR(5), deptid INT, CONSTRAINT emp_dept_fk FOREIGN KEY(deptid) REFERENCES dept(deptid))INSERT INTO emp(ename,deptid) VALUES(‘張三‘,1);
1)被約束的表稱為副表,約束別人的表稱為主表,外鍵設定在副表上的!!!
2)主表的參考欄位通用為主鍵!
3)添加資料: 先添加主表,再添加副表
4)修改資料: 先修改副表,再修改主表
5)刪除資料: 先刪除副表,再刪除主表
MySQL 資料約束