Skip to content

Commit af9cb2b

Browse files
author
Zhang Peng
committed
💡 添加 <sql 约束> 示例代码
1 parent f332d79 commit af9cb2b

1 file changed

Lines changed: 68 additions & 0 deletions

File tree

codes/sql/sql_constraint_demo.sql

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
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

Comments
 (0)