• 中文
    • English
  • 注册
  • 查看作者
  • 2-12:MySQL初涉主键约束

    一.  PRIMARY KEY

    • 主键约束

    • 每张数据表只能存在一个主键

    • 主键保证记录的唯一性

    • 主键自动为NOT NULL

    • AUTO_INCREMENT必须和主键一起使用,但是主键不一定必须和AUTO_INCREMENT使用

    二.  设置主键

    我们将上节中的id定义成主键

    mysql> CREATE TABLE tb3(
        -> id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
        -> username VARCHAR(30) NOT NULL
        -> );
    Query OK, 0 rows affected (0.01 sec)

    可以看到,创建成功了,主键可以写PRIMARY KEY,也可以直接写KEY

    现在再来看一下数据表结构:

    mysql> SHOW COLUMNS FROM tb3;
    +----------+----------------------+------+-----+---------+----------------+
    | Field    | Type                 | Null | Key | Default | Extra          |
    +----------+----------------------+------+-----+---------+----------------+
    | id       | smallint(5) unsigned | NO   | PRI | NULL    | auto_increment |
    | username | varchar(30)          | NO   |     | NULL    |                |
    +----------+----------------------+------+-----+---------+----------------+
    2 rows in set (0.01 sec)

    可以看到,id不能为空,因为主键自动为NOT NULL,Key被定义成了PRI,Extra被定义成了自动编号,则写入记录的时候id不需要专门赋值了,我们插入三条记录:

    mysql> INSERT tb3(username) VALUES('Tom');
    Query OK, 1 row affected (0.01 sec)
    
    mysql> INSERT tb3(username) VALUES('John');
    Query OK, 1 row affected (0.00 sec)
    
    mysql> INSERT tb3(username) VALUES('Zoro');
    Query OK, 1 row affected (0.00 sec)

    然后查看一下记录:

    mysql> SElECT * FROM tb3;
    +----+----------+
    | id | username |
    +----+----------+
    |  1 | Tom      |
    |  2 | John     |
    |  3 | Zoro     |
    +----+----------+
    3 rows in set (0.00 sec)

    可以看到id被自动编号成了123

     

  • 0
  • 0
  • 0
  • 3.1k
  • 请登录之后再进行评论

    登录
    单栏布局 侧栏位置: