MySQL的数据操作
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的数据操作相关推荐
- MySQL:数据操作
数据操作 一.输入数据 格式: mysql>INSERT INTO 数据表名 VALUES(输入数据); 例 mysql> INSERT INTO shujuleixing_xiaoshu ...
- mysql四:数据操作
一 介绍 MySQL数据操作: DML ======================================================== 在MySQL管理软件中,可以通过SQL语句中的 ...
- MySQL 之 数据操作
目录 一 介绍 二 增 INSERT 三 删 DELETE 四 改 UPDATE 五 查 SELECT 5.1单表查询: https://blog.csdn.net/qq_35883464/ar ...
- MySQL数据库肖睿版_正版 MySQL数据库应用技术及实战肖睿MySQL数据库数据操作数据恢复备份MySQL数据库优化My...
基本信息 书名:MySQL数据库应用技术及实战 定价:32.00元 作者:肖睿程宁田崇峰 出版社:人民邮电出版社 出版日期:2018-01-01 ISBN:9787#115474223 字数: 页码: ...
- kafka 批量 回写mysql_kafka往mysql写数据操作笔记
第三讲代码 导入jar(df_connect_finance-0.1-jar-with-dependencies.jar)包到 /opt/lib/ 下 ------------------------ ...
- 批处理 操作mysql_用批处理对MySQL进行数据操作
批处理是一种非交互式运行mysql程序的方法,如同您在mysql中使用的命令一样,你仍然将使用这些命令. 为了实现批处理,您重定向一个文件到mysql程序中,首先我们需要一个文本文件,这个文本文件包含 ...
- MySQL查询数据操作(DQL)
查询记录 单表查询SELECT语句完×××式: SELECT select_expr [ , select_expr ... ] [ FROM tbl_references [WHERE 条件] [G ...
- 五、MySQL之数据操作语言
- 命令行客户端MySQL基本命令的使用(登录、登出、数据库操作的SQL语句、表结构的SQL语句、表数据操作的SQL语句)
1. 登录和登出数据库 登录数据库: 输入下面命令: mysql -uroot -p 说明: -u 后面是登录的用户名 [写成-u root也是可以的] -p 后面是登录密码, 如果不填写, 回车之 ...
- mysql json类型数组索引_MySQL JSON 类型数据操作
1.Java 中动态扩展字段,会导致数据库表被锁,在MySQL 5.7.8版本之前,因为MySQL不能直接操作JSON类型数据,可以将一个字段设定成varchar类型,里面存放JSON格式数据,这样在 ...
最新文章
- html-body标签中相关标签 02
- python中数据分析的流程为-利用python进行数据分析——histogram
- java 寻找和为定值的多个数_算法笔记_037:寻找和为定值的两个数(Java)
- 实现UncaughtExceptionHandler来实现获取应用全局的crash信息
- xp系统打开计算机配置文件,XP系统启动Windows零配置(WZC)服务教程(图文)
- 28.XAPP1052驱动详解-WinDriver DMA读写流程
- 深度思考:到底什么是面向接口编程?
- 南卡和声阔蓝牙耳机哪个比较好用?降噪效果好的蓝牙耳机推荐
- 基于Python的指数基金量化投资-全市场的市盈率和市净率计算
- 二维正态分布参数rho的作用
- Prefix-Tuning: Optimizing Continuous Prompts for Generation
- 排序算法lowb三人组-冒泡排序
- 汇编语言之课程设计一
- watch gt3 鸿蒙,华为matepad pro2和watchGT3系列即将发布!
- Snipaste 截图贴图
- 线性表的创建和基本操作
- 灰度直方图及直方图均衡化的MATLAB实现
- JSP实现简单的登录页面实现及代码(非连接数据库)
- 我也来读jquery
- 小白学电脑计算机的组成,零基础的电脑小白学电脑