mysql 主键推荐char还是varchar
时间: 2023-11-14 22:51:32 浏览: 231
在 MySQL 中,主键推荐使用 CHAR 或 VARCHAR 类型都可以,但是 CHAR 类型主键的长度不要太长,建议不超过 32 个字符。如果使用 VARCHAR 类型作为主键,也需要注意长度不要太长,因为主键长度越长,存储和索引的成本就越高。一般来说,如果主键是由业务数据组成的,建议使用 VARCHAR 类型作为主键;如果主键是自动生成的,可以考虑使用 INT 或 BIGINT 类型作为主键。此外,还需要考虑主键的唯一性和性能问题。
相关问题
mysql主键为varchar和bigint的区别
主键为 varchar 和 bigint 的区别在于数据类型不同。varchar 是可变长度字符串类型,而 bigint 是整型数据类型。在实际使用中,一般建议将主键设置为 bigint 类型,因为整型比较操作效率更高,且可以存储更大范围的数值。而当需要使用字符串作为主键时,可以考虑使用 char 或者 varchar 类型,并设置合适的长度。但是需要注意的是,使用字符串做主键时需要考虑索引效率和存储空间的问题。
MySQL要求(1)创建学生成绩管理系统的数据库,名为schooldb。 (2)根据下图创建四个表,表名称分别为:class、student、score、course,写出4个创建 命令。 列名数据类型长度认主键?非空? 班级编号char 6 M м 班级名称varchar 20 皖系varchar 30 年级ine 人数int 口 日口 列名 学号 姓名 性别 出生日期 地区 民族 班级编号 数据类型 char char char date varchar char char T 长度 默认 10 10 2 20 10
好的,以下是四个表的创建命令:
1. 创建class表
```
CREATE TABLE class (
class_id char(6) PRIMARY KEY,
class_name varchar(20),
department varchar(30),
grade int,
num_of_students int
);
```
2. 创建student表
```
CREATE TABLE student (
student_id char(10) PRIMARY KEY,
student_name char(10),
gender char(2),
birthday date,
area varchar(20),
nation char(2),
class_id char(6),
FOREIGN KEY (class_id) REFERENCES class(class_id)
);
```
3. 创建score表
```
CREATE TABLE score (
student_id char(10),
course_id char(6),
score int,
PRIMARY KEY (student_id, course_id),
FOREIGN KEY (student_id) REFERENCES student(student_id),
FOREIGN KEY (course_id) REFERENCES course(course_id)
);
```
4. 创建course表
```
CREATE TABLE course (
course_id char(6) PRIMARY KEY,
course_name varchar(20),
credit int
);
```
阅读全文