本文献给与作者一样不断地在追求梦想的小伙伴!

INSERT插入数据 UPDATE更新数据 DELETE删除数据 SELECT查看数据
增删改查=CRUD=CREATE READ UPDATE DELETE

1.INSERT 语句为表中所有字段添加数据

(1)可以指定所有字段名添加数据
(2)可以不指定字段名添加数据
(3)可以指定部分字段添加数据

(1)指定所有字段名添加数据

  1. 语法:
  2. INSERT INTO 表名(字段名1,字段名2,...)
  3. VALUES(值1,值2,....);

注意:
此处表名后必须列出表中所有字段的名称;
每次添加时字段名的顺序可以不一致;
“值 1,值 2,……”表示每个字段的值,每个值的顺序、类型必须与对应的字段相匹配。

  1. //创建lesson001库,并在其中创建student表
  2. CREATE DATABASE lesson001;
  3. USE lesson001;
  4. CREATE TABLE student(
  5. id INT(4),
  6. name VARCHAR(20) NOT NULL,
  7. grade FLOAT
  8. );
  9. //使用 INSERT 语句向 student 表中插入一条数据
  10. INSERT INTO student(id,name,grade)
  11. VALUES(1,'zhangsan',77.3);
  12. //使用 INSERT 语句向 student 表中插入多条数据
  13. INSERT INTO student(name,id,grade)
  14. VALUES('lisi',2,98),('cen',3,99),('xintin',4,98.9);
  15. //使用 SELECT 语句查看 student 表中的数据
  16. SELECT*FROM student;

(2)不指定字段名添加数据

  1. 语法:
  2. INSERT INTO 表名 VALUES(值 1,值 2,……);

注意:
由于 INSERT 语句中没有指定字段名,添加的值的顺序必须和字段在表中定义的顺序相同
其余注意事项参照第一种

  1. INSERT INTO student
  2. VALUES(5,'mingming',87);

(3)指定部分字段添加数据

注意:
语法有两种一种与第一种类似,只是不需列出所有字段名
其余注意事项参照第一种

sql 语法二: INSERT INTO 表名 SET 字段名 1=值 1[,字段名 2=值 2,……]

  1. //方法一:
  2. INSERT INTO student(id,name)
  3. VALUES(6,'qingqing');
  4. //方法二:向指定部分字段添加数据
  5. INSERT INTO student
  6. SET id=6,name='qingqing'; //未被添加数据的字段保持为定义时的默认值

2.使用 UPDATE 语句更新表中数据

语法:
UPDATE 表名 SET 字段名 1 = 值 1[,字段名 2 = 值 2,……] [WHERE 条件表达式]

(1)UPDATE更新部分数据

使用WHERE子句来指定更新记录的条件

sql> SELECT*FROM student WHERE id=1;

sql> UPDATE sdudent SET name='nini',grade=90 WHERE id=1;
注意:
如果表中有多条记录满足 WHERE 子句中的条件表达式,则满足条件的记录都会发生更新。sql> UPDATE student SET grade=99 WHERE id<10;

(2)UPDATE更新全部数据

未使用WHERE子句来指定更新记录的条件,即会更新某字段的所有数据。
如图:

3.使用 DELETE 语句来删除表中的记录

(1)、 DELETE 删除部分数据

WHERE子句判断条件与UPDATE时用法相似

语法:
DELETE FROM 表名 [WHERE 条件表达式]
示例:
DELETE FROM student WHERE id<5;

(2). DELETE 删除全部数据

  1. 语法:
  2. DELETE FROM student;

与UPDATE更新全部数据类似

4.使用TRUNCATE删除表中所有的记录

语法:
TRUNCATE TABLE 表名;

  1. //创建表并以id为主键
  2. CREATE TABLE tab_truncate(
  3. id INT(4) PRIMARY KEY AUTO_INCREMENT, //id 字段值设置了 AUTO_INCREMENT,id 字段的默认初始值是 1,在每次添加记录时系统会为该字段 自动添加值,即该字段值会自动加 1。
  4. name VARCHAR(10),
  5. sex CHAR(5)
  6. );
  7. //添加数据
  8. INSERT INTO tab_truncate(name,sex)
  9. VALUES('nini','男'),('titi','女'),('mimi','男');
  10. SELECT*FROM tab_truncate;//查看数据
  11. TRUNCATE TABLE tab_truncate;//使用TRUNCATE删除表中所有的记录
  12. SELECT * FROM tab_truncate; //查看数据
  13. //添加数据,发现id又是从1开始递增
  14. INSERT INTO tab_truncate(name,sex)
  15. VALUES('nini','男'),('titi','女'),('mimi','男');
  16. SELECT * FROM tab_truncate;
  17. DELETE FROM tab_truncate;
  18. //添加数据
  19. INSERT INTO tab_truncate(name,sex)
  20. VALUES('nini','男');
  21. SELECT * FROM tab_truncate;//发现id是从删除前最大值+1开始递增

总结TRUNCATE与DELETE的区别:
1.使用 TRUNCATE 语句删除表中的数据后,再次向表中添加记录时,自动增加字段的默认初始值重 新由 1 开始,而使用 DELETE 语句删除表中所有记录后,再次向表中添加记录时,自动增加字段的值为删除时该字段的最大值加 1。
2.使用 DELETE 语句时,每删除一条记录都会在日志中记录,而使用 TRUNCATE 语句时,不会在 日志中记录删除的内容,因此 TRUNCATE 语句的执行效率比 DELETE 语句高。
3.、DELETE 语句后面可以跟 WHERE 子句,通过指定 WHERE 子句中的条件表达式只删除满足条件的部分记录也可以不跟WHERE 子句,而 TRUNCATE 语句只能用于删除表中的所有记录 。
4.DELETE 语句是 DML 语句,TRUNCATE 语句通常被认为是 DDL 语句。

DELETE与TRUNCATE的比喻:
将DELETE与TRUNCATE执行性质看作‘伐树’,DELETE是用斧头将树的枝叶砍掉最后砍倒树干而TRUNCA则是用挖掘机将树连根拔起,砍倒的树仍然可以从树根上生长出幼苗,而后者却只能重新生长出幼苗。

想复习《mySQL数据库与表的基本操作》的小伙伴可以阅读这篇哦!

mySQL初学者一定要掌握的数据操纵的更多相关文章

  1. mySQL初学者需要掌握的【数据库与表的基本操作】

    本内容会持续更新的哦! 注:"字段"="列","记录''="行" 文章目录 一:数据库的基本操作 二.数据表的基本操作 1.创建与 ...

  2. 在Mysql中如何显示所有用户?

    这是一个mysql初学者经常问到的一个问题,今天我们就带大家看看是如何在Mysql中显示所有用户的.通常我们在mysql中使用SHOW DATABASES可以显示所有的数据库,SHOW TABLES将 ...

  3. 高性能MySQL --- 读书笔记(1) - 2016/8/2

    此书不但帮助MySQL初学者提高使用技巧,更为有经验的MySQL DBA指出了开发高性能MySQL应用的途径.全书包括14章,内容覆盖MySQL系统架构.设计应用技巧.SQL语句优化.服务器性能调优. ...

  4. 【Mysql】初学命令行指南

    MYSQL初学者使用指南与介绍 一.连接MYSQL 格式: mysql -h主机地址 -u用户名 -p用户密码 1.例1:连接到本机上的MYSQL. 首先在打开DOS窗口,然后进入目录 mysqlbi ...

  5. MySQL中对varchar类型排序问题

    在数据库表中有一个对varchar类型的数值进行desc排序,很简单的要求吧.可是奇怪的现象出现了表中的数据不会根据从高到底进行排序了瞬间有点泪奔的感觉呀还好经过高手指点啊.所以想和大家分享一下希望下 ...

  6. [指南] 15分钟学会MySQL(Linux版)

    原文链接:http://www.mysqlpub.com/thread-348-1-1.html 原创出处:MySQLpub.com  , 作者:kider  ,转载请注明作者和出处,并不能用于商业用 ...

  7. python mysql开发日志

    开始做python 的数据库访问了,暂时选定了mysql数据库.原本想使用ORM,后来考虑到项目的情况是:表结构不复杂,但是数据库非常大.还是自己来操作sql,不过PYTHON的那些数据库ORM的代码 ...

  8. 13本热门书籍免费送!(Python、SpingBoot、Entity Framework、Ionic、MySQL、深度学习、小程序开发等)

    七月第一周,网易云社区联合清华大学出版社为大家送出13本数据分析以及移动开发的书籍(Python.SpingBoot.Entity Framework.Ionic.MySQL.深度学习.小程序开发等) ...

  9. MySQL高速缓存

    MySQL高速缓存启动方法及参数详解query_cache_size=32M query_cache_type=1,默认配置下,MySQL的该功能是没有启动的,可能你通过show variables ...

随机推荐

  1. Servlet学习笔记(四)

    目录 Servlet学习笔记(四) 一.会话技术Cookie.session 1. 什么是会话技术? 2. 会话技术有什么用? 3. Cookie 3.1 什么是Cookie? 3.2 使用Cooki ...

  2. mysql千万级大数据SQL查询优化30条经验(Mysql索引优化注意)

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

  3. php连接神通数据库 ci框架

    神通数据库连接手册 1.扩展安装 目前连接神通数据库有两种方式 ODBC PDO_ACI 具体请看手册,目前使用PDO_ODBC方法PS:请看操作2 目前只有64位有pdo_aci.so文件,需要在神 ...

  4. 论文解读 - Composition Based Multi Relational Graph Convolutional Networks

    1 简介 随着图卷积神经网络在近年来的不断发展,其对于图结构数据的建模能力愈发强大.然而现阶段的工作大多针对简单无向图或者异质图的表示学习,对图中边存在方向和类型的特殊图----多关系图(Multi- ...

  5. 新疆地形数据下载:30米、12.5米、5米DEM地形数据

    新疆是我国陆地面积最大的省级行政区,总面积达166万平方公里.新疆的地形也十分的复杂,新疆的地形呈山脉与盆地相间排列,盆地被高山环抱,,俗称"三山夹两盆".三山指阿尔泰山.昆仑山. ...

  6. JS缓冲运动案例:右侧居中悬浮窗

    JS缓冲运动案例:右侧居中悬浮窗 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta cha ...

  7. MySQL慢查询开启、日志分析(转)

    说明 Mysql的查询讯日志是Mysql提供的一种日志记录,它用来记录在Mysql中响应时间超过阈值的语句 具体指运行时间超过long_query_time值得SQL,则会被记录到慢查询日志中.lon ...

  8. [LeetCode题解]160. 相交链表 | 双指针 + 哈希表

    方法一:双指针 解题思路 假设链表存在相交时,headA 的长度为 a + c,headB 的长度为 b + c.如果把 headA 连上 headB,headB 连上 headB 的话,当遍历这两个 ...

  9. scrapy学习之爬虫练习平台35

    前言 上一篇文章中爬取了爬虫练习平台的所有 ssr 网站,都是比较简单的,没有反爬措施,这次来爬一下后面的 spa 系列. 环境准备 这里沿用了上篇文章的环境和设置,就不重新搭建环境了. 开始爬取 s ...

  10. ASP.NET Core管道详解[2]: HttpContext本质论

    ASP.NET Core请求处理管道由一个服务器和一组有序排列的中间件构成,所有中间件针对请求的处理都在通过HttpContext对象表示的上下文中进行.由于应用程序总是利用服务器来完成对请求的接收和 ...