1+ /*
2+ sql 约束的 Mysql 示例
3+ */
4+
5+ -- --------------------------------------------------------------
6+ -- DDL BEGIN
7+ -- --------------------------------------------------------------
8+
9+ -- NOT NULL 约束
10+ DROP TABLE IF EXISTS person;
11+ CREATE TABLE person (
12+ person_id INT NOT NULL ,
13+ name VARCHAR (255 ) NOT NULL ,
14+ age INT ,
15+ address VARCHAR (255 )
16+ );
17+
18+ -- UNIQUE 约束
19+ DROP TABLE IF EXISTS person;
20+ CREATE TABLE person (
21+ person_id INT NOT NULL ,
22+ name VARCHAR (255 ) NOT NULL ,
23+ age INT ,
24+ address VARCHAR (255 ),
25+ UNIQUE (person_id)
26+ );
27+
28+ -- PRIMARY KEY 约束
29+ DROP TABLE IF EXISTS person;
30+ CREATE TABLE person (
31+ person_id INT NOT NULL PRIMARY KEY ,
32+ name VARCHAR (255 ) NOT NULL ,
33+ age INT ,
34+ address VARCHAR (255 )
35+ );
36+
37+ -- FOREIGN KEY 约束
38+ DROP TABLE IF EXISTS bill;
39+ CREATE TABLE bill
40+ (
41+ bill_id INT NOT NULL ,
42+ bill_no INT NOT NULL ,
43+ person_id INT ,
44+ PRIMARY KEY (bill_id),
45+ FOREIGN KEY (person_id) REFERENCES person(person_id)
46+ );
47+
48+ -- CHECK 约束
49+ DROP TABLE IF EXISTS person;
50+ CREATE TABLE person (
51+ person_id INT NOT NULL ,
52+ name VARCHAR (255 ) NOT NULL ,
53+ age INT CHECK (age >= 18 ),
54+ address VARCHAR (255 )
55+ );
56+
57+ -- DEFAULT 约束
58+ DROP TABLE IF EXISTS person;
59+ CREATE TABLE person (
60+ person_id INT NOT NULL ,
61+ name VARCHAR (255 ) NOT NULL ,
62+ age INT DEFAULT 18 ,
63+ address VARCHAR (255 )
64+ );
65+
66+ -- --------------------------------------------------------------
67+ -- DDL END
68+ -- --------------------------------------------------------------
0 commit comments