插入记录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. 通过 KVM+virt-manager配置双屏虚拟机(两套键盘。鼠标)

    感谢朋友支持本博客,欢迎共同探讨交流,因为能力和时间有限,错误之处在所难免,欢迎指正! 假设转载.请保留作者信息. 博客地址:http://blog.csdn.net/qq_21398167 原博文地 ...

  2. js mudules.js

    var InsertRow={ isMoveRow:false, // 是否存在动态移动行 curSelRowIndex:"", // 当前选中行序号 prevSelRowInde ...

  3. Scala语言

    一.Scala概述 Scala简介 Scala是一种针对JVM将函数和面向对象技术组合在一起的编程语言.所以Scala必须要有JVM才能运行,和Python一样,Scala也是可以面向对象和面向函数的 ...

  4. VMware虚拟机的CentOS7安装Nginx后本机用CentOS的IP地址无法访问

    因为CentOS7的默认防火墙改成了Firewall,不再使用iptables为默认防火墙了 所以需要使用以下命令添加80端口 firewall-cmd --zone=public --add-por ...

  5. validform

    一.validform是什么?            validform是一款智能的表单验证js插件,它是基于jQuery库与css,我们只需要把表单对象放入,             就可以对整个表 ...

  6. transient修饰符的作用

    transient修饰符的作用: entity实体类: package com.baidu.entity; import com.fasterxml.jackson.annotation.JsonIg ...

  7. VS2012数据绑定控件DataGridView和DataGrid

    在做Windows窗体上ADO.NET数据绑定试验的时候,发现实例中提到的一些控件在vs2012的工具箱中找不到,开始以为是工具箱中的控件太多没看到,结果重新找还是没找到,难道是因为控件升级了?yes ...

  8. (转载)项目实战工具类(一):PhoneUtil(手机信息相关)

    项目实战工具类(一):PhoneUtil(手机信息相关)   可以使用的功能: 1.获取手机系统版本号 2.获取手机型号 3.获取手机宽度 4.获取手机高度 5.获取手机imei串号 ,GSM手机的 ...

  9. Android官方培训课程中文版(v0.9.7)

    Android官方培训课程中文版(v0.9.7) Google Android团队在2012年的时候开设了Android Training板块 - http://developer.android.c ...

  10. Java绘图技术基础

    public class Demo1 extends JFrame{ MyPanel mp=null; public static void main(String[] args){ Demo1 de ...