Mysql插入数据
插入数据:INSERT [INTO] tab_name[(col_name,…)] VALUES(val,…)
上一篇创建了一个数据库mm1,流程如下:
首先我们创建了一个数据表mm1,
mysql> create table if not exists mm1(
-> username VARCHAR(20),
-> age TINYINT UNSIGNED,
-> salary FLOAT(8,2) UNSIGNED);
查看我们的表结构:
mysql> show columns from mm1;
+———-+———————+——+—–+———+——-+
| Field | Type | Null | Key | Default | Extra |
+———-+———————+——+—–+———+——-+
| username | varchar(20) | YES | | NULL | |
| age | tinyint(3) unsigned | YES | | NULL | |
| salary | float(8,2) unsigned | YES | | NULL | |
+———-+———————+——+—–+———+——-+
一、往数据库插入数据有两种方式
- 1、不指定插入的列,这里就要把所有列的数据填写进去,
例如s:mysql> insert mm1 values(‘tom’,35,8979.2);
然后我们查看我们是否添加进数据表数据,mysql> select * from mm1;(很明显已经插入进去数据)如下图:
- 2、我们看到[(col_name,…)],是被中括号包着的,也就是说可以省略,但是如果省略,你插入的数据就是为所有列插入数据。我们这里使用它,制定列来添加数据,
例如:mysql> insert mm1(username,salary) values(‘laowang’,58998);点击回车如下:
,然后我们查看是否输入进去,我们给两个列进行了赋值,其中age,因我们没有指定,所以是null。
二、非空判断
我们平常写代码的时候,总是被提示,这个不能为空,那个不能为空,那么我们数据库怎么设置提示,在数据库中,那些数据在以后必须赋值,不能为空。
- NULL ,字段可以为空!
- NOT NULL ,字段不能为空。
- 上面两个情况是不能同时使用的。
我们创建一个mm2数据表,插入两列,其中username,不能为空,age 可以为空。如下:
Query OK, 0 rows affected (0.11 sec)//—创建成功
然后我们查看我们创建的数据表,show columns from mm2;
mysql> show columns from mm2;
1、我们插入数据:insert mm2 values(‘TOM’,NULL),因为age是可以为空,所以添加成功;
然后我们查看一下我们的数据表内容
mysql> select * from mm2;
+———-+——+
| username | age |
+———-+——+
| TOM | NULL |
+———-+——+
1 row in set (0.00 sec)
2、我们插入数据:insert mm2 values(‘TOM’,NULL),因为username是不能为null,所以添加失败;
:mysql> insert mm2 values (NULL,23);
ERROR 1048 (23000): Column ‘username’ cannot be null
三、自动排序(AUTO_INCREMENT)
- 1、自动编号,且必须于主键想结合使用
- 2、默认情况下,起始值为1,每次的增加量为1
例如:我们添加一个数据表,并添加自动排序,不过没有主键,这时候,数据表就会创建失败。
四、主键约束(primary key )
- 每张数据表只存在一个主键
- 主键保证记录的唯一性
- 主键自动为NOT NULL
- 这里注意,AUTO_INCREMENT 必须和主键一起使用,但是主键不一定非要和AUTO_INCREMENT一起
例如:
1、还是继续创建mm2数据表,并添加主键
2、插入几条数据,来验证是否自动进行排序,如下图:
上面所示:进行了自动排序。
3、我们上面提到了AUTO_INCREMENT 必须和主键一起使用,但是主键不一定非要和AUTO_INCREMENT一起。这里的意思就是,我们
- 添加一个数据表mm3,
mysql> create table mm3(
-> id SMALLINT UNSIGNED KEY,
-> username VARCHAR(20) NOT NULL
-> );
添加两条数据,并制定id的编号。并且验证。如下图
如果,id的编号,输入为一样,就会报错,如下图,(我们已经添加过ID的编号22,如果再添加就会报错)
五、唯一约束(unique key )
。唯一约束
。唯一约束可以保证记录的唯一性
。唯一约束的字段可以为空值(null)
。每张数据表可以攒在多个唯一约束 (注意,主键约束只允许出现一次)
例如:
1、我们在数据库写一个数据表mm3,ID参数我们用主键约束,username我们用唯一约束,如图一:
2、我们查看下我们创建的数据表,如图02
3、向数据库写入数据,第一次成功,第二次就会提示如下错误,03(告诉我们,数据表中已经有了zhang,当然你还可以为其他的参数添加唯一约束,一张表可以存在多个)
六、默认约束(default)
当插入记录时,如果没有明确的为字段复制,则自动赋值默认值。
1、创建一个数据表tb6,里面有三个参数,其中性别sex,写了三个选项,1:男,2:女,3:默认。给她设为默认3.如图
2、查看数据表,会发现,默认已经是3,我们向数据表中添加数据,就会发现,我们不给sex设置参数的时候,sex参数就会被设为默认数值3,如图:
3、如果向数据表中添加一个username的值,但是不指定其sex,这个时候他会在数据表中默认生产数据3
4、所谓默认,其实就是给参数设置一个默认值,在不指定具体数值时为其复制。