表结构准备:

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. Eclipse One Inspector

    net.sf.yari.eclipse.EclipseInspectorViewPart Through the outline of EclipseInspectorViewPart, we can ...

  2. Android 自定义AlertDialog的写法和弹出软键盘和覆盖状态栏

    private void showMyDialog(int layoutId){ AlertDialog myDialog = new AlertDialog.Builder(context).cre ...

  3. XUtils3 的 环境搭建与简单使用

    XUtils3 的 环境搭建 环境搭建三部曲 ----------------------- 说明 : author  修雨轩陈 使用andorid Studio 已经创建了一个项目 并且自己需要使用 ...

  4. 任务六:通过HTML及CSS模拟报纸排版

    任务目的 深入掌握CSS中的字体.背景.颜色等属性的设置 进一步练习CSS布局 任务描述 参考 PDS设计稿(点击下载),实现页面开发,要求实现效果与 样例(点击查看) 基本一致 页面中的各字体大小, ...

  5. 并发包java.util.concurrent.CountDownLatch

    /** * * @描述: 倒计时器 . * 犹如倒计时计数器,调用CountDownLatch对象的countDown方法就将计数器减1,当计算器为0的时候 * 则所有等待者或单个等待者开始执行 * ...

  6. web开发路径问题解决

     使用监听器解决路径问题 监听器:

  7. 基于alpine定制常用命令镜像

    FROM alpine RUN apk update RUN apk add curl coreutils 像busybox.alpine镜像date命令都不是完整版的,不能执行加减的操作(date ...

  8. tensorflow报错 tensorflow Resource exhausted: OOM when allocating tensor with shape

    在使用tensorflow的object detection时,出现以下报错 tensorflow Resource exhausted: OOM when allocating tensor wit ...

  9. codefind.pl

    #!/usr/bin/perl # # Find a pattern in a the book's source collection (DOS/Windows version) # # (C) C ...

  10. C++ 数据库 char 转 wchar_t SQLWCHAR

    C++中对数据库的操作感觉太复杂了,不如C#好使,但最近出于某些原因还是学习了一下C++下操作数据库的方法. 如果要想用C++实现对数据库的操作其实很简单,但是如果你需要动态的操作数据库(比如获得用户 ...