username not null 没有默认值/有默认值   insert不插入username字段 均不报错

2014年07月23日21:05    百科369


MySQL为数据表的指定字段插入数据

为数据表的指定字段插入数据,就是在INSERT语句中只向部分字段中插入值,而其它字段的值为数据表定义时的默认值。

基本的语法格式如下:

INSERT INTO 表名(字段1,字段2,...,字段m) VALUES(值1,值2,...,值m);
  • 字段1,字段2,...,字段m:表示数据表中的字段名称,此处指定数据表的部分字段的名称。
  • 值1,值2,...,值m:表示指定字段的值,每个值与相应的字段对应。

实例1

1. 向student表的xuesheng字段和yuwen字段插入数据。INSERT语句的代码如下:

mysql>INSERT INTO student(xuesheng,yuwen) VALUES('王媛媛',88);

插入数据的操作效果如下图所示:

上图中代码执行的结果显示,记录插入成功。

2. 执行SELECT语句查询student表。如下图所示:

3. 上图中代码执行的结果显示,记录已经插入成功。但是,shuxue字段和yungyu字段都为空值(NULL)。执行SHOW CREATE TABLE语句查看student表的详细结构。如下图所示:

从上图中代码执行的查询结果可以看出,shuxue字段和yingyu字段的默认值为空值(NULL),因为这两个字段没有插入值,数据库系统自动 为其插入了该字段定义时的默认值,所以这两个字段的值才为空值。如果默认值设置为了某一个具体的值,那么这两个字段的值就会显示为那一个具体的值。

另外,我们虽然没有插入id字段的值,但是该字段自动添加了一个整数值6。这是因为id字段设置为了表的主键,虽然不能为空,但是数据库系统会自动为该字段插入一个自增的序列值。

提示

没有赋值的字段,数据库系统会为其插入一个默认值。这个默认值是在创建数据表的时候定义的。如上面的shuxue字段和yingyu字段的默认值为NULL。如果某个字段没有设置默认值,而且是非空,那就必须为其赋值。不然,数据库系统会提示一条警告信息。


实例2

这种方式同样可以随意设置字段的顺序,而不需要按照数据表定义时的顺序进行插入数据。

1. 向student表中的id、xuesheng和yingyu字段插入数据。INSERT语句中,这3个字段的顺序可以任意排列,代码如下:

mysql>INSERT INTO student(yingyu,id,xuesheng) VALUES(99,4,'杨萍');

操作效果如下图所示:

上图中代码执行的结果显示,记录插入成功。

2. 执行SELECT语句查询student表。如下图所示:

上图中代码执行的结果显示,记录已经成功插入。

MySQL为数据表的指定字段插入数据的更多相关文章

  1. Oracle中使用游标转换数据表中指定字段内容格式(拼音转数字)

    应用场景:将数据表TB_USER中字段NNDP的内容中为[sannanyinv]转换为[3男1女] 主要脚本:一个游标脚本+分割字符串函数+拼音转数字脚本 操作步骤如下: 1.创建类型 create ...

  2. MySQL向数据库表的某字段追加数据

    使用CONCAT()函数 mysql向表中某字段后追加一段字符串(field为字段名): update table_name set field=CONCAT(field,'str',) mysql ...

  3. mysql中大数据表alter增加字段报错:"1034 Incorrect key file for table 'table_name'; try to repair it"

    mysql中大数据表alter增加字段报错:"1034 Incorrect key file for table 'table_name'; try to repair it" 现 ...

  4. Oracle使用游标查询指定数据表的所有字段名称组合而成的字符串

    应用场合:参考网上查询数据表的所有字段名代码,使用游标生成指定单个表的所有字段名跟逗号组成的用于select  逗号隔开的字段名列表 from字符串等场合. 查询结果输出如下: 当前数据表TB_UD_ ...

  5. Oracle中使用游标获取指定数据表的所有字段名对应的字符串

    操作步骤:打开PLSQL Developer后,直接执行下面的语句就可以出来 --Oracle中使用游标获取指定数据表的所有字段名对应的字符串 declare mytablename VARCHAR( ...

  6. C# 如何获取SQL Server 中指定数据表的所有字段名和字段类型

    如何获取指定数据表的所有字段名和字段类型.SqlConnection.GetSchema方法有2个重载形式,获取指定数据表的所有字段名和字段类型的秘密就在GetSchema (String, Stri ...

  7. MySQL 中的数据库名称、数据表名称、字段名称

    如何查询Oracle,Sql Server,MySQL 中的数据库名称.数据表名称.字段名称 分类: Database2012-09-24 22:16 7034人阅读 评论(0) 收藏 举报 数据库s ...

  8. MySQL实验1: 新建一个名为 library 的数据库,包含 book、reader 两张表,根据自己的理解安排表的内容并插入数据。

    数据表(table)简称表,它是数据库最重要的组成部分之一.数据库只是一个框架,表才是实质内容. 实验: 新建一个名为 library的数据库,包含 book.reader两张表,根据自己的理解安排表 ...

  9. mysql中对表操作----为所有列插入数据

         为所有列插入数据 通常情况下,向数据表中插入数据应包含表中所有字段,也就是为表中所有字段添加数据,为表中所有字段添加数据有以下两种方式. 1.INSERT语句中指定所有字段名 使用INSER ...

随机推荐

  1. 笔记本_hp

    1.技术支持 http://support.hp.com/cn-zh 2.搜到的信息:“http://forum.51nb.com/thread-1080424-1-1.html” Product N ...

  2. C++中关于new及内存地址的思考

    OJ题刷多了,每次都是直接分配内存,那么,你还记得怎么动态分配内存吗? ———————————————————————————————————— 我们知道,使用malloc/calloc等分配内存的函 ...

  3. poj3525Most Distant Point from the Sea(半平面交)

    链接 求凸多边形内一点距离边最远. 做法:二分+半平面交判定. 二分距离,每次让每条边向内推进d,用半平面交判定一下是否有核. 本想自己写一个向内推进..仔细一看发现自己的平面交模板上自带.. #in ...

  4. Android alertdialog实现确认退出

    package com.example.alertdialog; import android.os.Bundle; import android.app.Activity; import andro ...

  5. python中模块sys与os的一些常用方法

    sys模块提供了访问或操作与python解释器相关方法与对象. 我们就列举出常用到的知识,以后,随着学习,不断补充. 几个常用到的动态对象: sys.argv,这是一个列表,它包含了所有传递给脚本的命 ...

  6. Objective-C与C++的区别

    1.两者的最大相同:都是从C演化而来的面相对象语言,两者都兼容标准C语言 2.两者的最大不同:Objective-C提供了运行期动态绑定机制,而C++是编译静态绑定,并且通过嵌入类(多重继承)和虚函数 ...

  7. datagrid实现行的上移和下移

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  8. C#_观察者模式

    假设有一个软件公司,每当有新产品推出,就把信息通知到一些客户. 把通知这个动作抽象成一个接口. public interface IService { void Notif(); } 客户如果想获得通 ...

  9. iOS 细碎知识整理

    1centerX,即x轴的中点 centery,即y轴的中点

  10. 按钮靠右css小结

    按钮靠右 style="float:right"  ,多按钮排版会相反 按钮内的字体靠右 style="text-align:right" 按钮离右边框距离 s ...