DBA 1-2 字段约束条件!


DBA-Day02 

字段约束条件

mysql> use db1;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> 
mysql> 
mysql> show tables;
+------------------+
| Tables_in_db1    |
+------------------+
| 学生信息表1      |
| t2               |
+------------------+
2 rows in set (0.00 sec)

mysql> 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| db1                |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

mysql> use db1;
Database changed
mysql> 
mysql> show tables;
+------------------+
| Tables_in_db1    |
+------------------+
| 学生信息表1      |
| t2               |
+------------------+
2 rows in set (0.00 sec)

mysql> create table t14(
    -> name char(5) not null,
    -> level int(3) zerofill default 0,
    -> money tinyint (2) zerofill default 0
    -> );
Query OK, 0 rows affected (0.25 sec)

mysql> 
mysql> desc t14;
+-------+------------------------------+------+-----+---------+-------+
| Field | Type                         | Null | Key | Default | Extra |
+-------+------------------------------+------+-----+---------+-------+
| name  | char(5)                      | NO   |     | NULL    |       |
| level | int(3) unsigned zerofill     | YES  |     | 000     |       |
| money | tinyint(2) unsigned zerofill | YES  |     | 00      |       |
+-------+------------------------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

mysql> 


mysql> create table t14(
    -> name char(5) not null,
    -> level int(3) zerofill default 0,
    -> money tinyint (2) zerofill default 0
    -> );


mysql> desc t14;
mysql>  desc db1.t14;
mysql> desc db1.t14;
+-------+------------------------------+------+-----+---------+-------+
| Field | Type                         | Null | Key | Default | Extra |
+-------+------------------------------+------+-----+---------+-------+
| name  | char(5)                      | NO   |     | NULL    |       |
| level | int(3) unsigned zerofill     | YES  |     | 000     |       |
| money | tinyint(2) unsigned zerofill | YES  |     | 00      |       |
+-------+------------------------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

mysql> insert into db1.t14(name) values("bob");
Query OK, 1 row affected (0.08 sec)

mysql> select * from t14;
+------+-------+-------+
| name | level | money |
+------+-------+-------+
| null |  NULL |  NULL |
|      |  NULL |  NULL |
| bob  |   000 |    00 |
+------+-------+-------+
3 rows in set (0.00 sec)

mysql> insert into t14 values("jack",1,250)
    -> ;
Query OK, 1 row affected (0.04 sec)

mysql> select * from t14;
+------+-------+-------+
| name | level | money |
+------+-------+-------+
| null |  NULL |  NULL |
|      |  NULL |  NULL |
| bob  |   000 |    00 |
| jack |   001 |   250 |
+------+-------+-------+
4 rows in set (0.00 sec)

mysql> desc t14;
+-------+------------------------------+------+-----+---------+-------+
| Field | Type                         | Null | Key | Default | Extra |
+-------+------------------------------+------+-----+---------+-------+
| name  | char(5)                      | NO   |     | NULL    |       |
| level | int(3) unsigned zerofill     | YES  |     | 000     |       |
| money | tinyint(2) unsigned zerofill | YES  |     | 00      |       |
+-------+------------------------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

mysql> 

mysql> insert into t14 values(null,null,null);        //第一个null这是空  但是不让赋空值
ERROR 1048 (23000): Column 'name' cannot be null

mysql> insert into t14 values("null",null,null);        //第一个“null”这不是空  只是把null引起来,失去空的意思
Query OK, 1 row affected (0.31 sec)

mysql> select * from t14;


mysql> insert into t14 values("",null,null);        //"" 这不是空  这是空站位符 也是值
Query OK, 1 row affected (0.04 sec)

mysql> select * from t14;


mysql> desc t14;


mysql> insert into t14(level,money) values(2,19);            ##// name 字段必须赋予值,  默认 no null  不能为空
ERROR 1364 (HY000): Field 'name' doesn't have a default value


再看t15表     #// name字段   默认 空白符   “ ”里面是空白的意思  不是空的意思
mysql> create table t15( name char(5) not null default"", level int(3) zerofill default 0, money tinyint (2) zerofill default 0 );


mysql> desc t15;

mysql> insert into t15(level,money) values(2,19);

mysql> select * from t15;

mysql> select * from t15;
+------+-------+-------+
| name | level | money |
+------+-------+-------+
|      |   002 |    19 |
+------+-------+-------+
1 row in set (0.00 sec)

mysql> 
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值