• 中文
    • 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
    • 2.9k
    • 请登录之后再进行评论

      登录

      赞助本站

      • 支付宝
      • 微信
      • QQ

      感谢一直支持本站的所有人!

      单栏布局 侧栏位置: