mysql建表时设置主键的方法

  

mysql建表时设置主键的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!

设置方法:在“CREATE TABLE”语句中,通过“主键”关键字来指定主键,语法格式”字段名数据类型主键(默认值)”或“(约束约束名]主键字段名”。

主键(主键)的完整称呼是“主键约束”,是mysql中使用最为频繁的约束。一般情况下,为了便于DBMS更快的查找到表中的记录,都会在表中设置一个主键。

<强>在创建表时设置主键约束

在创建数据表时设置主键约束,既可以为表中的一个字段设置主键,也可以为表中多个字段设置联合主键。但是不论使用哪种方法,在一个表中主键只能有一个。下面分别讲解设置单字段主键和多字段联合主键的方法。

<强> 1)设置单字段主键

在CREATE TABLE语句中,通过<代码> 主键关键字来指定主键。

在定义字段的同时指定主键,语法格式如下:

& lt;字段名比;& lt;数据类型比;主键(默认值)

1例在test_db数据库中创建tb_emp3数据表,其主键为id, SQL语句和运行结果如下。

mysql>创建表tb_emp3   →(   →INT id(11)主键,   →名字VARCHAR (25),   →deptId INT (11),   →工资浮动   →);   查询好,0行影响(0.37秒)   mysql>DESC tb_emp3;   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - + +   | |字段类型零额外默认关键| | | | |   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - + +   | | int id (11) | | PRI零| | |   | |名称varchar(25) |是| |零| |   | deptId | int(11) |是| |零| |   零| | | |是的浮动工资| | |   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - + +   4行集(0.14秒)

或者是在定义完所有字段之后指定主键,语法格式如下:

[约束& lt;约束名祝辞]主键(字段名]

在例2 test_db数据库中创建tb_emp4,数据表,其主键为id, SQL语句和运行结果如下。

mysql>创建表tb_emp4   →(   →id INT (11),   →名字VARCHAR (25),   →deptId INT (11),   →工资浮动,   →主键(id)   →);   查询好,0行影响(0.37秒)   mysql>DESC tb_emp4;   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - + +   | |字段类型零额外默认关键| | | | |   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - + +   | | int id (11) | | PRI零| | |   | |名称varchar(25) |是| |零| |   | deptId | int(11) |是| |零| |   零| | | |是的浮动工资| | |   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - + +   4行集(0.14秒)

<强> 2)在创建表时设置联合主键

所谓的联合主键,就是这个主键是由一张表中多个字段组成的。

比如,设置学生选课数据表时,使用学生编号做主键还是用课程编号做主键呢?如果用学生编号做主键,那么一个学生就只能选择一门课程。如果用课程编号做主键,那么一门课程只能有一个学生来选。显然,这两种情况都是不符合实际情况的。

实际上设计学生选课表,要限定的是一个学生只能选择同一课程一次,因此,学生编号和课程编号可以放在一起共同作为主键,这也就是联合主键了。

主键由多个字段联合组成,语法格式如下:

主键(字段1,字段2,…,字段n]

注意:当主键是由多个字段组成时,不能直接在字段名后面声明主键约束。

3例创建数据表tb_emp5,假设表中没有主键id、为了唯一确定一个员工,可以把名字,deptId联合起来作为主键,sql语句和运行结果如下。

mysql>创建表tb_emp5   →(   →名字VARCHAR (25),   →deptId INT (11),   →工资浮动,   →主键(id、deptId)   →);   查询好,0行影响(0.37秒)   mysql>DESC tb_emp5;   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - + +   | |字段类型零额外默认关键| | | | |   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - + +   | |名称varchar(25)没有| | PRI零| | |   | deptId | int (11) | | PRI零| | |   零| | | |是的浮动工资| | |   + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - + +   3行集(0.14秒)

mysql建表时设置主键的方法