mysql建表语句如何设置联合主键
时间: 2023-11-23 14:55:27 浏览: 130
可以通过在CREATE TABLE语句中使用多个字段名来设置联合主键。具体语法格式为“PRIMARY KEY (字段1, 字段2, ...)”或“CONSTRAINT 约束名 PRIMARY KEY (字段1, 字段2, ...)”。下面是一个示例:
```mysql
CREATE TABLE tb_emp5 (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
deptId INT NOT NULL,
PRIMARY KEY (name, deptId)
);
```
上述示例中,tb_emp5表中的联合主键由name和deptId两个字段组成。其中,name和deptId字段都是NOT NULL的,因此它们的值不能为空。同时,id字段被设置为主键,但是它是自增的,因此不需要手动指定值。
相关问题
mysql 建表 设置联合主键
在MySQL中,可以通过在CREATE TABLE语句中使用PRIMARY KEY关键字来设置主键。要设置联合主键,可以在PRIMARY KEY后面列出多个字段名,用逗号隔开。下面是一个示例:
```sql
CREATE TABLE mytable (
id INT NOT NULL,
name VARCHAR(20) NOT NULL,
age INT,
PRIMARY KEY (id, name)
);
```
在上面的示例中,我们创建了一个名为mytable的表,其中id和name两个字段一起构成了联合主键。这意味着id和name的组合必须是唯一的,不能重复。
mysql建表创建索引
MySQL是一种常用的关系型数据库管理系统,使用它可以方便地创建表和创建索引来提高查询效率。
首先,我们需要使用CREATE TABLE语句创建一个表。例如,我们要创建一个名为students的表,其中包含学生的姓名、年龄和性别信息,可以使用如下的SQL语句:
CREATE TABLE students (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50),
age INT,
gender ENUM('男', '女')
);
上述语句定义了一个名为students的表,包含了四个列:id、name、age和gender。其中,id列是主键,而且使用了自增(AUTO_INCREMENT)属性,每次插入一行数据时会自动递增生成一个唯一的id值。
接下来,我们可以创建索引来提高查询效率。索引可以加快查找数据的速度,类似于书籍的目录,能够快速定位到特定的数据行。
在MySQL中,常见的索引类型包括主键索引、唯一索引和普通索引。可以使用CREATE INDEX语句创建这些索引。例如,我们可以为students表的name列创建一个唯一索引,可以使用如下的SQL语句:
CREATE UNIQUE INDEX idx_name ON students (name);
上述语句创建了一个名为idx_name的唯一索引,该索引是基于students表的name列。
除了单列索引,还可以创建多列索引,以提高复杂查询的性能。可以使用CREATE INDEX语句,并在括号中指定多个列。例如,我们可以创建一个基于name和age列的联合索引,可以使用如下的SQL语句:
CREATE INDEX idx_name_age ON students (name, age);
上述语句创建了一个名为idx_name_age的多列索引,该索引是基于students表的name和age列。
总之,通过使用MySQL的CREATE TABLE和CREATE INDEX语句,我们可以方便地创建表和创建索引来管理数据,并提高查询效率。
阅读全文