主键、唯一键、自动连续编号、默认值

  1. 创建表时设置主键、唯一键、自动连续编号、默认值

    1. 创建表 actor:

      create table actor ( id int primary key auto_increment, phone varchar(11) unique key, remark varchar(10) default "著名演员" );
      mysql> create table actor ( id int primary key auto_increment, phone varchar(11) unique key, remark varchar(10) default "著名演员" );
      Query OK, 0 rows affected (5.911 sec)
      
      mysql>
                                      
      int 是整数数据类型;
      primary key 是主键:不能有重复的值且不允许没有输入值 ( NULL );
      unique key 是唯一键:不能有重复的值且允许没有输入值;
      auto_increment 是自动连续编号;
      default 是设置默认值.

    2. 向表 actor 添加 3 条记录:
      insert into actor ( phone ) values ( "18812345678" );
      insert into actor ( phone ) values ( "19912345678" );
      insert into actor ( phone ) values ( "16612345678" );
      mysql> insert into actor ( phone )  values  ( "18812345678" );
      Query OK, 1 row affected (1.150 sec)
      
      mysql> insert into actor ( phone )  values  ( "19912345678" );
      Query OK, 1 row affected (0.449 sec)
      
      mysql> insert into actor  ( phone )  values  ( "16612345678" );
      Query OK, 1 row affected (0.358 sec)
      
      mysql>
                                                     
      显示所有的记录:
      mysql> select * from actor;
      +----+-------------+----------+
      | id | phone       | remark   |
      +----+-------------+----------+
      |  1 | 18812345678 | 著名演员 |
      |  2 | 19912345678 | 著名演员 |
      |  3 | 16612345678 | 著名演员 |
      +----+-------------+----------+
      3 rows in set (0.010 sec)
      
      mysql>
                                      

    3. 显示表 actor 的布局:
      describe actor;
      mysql> describe actor;
      +--------+-------------+------+-----+----------+----------------+
      | Field  | Type        | Null | Key | Default  | Extra          |
      +--------+-------------+------+-----+----------+----------------+
      | id     | int         | NO   | PRI | NULL     | auto_increment |
      | phone  | varchar(11) | YES  | UNI | NULL     |                |
      | remark | varchar(10) | YES  |     | 著名演员 |                |
      +--------+-------------+------+-----+----------+----------------+
      3 rows in set (0.022 sec)
      
      mysql>
                                      
    4. 设置连续编号的初始值:
      alter table actor auto_increment=88;
      mysql> alter table actor  auto_increment=88;
      Query OK, 0 rows affected (3.964 sec)
      Records: 0  Duplicates: 0  Warnings: 0
      
      mysql>
                                      
      向表 actor 添加 3 条记录:
      insert into actor ( phone ) values ( "15012345678" );
      insert into actor ( phone ) values ( "15112345678" );
      insert into actor ( phone ) values ( "15212345678" );
      mysql> insert into actor ( phone )  values  ( "15012345678" );
      Query OK, 1 row affected (0.824 sec)
      
      mysql> insert into actor ( phone )  values  ( "15112345678" );
      Query OK, 1 row affected (0.826 sec)
      
      mysql> insert into actor  ( phone )  values  ( "15212345678" );
      Query OK, 1 row affected (0.260 sec)
                                                     
      显示所有的记录:
      mysql> select * from actor;
      +----+-------------+----------+
      | id | phone       | remark   |
      +----+-------------+----------+
      |  1 | 18812345678 | 著名演员 |
      |  2 | 19912345678 | 著名演员 |
      |  3 | 16612345678 | 著名演员 |
      | 88 | 15012345678 | 著名演员 |
      | 89 | 15112345678 | 著名演员 |
      | 90 | 15212345678 | 著名演员 |
      +----+-------------+----------+
      6 rows in set (0.007 sec)
      
      mysql>