1、增:插入数据
INSERT关键字可以插入新的行到数据库表中:
  • 插入完整的行
  • 插入行的一部分
  • 插入多行
  • 插入某些查询的结果

基本的INSERT语句是:
INSERT INTO R(A1, A2, ..., An) VALUES (V1, V2, ..., Vn); 
1
 
1
INSERT INTO R(A1, A2, ..., An) VALUES (V1, V2, ..., Vn); 

1.1 插入完整的行

如下例:
INSERT INTO Customers
VALUES
(
NULL,
'Pep E. LaPew',
'100 Main Street',
'Los Angeles',
'CA',
'90046',
'USA',
NULL,
NULL
)
13
 
1
INSERT INTO Customers
2
VALUES
3
(
4
NULL,
5
'Pep E. LaPew',
6
'100 Main Street',
7
'Los Angeles',
8
'CA',
9
'90046',
10
'USA',
11
NULL,
12
NULL
13
)
  • 每个列必须提供一个值,没有的话也应该填NULL
  • 插入内容必须以它们在表中定义出现的次序填充

这种语法简单,但是并不安全,而且繁琐,尽量避免使用。

1.2 插入行的一部分

如下例:
INSERT INTO customers
(
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country
)
VALUES
(
'Pep E. LaPew',
'100 Main Street',
'Los Angeles',
'CA',
'90046',
'USA'
);
17
 
1
INSERT INTO customers
2
(
3
cust_address,
4
cust_city,
5
cust_state,
6
cust_zip,
7
cust_country
8
)
9
VALUES
10
(
11
'Pep E. LaPew',
12
'100 Main Street',
13
'Los Angeles',
14
'CA',
15
'90046',
16
'USA'
17
);
  • 这种方式可以替代之前的整行插入,只需要你把所有的列填完
  • VALUES必须跟SQL中制定的匹配列次序相同
  • VALUES不需要跟表中列的次序相同
  • 省略的列必须满足一定条件,即允许为NULL或表中有默认值设定

1.3 插入多个行

如下例:
INSERT INTO customers
(
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country
)
VALUES
(
'Pep E. LaPew',
'100 Main Street',
'Los Angeles',
'CA',
'90046',
'USA'
),
(
'M Martian',
'42 Galaxy Way',
'New York',
'NY',
'11213',
'USA'
);
25
 
1
INSERT INTO customers
2
(
3
cust_address,
4
cust_city,
5
cust_state,
6
cust_zip,
7
cust_country
8
)
9
VALUES
10
(
11
'Pep E. LaPew',
12
'100 Main Street',
13
'Los Angeles',
14
'CA',
15
'90046',
16
'USA'
17
),
18
(
19
'M Martian',
20
'42 Galaxy Way',
21
'New York',
22
'NY',
23
'11213',
24
'USA'
25
);

1.4 插入某些查询的结果

这种方式是所谓的INSERT SELECT,顾名思义,即INSERT语句和SELECT语句组成的。如下例:
INSERT INTO
customers
(
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country
)
SELECT
cust_address,
cust_city,
cust_state,
cust_zip,
cust_country
FROM
custnew;
17
 
1
INSERT INTO 
2
  customers
3
  (
4
  cust_address,
5
  cust_city,
6
  cust_state,
7
  cust_zip,
8
  cust_country
9
  )
10
SELECT
11
  cust_address,
12
  cust_city,
13
  cust_state,
14
  cust_zip,
15
  cust_country
16
FROM
17
  custnew;
  • 例中INSERT和SELECT列名虽然相同,但是并没有强制要求,它仍然是根据次序位置来填充数据的



2、删:删除数据

基本语句:
DELETE FROM R WHERE <选择条件>;
1
 
1
DELETE FROM R WHERE <选择条件>;



3、改:更新数据

基本语句:
UPDATE R SET A1=E1, A2=E2, ..., An=En WHERE <选择条件>;
 
1
UPDATE R SET A1=E1, A2=E2, ..., An=En WHERE <选择条件>;

《MySQL必知必会》[03] 表数据的增删改的更多相关文章

  1. Django框架之第二篇--app注册、静态文件配置、form表单提交、pycharm连接数据库、django使用mysql数据库、表字段的增删改查、表数据的增删改查

    本节知识点大致为:静态文件配置.form表单提交数据后端如何获取.request方法.pycharm连接数据库,django使用mysql数据库.表字段的增删改查.表数据的增删改查 一.创建app,创 ...

  2. PreparedStatement实现表数据的增删改 & 封装数据库链接和关闭操作

    PreparedStatement实现表数据的增删改 PreparedStatementUpdateTest package com.aff.PreparedStatement; import jav ...

  3. Mysql学习笔记(三)对表数据的增删改查。

    正文内容. 这一部分是最简单的,也是最麻烦的.简单是因为其实只包括增删该插四个部分.大体上看,增加数据.删除数据.修改数据.查询数据都不麻烦啊,我们日常都是常用的.这个谁不会呢?以前在培训机构学mys ...

  4. MySQL表数据的增删改查

    1.增 INSERT INTO tb VALUES(v1,v2,v3...); INSERT INTO tb (field1,field2...) VALUES(v1,v2...); INSERT I ...

  5. MySQL必知必会-官方数据库表及SQL脚本导入生成

    最近在复习SQL语句,看的是MySQL必知必会这本书,但是发现附录中只有表设计,没有表的具体数据.所以在学习相应的语句中体验不是很好,去网上查了数据库的内容,自己慢慢导入到了数据库中.把表放出来作为参 ...

  6. 《MySQL必知必会》官方提供的数据库和表

    数据用于配合<MySQL必知必会>(MySQL Crash Course)这本书使用,配套SQL文件也可在Ben Forta网站下载. Ben Forta网址:http://forta.c ...

  7. MySql必知必会实战练习(三)数据过滤

    在之前的博客MySql必知必会实战练习(一)表创建和数据添加中完成了各表的创建和数据添加,MySql必知必会实战练习(二)数据检索中介绍了所有的数据检索操作,下面对数据过滤操作进行总结. 1. whe ...

  8. 【SQL必知必会笔记(1)】数据库基础、SQL、MySQL8.0.16下数据库、表的创建及数据插入

    文章目录 1.数据库基础 1.1 数据库(database) 1.2 表(table) 1.3 列和数据类型 1.4 行 1.5 主键 2.什么是SQL 3.创建后续练习所需数据库.表(MySQL8. ...

  9. 《MySQL必知必会》过滤数据,数据过滤(where ,in ,null ,not)

    <MySQL必知必会>过滤数据,数据过滤 1.过滤数据 1.1 使用 where 子句 在SEL ECT语句中,数据根据WHERE子句中指定的搜索条件进行过滤. WHERE子句在表名(FR ...

随机推荐

  1. javascript多种方法实现数组去重

    先说说这个实例的要求:写一个方法实现数组的去重.(要求:执行方法,传递一个数组,返回去重后的新数组,原数组不变,实现过程中只能用一层循环,双层嵌套循环也可写,只做参考): 先给初学者解释一下什么叫数组 ...

  2. linux基础简答(1)

    linux基础简答题 扇区及其4个主分区的原因 在第一个扇区中,保存着引导记录和分区信息,容量为512bytes,主引导记录(相当于MBR)446 bytes,分区表64bytes,记录每个分区信息要 ...

  3. 菜鸟的Xamarin.Forms前行之路——按钮的按下抬起事件的监控(可扩展至其他事件)

    提问:监控按钮的点击事件,可以通过按钮的Click事件,或者Command绑定,那么如何监控按钮的按下与抬起,或者移动,长按,双击等事件? 解决方法:各个平台自定义渲染依赖注入. 共享项目PCL: 1 ...

  4. 80C51学习 蜂鸣器

    /* 蜂鸣器分为有源和无源 其中有源是指有振荡源 ULN2003 达林顿管 输入输出反向放大 */ #include "reg52.h" typedef unsigned int ...

  5. Linux+.NetCore+Nginx搭建集群

    本篇和大家分享的是Linux+NetCore+Nginx搭建负载集群,对于netcore2.0发布后,我一直在看官网的文档并学习,关注有哪些新增的东西,我,一个从1.0到2.0的跟随者这里只总结一句话 ...

  6. [2016-07-15]结合命令行工具awk和多行文本编辑器快速生成DataSeed代码

    目标:根据业务提供的两份数据,生成DataSeed代码 SampleDataA 上海 华东一线 上饶 华东四线 中山 华南二线 临汾 华北四线 临沂 华东二线 SampleDataB 上海 1D04E ...

  7. HDMI转MIPI DSI芯片方案TC358779XBG

    型号:TC358779XBG功能:HDMI1.4转MIPI DSI通信方式:IIC分辨率:1920*1080电源:3.3/1.8/1.2封装形式:BGA80深圳长期现货 ,提供技术支持,样品申请及规格 ...

  8. MyBatis框架——动态SQL、缓存机制、逆向工程

    MyBatis框架--动态SQL.缓存机制.逆向工程 一.Dynamic SQL 为什么需要动态SQL?有时候需要根据实际传入的参数来动态的拼接SQL语句.最常用的就是:where和if标签 1.参考 ...

  9. 处理 Vue 单页面应用 SEO 的另一种思路

    vue-meta-info 官方地址: monkeyWangs/vue-meta-info (设置vue 单页面meta info信息,如果需要单页面SEO,可以和 prerender-spa-plu ...

  10. ADO.NET中SQL Server数据库连接池

    连接到数据库服务器通常由几个需要很长时间的步骤组成. 必须建立物理通道(例如套接字或命名管道),必须与服务器进行初次握手,必须分析连接字符串信息,必须由服务器对连接进行身份验证,必须运行检查以便在当前 ...