MySQL数据操作(DML)
表结构准备:
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)的更多相关文章
- (六)MySQL数据操作DML
(1)insert:插入数据 顺序插入数据 insert into 表名 values(值1,值2,值3); 指定字段插入数据 insert into 表名(字段1,字段2,字段3) values(值 ...
- SQL学习笔记四之MySQL数据操作
阅读目录 一 介绍 二 插入数据INSERT 三 更新数据UPDATE 四 删除数据DELETE 五 查询数据SELECT 六 权限管理 一 介绍 MySQL数据操作: DML =========== ...
- MySQL数据操作与查询笔记 • 【目录】
持续更新中- 我的大学笔记>>> 章节 内容 第1章 MySQL数据操作与查询笔记 • [第1章 MySQL数据库基础] 第2章 MySQL数据操作与查询笔记 • [第2章 表结构管 ...
- mysql 数据操作 目录
mysql 记录的增删改查 mysql 数据操作 单表查询 mysql 数据操作 多表查询
- mysql 数据操作 单表查询 目录
mysql 数据操作 单表查询 mysql 数据操作 单表查询 简单查询 避免重复DISTINCT mysql 数据操作 单表查询 通过四则运算查询 mysql 数据操作 单表查询 concat()函 ...
- mysql 数据操作 多表查询 目录
mysql 数据操作 多表查询 准备 多表连接查询介绍 mysql 数据操作 多表查询 多表连接查询 笛卡尔积 mysql 数据操作 多表查询 多表连接查询 内连接 mysql 数据操作 多表查询 多 ...
- mysql 数据操作 单表查询 where 约束 目录
mysql 数据操作 单表查询 where约束 between and or mysql 数据操作 单表查询 where约束 is null in mysql 数据操作 单表查询 where约束 li ...
- mysql 数据操作 单表查询 group by 分组 目录
mysql 数据操作 单表查询 group by 介绍 mysql 数据操作 单表查询 group by 聚合函数 mysql 数据操作 单表查询 group by 聚合函数 没有group by情况 ...
- mysql 数据操作 多表查询 子查询 介绍
子查询就是: 把一条sql语句放在一个括号里,当做另外一条sql语句查询条件使用 拿到这个结果以后 当做下一个sql语句查询条件mysql 数据操作 子查询 #1:子查询是将一个查询语句嵌套在另一个 ...
随机推荐
- 【Linux】 静态函数库设计
一.外部函数来源-- 函数库&系统调用 二.函数库分类 静态函数库 --多份拷贝 动态函数库 --单份拷贝 区别 链接方式区别 三.函数库存放位置 Linux应用程序使用的主要函数库均存放于/ ...
- centos 7使用yum安装docker容器
使用yum命令即可安装 yum install docker 安装完成后,使用下面的命令来启动 docker 服务,并将其设置为开机启动: [root@localhost ~]# systemctl ...
- mysql的安装和使用
1.下载 数据库:mysql-3.23.53-win1 可视化工具:mysqlcc-0.9.4-win32 2.步骤: (1)解压mysql-3.23.53-win1(其他的也可以),按照步骤安装到你 ...
- 第二次作业(Git and Github)
第二次作业(Git and Github) 1.Github项目地址: https://github.com/YanSiJu/JavaWebProject.git 具体介绍详见READ.md 2 ...
- python入门3 python变量,id(),is运算符
python变量无需声明数据类型,可以直接赋值使用. 比如: num=100 #整数 str="字符串" #字符串 turple1 =('mon','tue','wed','thu ...
- Python之List和Tuple类型(入门3)
转载请标明出处: http://www.cnblogs.com/why168888/p/6407682.html 本文出自:[Edwin博客园] Python之List和Tuple类型 1. Pyth ...
- 小故事学设计模式之Command : (一) 在永和豆浆店
IT的事就是过场多,过场多了就容易忘,所以我们不妨看一个记一个,这也是一个办法,顺便跟同行们学习交流一下)前几天出去拍照,饿到腿软, 回城附近有一家永和豆浆店, 我们决定去那边解决午餐.豆浆店里面还不 ...
- BAT的云
近期,关于用国内那家云非常纠结! 我也来说道说道各家云. 首先,说说我想要的云服务(按优先级): 0.最好能提供二级域名.移动互联网时代,顶级域名必需要吗?在手机浏览器上输入长长的域名非常蛋痛(即不要 ...
- php-fpm 慢日志查询
虽然可以通过 nginx 的 accesslog 日志查询到用户访问接口或网页消耗的时间,但是不能清晰的追踪到哪个文件或函数慢, 可以通过 php-fpm 慢日志查询检测 php 脚本运行状态,哪些 ...
- 【转】 Android Fragment 真正的完全解析(下)
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37992017 上篇博客中已经介绍了Fragment产生原因,以及一些基本的用法和 ...