1、插入数据

插入单行数据(如果发现语句中含有set关键字,则表示插入单行数据)

语法

Insert into table_name set

<字段1>=值1,

<字段2>=值2,

<字段3>=值3;

首先查看表结构

mysql> desc t1;

+-------+-------------+------+-----+---------+-------+

| Field | Type        | Null | Key | Default | Extra |

+-------+-------------+------+-----+---------+-------+

| id   | int(11)     | YES  |     |NULL    |       |

| name | varchar(20) | YES  |     | NULL   |       |

+-------+-------------+------+-----+---------+-------+

2 rows in set (0.00 sec)

插入数据

mysql> insert into t1 set

-> id=10,

-> name='xxx';

Query OK, 1 row affected (0.09 sec)

查看数据

select * from t1;

+------+-------+

| id  | name  |

+------+-------+

|   1 | NULL  |

|   1 | xiaon |

|   2 | kevin |

|   3 | mark  |

|  10 | xxx   |

+------+-------+

5 rows in set (0.00 sec)

插入多行数据

语法

Insert into table_name

[(字段1,字段2,字段N)]     方括号表示可选

Values

(值1,值2,值N),(值1N,值2N,值3N);

查看表结构

mysql> desc t1

-> ;

+-------+-------------+------+-----+---------+-------+

| Field | Type        | Null | Key | Default | Extra |

+-------+-------------+------+-----+---------+-------+

| id   | int(11)     | YES  |     |NULL    |       |

| name | varchar(20) | YES  |     | NULL   |       |

+-------+-------------+------+-----+---------+-------+

2 rows in set (0.00 sec)

插入数据

mysql> insert into t1

-> (id,name)

-> values

-> (11,'fox'),

-> (12,'tom');

Query OK, 2 rows affected (0.01 sec)

Records: 2 Duplicates: 0  Warnings: 0

查看数据

mysql> select * from t1;

+------+-------+

| id  | name  |

+------+-------+

|   1 | NULL  |

|   1 | xiaon |

|   2 | kevin |

|   3 | mark  |

|  10 | xxx   |

|  11 | fox   |

|  12 | tom   |

+------+-------+

7 rows in set (0.00 sec)

如果一张表所有的列都插入数值的话,可以省略列名的内容。

mysql> insert into t1 values(13,'jack'), (14,'han');

Query OK, 2 rows affected (0.01 sec)

Records: 2 Duplicates: 0  Warnings: 0

查看数据

mysql> select * from t1;

+------+-------+

| id  | name  |

+------+-------+

|   1 | NULL  |

|   1 | xiaon |

|   2 | kevin |

|   3 | mark  |

|  10 | xxx   |

|  11 | fox   |

|  12 | tom   |

|  13 | jack  |

|  14 | han   |

+------+-------+

9 rows in set (0.00 sec)

插入指定列数据

mysql> insert into t1 (id) values(15),(16);

Query OK, 2 rows affected (0.01 sec)

Records: 2 Duplicates: 0  Warnings: 0

查看数据

mysql> select * from t1;

+------+-------+

| id  | name  |

+------+-------+

|   1 | NULL  |

|   1 | xiaon |

|   2 | kevin |

|   3 | mark  |

|  10 | xxx   |

|  11 | fox   |

|  12 | tom   |

|  13 | jack  |

|  14 | han   |

|  15 | NULL  |

|  16 | NULL  |

+------+-------+

11 rows in set (0.00 sec)

向表插入查询结果

语法

Insert into table_name1

(字段1,字段2,字段N)

Select 字段A,字段B,字段C  from

Table_name2

[where condition];

新创建一个T3表

mysql> create table t3  (id int(10), name varchar(20));

Query OK, 0 rows affected (0.06 sec)

查看表结构

mysql> desc t3;

+-------+-------------+------+-----+---------+-------+

| Field | Type        | Null | Key | Default | Extra |

+-------+-------------+------+-----+---------+-------+

| id   | int(10)     | YES  |     |NULL    |       |

| name | varchar(20) | YES  |     | NULL   |       |

+-------+-------------+------+-----+---------+-------+

2 rows in set (0.00 sec)

mysql> desc t1;

+-------+-------------+------+-----+---------+-------+

| Field | Type        | Null | Key | Default | Extra |

+-------+-------------+------+-----+---------+-------+

| id   | int(11)     | YES  |     |NULL    |       |

| name | varchar(20) | YES  |     | NULL   |       |

+-------+-------------+------+-----+---------+-------+

2 rows in set (0.00 sec)

插入数据

mysql> insert into t3 select id,namefrom t1;

Query OK, 11 rows affected (0.01 sec)

Records: 11 Duplicates: 0  Warnings: 0

对比两个表的数据

mysql> select * from t3

-> ;

+------+-------+

| id  | name  |

+------+-------+

|   1 | NULL  |

|   1 | xiaon |

|   2 | kevin |

|   3 | mark  |

|  10 | xxx   |

|  11 | fox   |

|  12 | tom   |

|  13 | jack  |

|  14 | han   |

|  15 | NULL  |

|  16 | NULL  |

+------+-------+

11 rows in set (0.00 sec)

mysql> select * from t1;

+------+-------+

| id  | name  |

+------+-------+

|   1 | NULL  |

|   1 | xiaon |

|   2 | kevin |

|   3 | mark  |

|  10 | xxx   |

|  11 | fox   |

|  12 | tom   |

|  13 | jack  |

|  14 | han   |

|  15 | NULL  |

|  16 | NULL  |

+------+-------+

11 rows in set (0.00 sec)

2、更新数据

语法

Update table_name1 set

字段1=值1,

字段2=值2,

字段N=值N

[where condition];

更新数据

mysql> update t1 set

-> name='lll'

-> where

-> id=15;

Query OK, 1 row affected (0.09 sec)

Rows matched: 1  Changed: 1 Warnings: 0

查看数据

mysql> select * from t1;

+------+-------+

| id  | name  |

+------+-------+

|   1 | NULL  |

|   1 | xiaon |

|   2 | kevin |

|   3 | mark  |

|  10 | xxx   |

|  11 | fox   |

|  12 | tom   |

|  13 | jack  |

|  14 | han   |

|  15 | lll   |

|  16 | NULL  |

+------+-------+

11 rows in set (0.00 sec)

如果不写where条件更新数据

mysql> update t1 set name='lll';

Query OK, 10 rows affected (0.00 sec)

Rows matched: 11  Changed: 10 Warnings: 0

查看数据  (你会发现所有的行都更改了,所以需要加上where语句)

mysql> select * from t1;

+------+------+

| id  | name |

+------+------+

|   1 | lll  |

|   1 | lll  |

|   2 | lll  |

|   3 | lll  |

|  10 | lll  |

|  11 | lll  |

|  12 | lll  |

|  13 | lll  |

|  14 | lll  |

|  15 | lll  |

|  16 | lll  |

+------+------+

11 rows in set (0.00 sec)

3、删除数据

语法

Delete from table_name

[where <condition>];

删除数据

mysql> delete from t1 where id>13;

Query OK, 3 rows affected (0.01 sec)

查看数据

mysql> select * from t1;

+------+------+

| id  | name |

+------+------+

|   1 | lll  |

|   1 | lll  |

|   2 | lll  |

|   3 | lll  |

|  10 | lll  |

|  11 | lll  |

|  12 | lll  |

|  13 | lll  |

+------+------+

8 rows in set (0.00 sec)

不加条件删除数据

mysql> delete from t1;

Query OK, 8 rows affected (0.01 sec)

查看数据  (不加条件清空了全部数据)

mysql> select * from t1;

Empty set (0.00 sec)

4、事物操作

使用inoodb数据引擎的表支持事物操作

默认情况下MySQL开启了自动提交

BEGIN开启一个事物

ROLLBACK回滚一个事物

COMMIT提交一个事物

进入事物

mysql> begin

-> ;

Query OK, 0 rows affected (0.00 sec)

在事物中插入数据

mysql> insert into t1 values(1,'liujing');

Query OK, 1 row affected (0.00 sec)

查看数据

mysql> select * from t1;

+------+---------+

| id  | name    |

+------+---------+

|   1 | liujing |

+------+---------+

1 row in set (0.00 sec)

新开一个终端

查看T1表数据(数据是空的,因为这是另外一个事物,事物之间是隔离的。)

mysql> select * from t1

-> ;

Empty set (0.00 sec)

第一个终端

事物完成,提交修改,这个时候结果才会写到硬盘中,可以被其他事物读取到。

mysql> commit;

Query OK, 0 rows affected (0.00 sec)

新开的终端可以读取到

mysql> select * from t1;

+------+---------+

| id  | name    |

+------+---------+

|   1 | liujing |

+------+---------+

1 row in set (0.00 sec)

回滚操作

mysql> begin;

Query OK, 0 rows affected (0.00 sec)

mysql> insert into t1 values(2,'jingcheng');

Query OK, 1 row affected (0.00 sec)

mysql> select * from t1;

+------+-----------+

| id  | name      |

+------+-----------+

|   1 | liujing   |

|   2 | jingcheng |

+------+-----------+

2 rows in set (0.00 sec)

回滚

mysql> rollback;

Query OK, 0 rows affected (0.01 sec)

mysql> select * from t1;

+------+---------+

| id  | name    |

+------+---------+

|   1 | liujing |

+------+---------+

1 row in set (0.00 sec)

提交保存

mysql> commit;

Query OK, 0 rows affected (0.00 sec)

查看配置

mysql> show variables like '%commit';

+--------------------------------+-------+

| Variable_name                  | Value |

+--------------------------------+-------+

| autocommit                     | ON    |

| innodb_flush_log_at_trx_commit | 1     |

+--------------------------------+-------+

2 rows in set (0.01 sec)

自动保存是默认开启的。

关闭自动提交

mysql> set autocommit=0;

Query OK, 0 rows affected (0.00 sec)

mysql> show variables like '%commit';

+--------------------------------+-------+

| Variable_name                  | Value |

+--------------------------------+-------+

| autocommit                     | OFF   |

| innodb_flush_log_at_trx_commit | 1     |

+--------------------------------+-------+

2 rows in set (0.00 sec)

如果关闭自动提交,那么无论你输入任何操作,MySQL都会认为是在一个事物里,当你输入commit之后才会关闭事物,并相当于同时开启了另一个事物。

什么时候需要关闭自动保存?

批量导入数据的时候,很多的单行导入,建议关闭自动保存。导入之后再开启自动保存。

这样可以节省MySQL的资源,提交MySQL的效率,否则一条语句就相当于开启了一个事物。

转载于:https://blog.51cto.com/sunshinesnail/1734644

MySQL的数据操作相关推荐

  1. MySQL:数据操作

    数据操作 一.输入数据 格式: mysql>INSERT INTO 数据表名 VALUES(输入数据); 例 mysql> INSERT INTO shujuleixing_xiaoshu ...

  2. mysql四:数据操作

    一 介绍 MySQL数据操作: DML ======================================================== 在MySQL管理软件中,可以通过SQL语句中的 ...

  3. MySQL 之 数据操作

    目录 一  介绍 二 增 INSERT 三  删 DELETE 四  改 UPDATE 五 查 SELECT 5.1单表查询: https://blog.csdn.net/qq_35883464/ar ...

  4. MySQL数据库肖睿版_正版 MySQL数据库应用技术及实战肖睿MySQL数据库数据操作数据恢复备份MySQL数据库优化My...

    基本信息 书名:MySQL数据库应用技术及实战 定价:32.00元 作者:肖睿程宁田崇峰 出版社:人民邮电出版社 出版日期:2018-01-01 ISBN:9787#115474223 字数: 页码: ...

  5. kafka 批量 回写mysql_kafka往mysql写数据操作笔记

    第三讲代码 导入jar(df_connect_finance-0.1-jar-with-dependencies.jar)包到 /opt/lib/ 下 ------------------------ ...

  6. 批处理 操作mysql_用批处理对MySQL进行数据操作

    批处理是一种非交互式运行mysql程序的方法,如同您在mysql中使用的命令一样,你仍然将使用这些命令. 为了实现批处理,您重定向一个文件到mysql程序中,首先我们需要一个文本文件,这个文本文件包含 ...

  7. MySQL查询数据操作(DQL)

    查询记录 单表查询SELECT语句完×××式: SELECT select_expr [ , select_expr ... ] [ FROM tbl_references [WHERE 条件] [G ...

  8. 五、MySQL之数据操作语言

  9. 命令行客户端MySQL基本命令的使用(登录、登出、数据库操作的SQL语句、表结构的SQL语句、表数据操作的SQL语句)

    1. 登录和登出数据库 登录数据库: 输入下面命令: mysql -uroot -p 说明: -u 后面是登录的用户名  [写成-u root也是可以的] -p 后面是登录密码, 如果不填写, 回车之 ...

  10. mysql json类型数组索引_MySQL JSON 类型数据操作

    1.Java 中动态扩展字段,会导致数据库表被锁,在MySQL 5.7.8版本之前,因为MySQL不能直接操作JSON类型数据,可以将一个字段设定成varchar类型,里面存放JSON格式数据,这样在 ...

最新文章

  1. html-body标签中相关标签 02
  2. python中数据分析的流程为-利用python进行数据分析——histogram
  3. java 寻找和为定值的多个数_算法笔记_037:寻找和为定值的两个数(Java)
  4. 实现UncaughtExceptionHandler来实现获取应用全局的crash信息
  5. xp系统打开计算机配置文件,XP系统启动Windows零配置(WZC)服务教程(图文)
  6. 28.XAPP1052驱动详解-WinDriver DMA读写流程
  7. 深度思考:到底什么是面向接口编程?
  8. 南卡和声阔蓝牙耳机哪个比较好用?降噪效果好的蓝牙耳机推荐
  9. 基于Python的指数基金量化投资-全市场的市盈率和市净率计算
  10. 二维正态分布参数rho的作用
  11. Prefix-Tuning: Optimizing Continuous Prompts for Generation
  12. 排序算法lowb三人组-冒泡排序
  13. 汇编语言之课程设计一
  14. watch gt3 鸿蒙,华为matepad pro2和watchGT3系列即将发布!
  15. Snipaste 截图贴图
  16. 线性表的创建和基本操作
  17. 灰度直方图及直方图均衡化的MATLAB实现
  18. JSP实现简单的登录页面实现及代码(非连接数据库)
  19. 我也来读jquery
  20. 小白学电脑计算机的组成,零基础的电脑小白学电脑

热门文章

  1. 2021-11-06大数据学习日志——数据埋点+网络爬虫——数据提取
  2. 如何让IE11自动下载安装ActiveX插件并使用网页VLC播放视频
  3. 详解TCP 三次握手和四次挥手
  4. 使用docker搭建个人博客
  5. [Microsoft Lync] Find a previous conversation - Chat History
  6. 金蝶专业版服务器提示系统错误,金蝶专业版连接云服务器异常
  7. iOS TouchID指纹验证
  8. 全球与中国塑料拖链市场深度研究分析报告
  9. win10家庭中文版自动更新解决办法
  10. JavaEE程序猿的Java世界观⑤