表结构准备:

mysql> CREATE TABLE student(
-> sid INT PRIMARY KEY AUTO_INCREMENT,
-> sname VARCHAR(10),
-> age INT,
-> city VARCHAR(10)
-> );
Query OK, 0 rows affected (0.08 sec)

一、数据插入操作

1.1 向表中所有字段插入数据

语法:insert into 表名  values (值列表);

mysql> INSERT INTO student VALUES (NULL,"张三",20,"广州");
Query OK, 1 row affected (0.03 sec) mysql> select * from student;
+-----+--------+------+--------+
| sid | sname | age | city |
+-----+--------+------+--------+
| 1 | 张三 | 20 | 广州 |
+-----+--------+------+--------+
1 row in set (0.00 sec)

注意:值列表必须与表结构中的字段相对应。

1.2 向表中指定字段插入数据

语法:insert into 表名 (字段1,字段2,...) values (字段1的值,字段2的值,...);

mysql> INSERT INTO student(sname,age) VALUES ("李四",22);
Query OK, 1 row affected (0.03 sec) mysql> select * from student;
+-----+--------+------+--------+
| sid | sname | age | city |
+-----+--------+------+--------+
| 1 | 张三 | 20 | 广州 |
| 2 | 李四 | 22 | NULL |
+-----+--------+------+--------+
2 rows in set (0.00 sec)

注意:1.values中的值列表需要与前面的字段列表相对应,字段列表的顺序可以与表结构字段的顺序不一致;

2.如果要插入空值,可以不写字段,或者插入null。

3.除了数值类型外,其它的字段类型的值必须使用引号引起。(单引号或双引号)

1.3 向表中同时插入多条数据

语法:insert into 表名 values (第一条记录的值), (第二条记录的值),...;

mysql> INSERT INTO student VALUES (NULL,"王五",17,"佛山"),(NULL,"赵六",24,"广州");
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0 mysql> select * from student;
+-----+--------+------+--------+
| sid | sname | age | city |
+-----+--------+------+--------+
| 1 | 张三 | 20 | 广州 |
| 2 | 李四 | 22 | NULL |
| 3 | 王五 | 17 | 佛山 |
| 4 | 赵六 | 24 | 广州 |
+-----+--------+------+--------+
4 rows in set (0.00 sec)

1.4 向表中插入其它表的查询结果数据

语法:insert into 表名  select * from 其它表名 [where 条件];

mysql> CREATE TABLE mystudent LIKE student;
Query OK, 0 rows affected (2.12 sec) mysql> INSERT INTO mystudent SELECT * FROM student WHERE age < 20;
Query OK, 1 row affected (0.09 sec)
Records: 1 Duplicates: 0 Warnings: 0 mysql> SELECT * FROM mystudent;
+-----+--------+------+--------+
| sid | sname | age | city |
+-----+--------+------+--------+
| 3 | 王五 | 17 | 佛山 |
+-----+--------+------+--------+
1 row in set (0.00 sec)

1.5 主键冲突替换插入数据

语法:replace into 表名  values (对应表结构字段的值列表);

mysql> REPLACE INTO student VALUES (2,"李小龙",22,"佛山");
Query OK, 2 rows affected (0.00 sec) mysql> select * from student;
+-----+-----------+------+--------+
| sid | sname | age | city |
+-----+-----------+------+--------+
| 1 | 张三 | 20 | 广州 |
| 2 | 李小龙 | 22 | 佛山 |
| 3 | 王五 | 17 | 佛山 |
| 4 | 赵六 | 24 | 广州 |
+-----+-----------+------+--------+
4 rows in set (0.00 sec)

注意:虽然replace功能比insert强大,但replace插入比insert的效率要低。

二、数据更改操作

语法:update 表名 set 字段名=新的值, 字段名=新的值... where 条件;

mysql> UPDATE student SET sname = "李四" WHERE sid = 2;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0 mysql> select * from student;
+-----+--------+------+--------+
| sid | sname | age | city |
+-----+--------+------+--------+
| 1 | 张三 | 20 | 广州 |
| 2 | 李四 | 22 | 佛山 |
| 3 | 王五 | 17 | 佛山 |
| 4 | 赵六 | 24 | 广州 |
+-----+--------+------+--------+
4 rows in set (0.00 sec)

注意:如果不写where条件,将会把所有记录指定的字段更改为相同的值!

三、数据删除操作

3.1 删除表中指定数据

语法:delete from 表名 where 条件;

mysql> DELETE FROM student WHERE age > 20;
Query OK, 2 rows affected (0.00 sec) mysql> select * from student;
+-----+--------+------+--------+
| sid | sname | age | city |
+-----+--------+------+--------+
| 1 | 张三 | 20 | 广州 |
| 3 | 王五 | 17 | 佛山 |
+-----+--------+------+--------+
2 rows in set (0.00 sec)

3.2 删除表中所有数据

语法:delete from 表名; 

truncate table 表名;

mysql> DELETE FROM student;
Query OK, 2 rows affected (0.00 sec) mysql> select * from student;
Empty set (0.00 sec)

注意:delete方式只删除表中所有数据,不清空auto_increment记录数,

truncate方式删除表中所有数据,并清空auto_increment记录数。

MySQL数据操作(DML)的更多相关文章

  1. (六)MySQL数据操作DML

    (1)insert:插入数据 顺序插入数据 insert into 表名 values(值1,值2,值3); 指定字段插入数据 insert into 表名(字段1,字段2,字段3) values(值 ...

  2. SQL学习笔记四之MySQL数据操作

    阅读目录 一 介绍 二 插入数据INSERT 三 更新数据UPDATE 四 删除数据DELETE 五 查询数据SELECT 六 权限管理 一 介绍 MySQL数据操作: DML =========== ...

  3. MySQL数据操作与查询笔记 • 【目录】

    持续更新中- 我的大学笔记>>> 章节 内容 第1章 MySQL数据操作与查询笔记 • [第1章 MySQL数据库基础] 第2章 MySQL数据操作与查询笔记 • [第2章 表结构管 ...

  4. mysql 数据操作 目录

    mysql 记录的增删改查 mysql 数据操作 单表查询 mysql 数据操作 多表查询

  5. mysql 数据操作 单表查询 目录

    mysql 数据操作 单表查询 mysql 数据操作 单表查询 简单查询 避免重复DISTINCT mysql 数据操作 单表查询 通过四则运算查询 mysql 数据操作 单表查询 concat()函 ...

  6. mysql 数据操作 多表查询 目录

    mysql 数据操作 多表查询 准备 多表连接查询介绍 mysql 数据操作 多表查询 多表连接查询 笛卡尔积 mysql 数据操作 多表查询 多表连接查询 内连接 mysql 数据操作 多表查询 多 ...

  7. mysql 数据操作 单表查询 where 约束 目录

    mysql 数据操作 单表查询 where约束 between and or mysql 数据操作 单表查询 where约束 is null in mysql 数据操作 单表查询 where约束 li ...

  8. mysql 数据操作 单表查询 group by 分组 目录

    mysql 数据操作 单表查询 group by 介绍 mysql 数据操作 单表查询 group by 聚合函数 mysql 数据操作 单表查询 group by 聚合函数 没有group by情况 ...

  9. mysql 数据操作 多表查询 子查询 介绍

    子查询就是: 把一条sql语句放在一个括号里,当做另外一条sql语句查询条件使用 拿到这个结果以后 当做下一个sql语句查询条件mysql 数据操作  子查询 #1:子查询是将一个查询语句嵌套在另一个 ...

随机推荐

  1. master.dbo.spt_values

    ,@date)) /*day--------------------200911012009110220091103200911042009110520091106200911072009110820 ...

  2. C语言指针的陷阱

    C语言指针的陷阱   分类: C/Cpp 转自:http://blog.csdn.net/porscheyin/article/details/3461670 “C语言诡异离奇,陷阱重重,却获得了巨大 ...

  3. Python学习系列----第五章 模块

    5.1 如何引入模块 在Python中用关键字import来引入某个模块,比如要引用模块math,就可以在文件最开始的地方用import math来引入.在调用math模块中的函数时,必须这样引用: ...

  4. ContentProvider启动浅析

    一.自己的理解 对于content provide的启动我是这样认为的,要用ContentResolver去获得一个contentProvider,在这的获得的过程中, 1.如果本应用之前有conte ...

  5. Linux --Mysql数据库搭建

    Mysql数据库 安装 准备: [root@localhost /]# rpm -e mysql --nodeps 将rpm方式安装的mysql卸载   [root@localhost /]# gro ...

  6. 通过describe命令学习Kubernetes的pod属性详解

    我们可以首先使用kubectl get pods命令得到pod列表,比如我们想研究pod nginx-storage-pod的明细: 使用命令kubectl describe pod nginx-st ...

  7. asp.net反射的运用

    反射的用途:    (1)使用Assembly定义和加载程序集,加载在程序集清单中列出模块,以及从此程序集中查找类型并创建该类型的实例.     (2)使用Module了解包含模块的程序集以及模块中的 ...

  8. BZOJ4415:[SHOI2013]发牌(线段树)

    Description 假设一开始,荷官拿出了一副新牌,这副牌有N张不同的牌,编号依次为1到N.由于是新牌,所以牌是按照顺序排好的,从牌库顶开始,依次为1, 2,……直到N,N号牌在牌库底.为了发完所 ...

  9. 2018.9.28 典型for循环特殊理解及其二维数组的理解

    如果for里面换成了函数结果会是怎么样呢?下面就来介绍一下 package praDemo; public class Test { public static boolean foo(char c) ...

  10. 未启用当前数据库的 SQL Server Service Broker,请为此数据库启用 Service Broker

    ALTER DATABASE DATABASE_Name SET NEW_BROKER WITH ROLLBACK IMMEDIATE; ALTER DATABASE DATABASE_Name SE ...