插入记录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','',24,1);

select  *  from  user;

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

select *  from  user;

  

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

insert   user   values(default,'Tom','',24,0);
select *  from  user;

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

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

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

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

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

select  *  from   user;

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

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

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

select   *  from user;

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

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

select   *    from   user;

  二、插入记录

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

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

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

  三、插入记录

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

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

插入记录INSERT(二十五)的更多相关文章

  1. JavaWeb学习记录(二十五)——权限管理总结

    一.面向对象思想简化数据库操作 public List<Role> getObjectsByIds(List<AdminRole> adminRoles) {        L ...

  2. Java进阶(二十五)Java连接mysql数据库(底层实现)

    Java进阶(二十五)Java连接mysql数据库(底层实现) 前言 很长时间没有系统的使用java做项目了.现在需要使用java完成一个实验,其中涉及到java连接数据库.让自己来写,记忆中已无从搜 ...

  3. Java基础学习笔记二十五 MySQL

    MySQL 在dos中操作mysql 连接mysql命令: mysql -uroot -p密码 ,连接OK,会出现mysql> 对数据库的操作 创建一个库 create database 库名 ...

  4. FreeSql (二十五)延时加载

    FreeSql 支持导航属性延时加载,即当我们需要用到的时候才进行加载(读取),支持1对1.多对1.1对多.多对多关系的导航属性. 当我们希望浏览某条订单信息的时候,才显示其对应的订单详细记录时,我们 ...

  5. 学习笔记:CentOS7学习之二十五:shell中色彩处理和awk使用技巧

    目录 学习笔记:CentOS7学习之二十五:shell中色彩处理和awk使用技巧 25.1 Shell中的色彩处理 25.2 awk基本应用 25.2.1 概念 25.2.2实例演示 25.3 awk ...

  6. [转载]Windows&nbsp;Server&nbsp;2008&nbsp;R2&nbsp;之二十五AD&nbsp;RMS信任策略

    原文地址:Windows Server 2008 R2 之二十五AD RMS信任策略作者:从心开始 可以通过添加信任策略,让 AD RMS 可以处理由不同的 AD RMS 群集进行权限保护的内容的授权 ...

  7. Bootstrap <基础二十五>警告(Alerts)

    警告(Alerts)以及 Bootstrap 所提供的用于警告的 class.警告(Alerts)向用户提供了一种定义消息样式的方式.它们为典型的用户操作提供了上下文信息反馈. 您可以为警告框添加一个 ...

  8. VMware vSphere 服务器虚拟化之二十五 桌面虚拟化之终端服务池

    VMware vSphere 服务器虚拟化之二十五 桌面虚拟化之终端服务池 终端服务池是指由一台或多台微软终端服务器提供服务的桌面源组成的池.终端服务器桌面源可交付多个桌面.它具有以下特征: 1.终端 ...

  9. WCF技术剖析之二十五: 元数据(Metadata)架构体系全景展现[元数据描述篇]

    原文:WCF技术剖析之二十五: 元数据(Metadata)架构体系全景展现[元数据描述篇] 在[WS标准篇]中我花了很大的篇幅介绍了WS-MEX以及与它相关的WS规范:WS-Policy.WS-Tra ...

随机推荐

  1. xcode5.1生成framework,支持arm64报错

    错误例如以下: ld: Assertion failed: (_machoSection != 0), function machoSection, file /SourceCache/ld64/ld ...

  2. 第二次phython作业

    第一题:编写程序,生成一个包含50个随机整数的列表,然后删除其中所有奇数.(注意保证删除操作的效率) import random x=[random.randint(0,100)for i in ra ...

  3. [LeetCOde][Java] Best Time to Buy and Sell Stock III

    题目: Say you have an array for which the ith element is the price of a given stock on day i. Design a ...

  4. SICP 习题 (1.41)解题总结

    SICP 习题1.41 看似和周边的题目没有关系,突然叫我们去定义一个叫double的过程,事实上这道题的核心还是高阶函数. 题目要求我们定义一个过程double,它以一个过程作为參数,这个作为參数的 ...

  5. AJAX入门---点滴的积累

    AJAX入门---点滴的积累 每次学习完一个内容总会写上几句话总结一下学习的内容.这不刚看完王兴魁老师讲的AJAX核心技术.如今回想梳理一下. 这套视频的内容不多,简单的解说了XMLHttpReque ...

  6. xBIM 高级02 插入复制功能

    系列目录    [已更新最新开发文章,点击查看详细]  IFC 模型中的合并和删除实体是一个非常重要的任务,因为 IFC 不是一个分层结构.它是一个复杂的结构,具有潜在的循环关系,是一个双向导航.在单 ...

  7. Visual Studio蛋疼问题解决(1)

    监视变量显示未定义标识符: VS2012在编译的时候采用了较快的编译模式,所以有些变量就显示未定义了.  解决方案:  项目->属性->c/c++->优化->改为禁用/OD  ...

  8. android之handler机制深入解析

    一.android中需要另开线程处理耗时.网络的任务,但是有必须要在UI线程中修改组件.这样做是为了: ①只能在UI线程中修改组件,避免了多线程造成组件显示混乱 ②不使用加锁策略是为了提高性能,因为a ...

  9. iOS Device Types

    ios 设备硬件名称对照表 https://support.hockeyapp.net/kb/client-integration-ios-mac-os-x-tvos/ios-device-types ...

  10. js 拼接字符串,table等

    var userTableStr=''; userTableStr +='<table width="750" height="33" border=&q ...