zoukankan      html  css  js  c++  java
  • 插入记录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…

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

     

     

  • 相关阅读:
    velocity导出word报错解决
    Java解析网段下包含的所有IP地址
    ORACLE中的DECODE函数
    td标签内的内容过长导致的问题的解决办法
    android 知识点
    geekNews 学习总结
    android 操蛋的gradle
    rxJava rxandroid 学习
    线程池ThreadPoolExecutor
    j2ee tomcat 部署学习
  • 原文地址:https://www.cnblogs.com/zlslch/p/6541334.html
Copyright © 2011-2022 走看看