插入记录INSERT(二十五)

插入记录INSERT

  我们先来看第一个操作:INSERT

实际上在mysql当中一共存在着3种不同的insert语句,我们先来看第一种。它的语法结构如下:

  

  一、插入记录

INSERT [INTO] tbl_name [(col_name,…)] {VALUES | VALUE}

({expr | DEFAULT},…),(…),…

  从语法结构中我们可以看到有个可选项col_name,就是我们的列名称,如果省略掉的话,就代表所有的字段依次被赋值,接下来我们可以发现,在值当中我们既可以跟表达式也可以跟默认值,如果存在多个字段,他们之间用“逗号”分割,除此之外,我们还可以看到,在mysql的插入语句当中,可以一次性的插入多条记录,下面我们来做一个简单的演示:

 

  我们先来创建一张简单的数据表user,操作命令如下:

create   table   user(
id   smallint   unsigned  primary  key   auto_increment,
username   varchar(20)   not   null,
password     varchar(30)  not  null,
age   tinyint   unsigned   not   null  default  10,
sex  boolean
);




show columns from user;

  下面我们就按照上面的语法结构往表里插入数据,我们先来使用最简单的方式,省略掉字段名,也就是说所有字段都要赋值。

1.1注意:有一个字段比较个性,就是id字段,因为id字段是自动编号的,其实我们在为自动编号的字段赋值的时候,我们可以采用两个特殊的值,依次让其采用默认的编码方式。

  第一种:使用null来表示id为默认的自增的方式

insert   user   values(null,'Tom','123',24,1);


select  *  from  user;


insert   user   values(null,'join','456',25,1);


select *  from  user;

  

  第二种:使用default来表示id为默认的自增的方式下面我们使用default再来插入一条记录,结果证明这样也是可以的,如下图:

insert   user   values(default,'Tom','123',24,0);



select *  from  user;

 1.2注意:刚才我们为所有的字段都赋了值,如果不这样做,系统将提示我们错误,下面我们来验证一下,假设我们省掉一个字段,这个时候系统提示我们错误,如下图:

insert    user   values(null,'join','456',25);

      大概意思就是列和值的数目不匹配,所以也就是说,如果省略掉了列名的话,就要为所有的字段依次赋值

 

 

 

 

 1.3 注意  除了可以为所有的字段依次赋值之外,我们还可以插入表达式,下面我们来试验一下,假设我们把age字段修改为2*8+2,操作命令及结果如下:

insert   user   values(default,'Tom','123'',2*8+3,0);




select  *  from   user;

  除了可以写成数字表达式,还可以写成字符表达式或函数表达式。

 

 

 

 

 

 

 

 

 1.4注意  default的另一个作用default,它除了可以对刚才我们提到过的自动编号的字段起作用外,如果说某个字段赋过默认值的话,我们也可以将default赋予它,比如刚才我们的user表中的age字段,他的默认值就是10,所以说如果我们要age赋予10的话,我们既可以写个10,又可以写个default,操作命令及结果如下。

insert  user   values(default,'Tom','123',default,0);



select   *  from user;

  1.5 注意  实际上我们还可以一次性的写入多条记录,注意两个值之间要用逗号分割,操作命令及结果如下:

insert   user  values(default,'Tom','123',2*8+3,0),(null,'jack','1234',default,0);



select   *    from   user;

  二、插入记录

INSERT [INTO] tbl_name SET col_name={expr | DEFAULT},…

insert   user  set   username='jack',password='123';

  age字段存在着默认值,即使不赋值也为10,同时sex字段允许为空,所以我们可以只写这两个字段。

 

 

 

 

 

 

  三、插入记录

INSERT [INTO] tbl_name [(col_name,…)] SELECT…

  这种方法我们稍后再详细讲解。

 

 

原文地址:https://www.cnblogs.com/zlslch/p/6541334.html