MySQL学习8:操作数据表(二)

       接着上一篇博客,这一次我们初步了解一些MySQL数据库中的约束。

       六自动编号

       AUTO_INCREMENT

       自动编号的字段,必须与主键组合使用。默认情况下,起始值为1,每次的增量为1。

       例子:

       CREATE TABLE tb3(

            id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,

            username VARCHAR(30) NOT NULL

       );

       INSERT tb3(username) VALUES('Tom');

       INSERT tb3(username) VALUES('Rose');

       INSERT tb3(username) VALUES('John');

       INSERT tb3(username) VALUES('James');


       SHOW COUMNS FROM tb3;

       SELECT * FROM tb3;


       结果中显示,我们定义的自动编号字段id是按照插入的记录的多少来进行从1开始增1自动编号的。

      七初涉主键约束

       PRIMARY KEY

       主键约束要求:每张数据表只能存在一个主键;主键保证记录的唯一性;主键自动为NOT NULL。

       AUTO_INCREMENT字段必须定义为主键,而主键不一定与AUTO_INCREMENT一起使用。

AUTO_INCREMENT字段我们不用赋值,但是主键字段可以允许自行赋值,但是不允许存在两个相同的值。

       例子:

       CREATE TABLE tb4(

           id SMALLINT UNSIGNED PRIMARY KEY,

           username VARCHAR(30) NOT NULL

       );

       INSERT tb4 VALUES(4,'Tom');

       INSERT tb4 VALUES(22,'Rose');

     

       SHOW COUMNS FROM tb4;

       SELECT * FROM tb4;


       再来测试是否可以允许插入有两个相同id字段的值的记录呢?

       INSERT tb4 VALUES(22,'John');


       八初涉唯一主键

       UNIQUE KEY

       唯一约束要求:唯一约束可以保证记录的唯一性;唯一约束的字段可以为空值(NULL);每张数据表可以存在多个

唯一约束。

       例子:

       CREATE TABLE tb5(

          id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,

          username VARCHAR(30) NOT NULL UNIQUE KEY,

          age TINYINT UNSIGNED

       );

      SHOW COLUMNS FROM tb5;

      INSERT tb5(username,age) VALUES('Tom',22);


      我们再次插入相同的记录:

       INSERT tb5(username,age) VALUES('Tom',22);


       九初涉默认约束

       DEFAULT

       当插入记录时,如果没有明确为字段赋值,则自动赋值为默认值。

       例子(下面的1表示男,2表示女,3表示未知):

       CREATE TABLE tb6(

           id SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,

           username VARCHAR(30) NOT NULL UNIQUE KEY,

           sex ENUM('1','2','3') DEFAULT '3'

       );

       SHOW COLUMNS FROM tb6;


       INSERT tb6(username) VALUES('Tom');

       SELECT * FROM tb6;


      十扩展

       如果AUTO_INCREMENT和UNIQUE KEY放在一起使用就会变成了PRIMARY KEY,这是不是存在呢?

       例子:

       CREATE TABLE tb7(

          id SMALLINT UNSIGNED AUTO_INCREMENT UNIQUE KEY,

          username VARCHAR(30) NOT NULL 

       );

       SHOW COLUMNS FROM tb7;


      验证了一下,确实存在。

      接下来,会详细的介绍MySQL数据库的约束和操作数据表的知识。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值