基础语法
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name(
字段 1 数据类型 [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT]
[约束定义语句] [COMMENT 'string'],
字段 2 数据类型[NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT]
[约束定义语句] [COMMENT 'string'] ,
…...,
字段 n 数据类型[NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT]
[约束定义语句] [COMMENT 'string'],
[[constraINT 约束名] 约束定义语句]
)
[TABLE_options] [select_statement];
使用默认值约束
语法
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] 表名(
字段名 1 数据类型 [NOT NULL | NULL] [DEFAULT 默认值],
字段名 2 数据类型 [NOT NULL | NULL] [DEFAULT 默认值],
……
)
设置时间戳默认值
CREATE TABLE t1(
id INT,
date1 TIMESTAMP
);
INSERT INTO t1(id) VALUES(1);
INSERT INTO t1(id) VALUES(2);
SELECT * FROM t1;
)
唯一性约束
语法``
[CONSTRAINT 约束名] UNIQUE [(字段名)]
学生表
create table if not exists Student
(StuID char(8),
StuName varchar(10),
StuSex char(2),
StuBirthday date,
Native varchar(20) comment '籍贯',
National char(6) comment '民族',
Telephone char(11),
ClassID char(10)
);
示例
为学生表中的 Telephone 字段增加唯一键约束
ALTER TABLE student ADD CONSTRAINT uq_tel UNIQUE(telephone);
非空约束
语法
```sql
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] 表名(
字段名 1 数据类型 [NOT NULL | NULL] [DEFAULT 默认值],
字段名 2 数据类型 [NOT NULL | NULL] [DEFAULT 默认值],
……
)
示例
修改学生表 student,将学生姓名修改为不允许为空值。
ALTER TABLE student MODIFY StuName VARCHAR(10) NOT NULL;
检查约束
语法
[CONSTRAINT 约束名] CHECK(检查约束的表达式)
示例一
创建点名表,包括的字段有学号、课程号、出勤次数、缺勤次数、迟到次数。其中,学号和课
程是组合主键;出勤次数、缺勤次数、迟到次数这三个字段都是大于等于 0 的检查约束。
CREATE TABLE RollCall(
StuID CHAR(8),
CourseID CHAR(8),
AttendNumber INT check(AttendNumber>=0),
AbsenceNumber INT check(AbsenceNumber>=0),
LateNumber INT check(LateNumber>=0),
PRIMARY KEY(StuID,CourseID)
);
示例二
修改教师表,为教师的性别字段增加检查约束,性别只能是‘男’或‘女’。
ALTER TABLE Teacher ADD CHECK(TeacherSex IN('男','女'))