MySQL实现建表 ⑤ choose包含:choose_no int 自增字段主键; student_no char(11) 学生学号不允许为空;course_no int 课程号不允许为空;score tinyint unsigned,choose_time 选课时间可由now()函数自动生成;外键约束为学生号和课程号;存储引擎为InnoDB,默认字符集为gbk。
时间: 2024-02-27 22:55:31 浏览: 25
好的,以下是 MySQL 建立 choose 表的 SQL 语句:
```sql
CREATE TABLE choose (
choose_no INT AUTO_INCREMENT PRIMARY KEY,
student_no CHAR(11) NOT NULL,
course_no INT NOT NULL,
score TINYINT UNSIGNED,
choose_time DATETIME DEFAULT NOW(),
FOREIGN KEY (student_no) REFERENCES student(student_no),
FOREIGN KEY (course_no) REFERENCES course(course_no)
) ENGINE = InnoDB DEFAULT CHARSET = gbk;
```
注意,上述代码中的 `student` 表和 `course` 表是外键约束所依赖的两个表,需要提前建立好,并且外键字段和依赖表的主键字段要匹配。另外,`choose_time` 字段使用了 `NOW()` 函数来自动生成当前时间。
相关问题
创建course表, course表包含:course_no int 自增字段,主键;course_name char(10)课程名允许重复;up_limit 课程上限设置默认值为60;description 课程的描述信息为文本字符串text,且不能为空;status char(6) 课程状态的默认值为“未审核”;teacher_no char(10) 唯一性约束实现教师与课程之间1:1关系; 外键约束为教师表中的教师号[constraint course_teacher_fk foreign key(teacher_no) references teacher(teacher_no)]存储引擎为InnoDB,默认字符集为gbk。
可以使用以下 SQL 语句在 MySQL 中创建一个 `course` 表:
```
CREATE TABLE course (
course_no INT(11) NOT NULL AUTO_INCREMENT,
course_name CHAR(10) NOT NULL,
up_limit INT(11) DEFAULT 60,
description TEXT NOT NULL,
status CHAR(6) DEFAULT '未审核',
teacher_no CHAR(10) NOT NULL,
PRIMARY KEY (course_no),
UNIQUE (course_name),
CONSTRAINT course_teacher_fk FOREIGN KEY (teacher_no) REFERENCES teacher (teacher_no)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
```
上述 SQL 语句创建了一个名为 `course` 的表,其中包含 6 个字段。其中,`course_no` 是主键,自动递增;`course_name` 允许重复,但是在表中是唯一的。`up_limit` 默认值为 60;`description` 是课程描述信息,不能为空;`status` 默认值为 “未审核”;`teacher_no` 是教师编号,且在表中是唯一的,实现教师与课程之间 1:1 关系。同时,还设置了外键约束,确保 `teacher_no` 在 `teacher` 表中存在。最后,指定了存储引擎为 InnoDB,字符集为 gbk。
mysql如何获取自增主键_MySql如何手动获取自增主键
在MySQL中,可以使用LAST_INSERT_ID()函数手动获取自增主键。当插入一条记录时,LAST_INSERT_ID()函数可以返回自动递增列的值。
例如,如果需要获取一个名为"users"的表中最新插入记录的自增主键,可以使用以下SQL语句:
```
INSERT INTO users (name, age) VALUES ('John Doe', 30);
SELECT LAST_INSERT_ID();
```
这将在"users"表中插入一条记录,然后返回自增主键的值。如果需要在插入记录时立即获取自增主键的值,可以使用以下语句:
```
INSERT INTO users (name, age) VALUES ('John Doe', 30)
ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id), age=30;
SELECT LAST_INSERT_ID();
```
这将在"users"表中插入一条记录,如果记录已经存在则更新记录。然后返回自增主键的值。