mySQL初学者一定要掌握的数据操纵
本文献给与作者一样不断地在追求梦想的小伙伴!
文章目录
INSERT插入数据 UPDATE更新数据 DELETE删除数据 SELECT查看数据
增删改查=CRUD=CREATE READ UPDATE DELETE
1.INSERT 语句为表中所有字段添加数据
(1)可以指定所有字段名添加数据
(2)可以不指定字段名添加数据
(3)可以指定部分字段添加数据
(1)指定所有字段名添加数据
语法:
INSERT INTO 表名(字段名1,字段名2,...)
VALUES(值1,值2,....);
注意:
此处表名后必须列出表中所有字段的名称;
每次添加时字段名的顺序可以不一致;
“值 1,值 2,……”表示每个字段的值,每个值的顺序、类型必须与对应的字段相匹配。
//创建lesson001库,并在其中创建student表
CREATE DATABASE lesson001;
USE lesson001;
CREATE TABLE student(
id INT(4),
name VARCHAR(20) NOT NULL,
grade FLOAT
);
//使用 INSERT 语句向 student 表中插入一条数据
INSERT INTO student(id,name,grade)
VALUES(1,'zhangsan',77.3);
//使用 INSERT 语句向 student 表中插入多条数据
INSERT INTO student(name,id,grade)
VALUES('lisi',2,98),('cen',3,99),('xintin',4,98.9);
//使用 SELECT 语句查看 student 表中的数据
SELECT*FROM student;
(2)不指定字段名添加数据
语法:
INSERT INTO 表名 VALUES(值 1,值 2,……);
注意:
由于 INSERT 语句中没有指定字段名,添加的值的顺序必须和字段在表中定义的顺序相同
其余注意事项参照第一种
INSERT INTO student
VALUES(5,'mingming',87);
(3)指定部分字段添加数据
注意:
语法有两种一种与第一种类似,只是不需列出所有字段名
其余注意事项参照第一种
sql 语法二: INSERT INTO 表名 SET 字段名 1=值 1[,字段名 2=值 2,……]
//方法一:
INSERT INTO student(id,name)
VALUES(6,'qingqing');
//方法二:向指定部分字段添加数据
INSERT INTO student
SET id=6,name='qingqing'; //未被添加数据的字段保持为定义时的默认值
2.使用 UPDATE 语句更新表中数据
语法:
UPDATE 表名 SET 字段名 1 = 值 1[,字段名 2 = 值 2,……] [WHERE 条件表达式]
(1)UPDATE更新部分数据
使用WHERE子句来指定更新记录的条件
sql> SELECT*FROM student WHERE id=1;
sql> UPDATE sdudent SET name='nini',grade=90 WHERE id=1;
注意:
如果表中有多条记录满足 WHERE 子句中的条件表达式,则满足条件的记录都会发生更新。sql> UPDATE student SET grade=99 WHERE id<10;
(2)UPDATE更新全部数据
未使用WHERE子句来指定更新记录的条件,即会更新某字段的所有数据。
如图:
3.使用 DELETE 语句来删除表中的记录
(1)、 DELETE 删除部分数据
WHERE子句判断条件与UPDATE时用法相似
语法:
DELETE FROM 表名 [WHERE 条件表达式]
示例:
DELETE FROM student WHERE id<5;
(2). DELETE 删除全部数据
语法:
DELETE FROM student;
与UPDATE更新全部数据类似
4.使用TRUNCATE删除表中所有的记录
语法:
TRUNCATE TABLE 表名;
//创建表并以id为主键
CREATE TABLE tab_truncate(
id INT(4) PRIMARY KEY AUTO_INCREMENT, //id 字段值设置了 AUTO_INCREMENT,id 字段的默认初始值是 1,在每次添加记录时系统会为该字段 自动添加值,即该字段值会自动加 1。
name VARCHAR(10),
sex CHAR(5)
);
//添加数据
INSERT INTO tab_truncate(name,sex)
VALUES('nini','男'),('titi','女'),('mimi','男');
SELECT*FROM tab_truncate;//查看数据
TRUNCATE TABLE tab_truncate;//使用TRUNCATE删除表中所有的记录
SELECT * FROM tab_truncate; //查看数据
//添加数据,发现id又是从1开始递增
INSERT INTO tab_truncate(name,sex)
VALUES('nini','男'),('titi','女'),('mimi','男');
SELECT * FROM tab_truncate;
DELETE FROM tab_truncate;
//添加数据
INSERT INTO tab_truncate(name,sex)
VALUES('nini','男');
SELECT * FROM tab_truncate;//发现id是从删除前最大值+1开始递增
总结TRUNCATE与DELETE的区别:
1.使用 TRUNCATE 语句删除表中的数据后,再次向表中添加记录时,自动增加字段的默认初始值重 新由 1 开始,而使用 DELETE 语句删除表中所有记录后,再次向表中添加记录时,自动增加字段的值为删除时该字段的最大值加 1。
2.使用 DELETE 语句时,每删除一条记录都会在日志中记录,而使用 TRUNCATE 语句时,不会在 日志中记录删除的内容,因此 TRUNCATE 语句的执行效率比 DELETE 语句高。
3.、DELETE 语句后面可以跟 WHERE 子句,通过指定 WHERE 子句中的条件表达式只删除满足条件的部分记录也可以不跟WHERE 子句,而 TRUNCATE 语句只能用于删除表中的所有记录 。
4.DELETE 语句是 DML 语句,TRUNCATE 语句通常被认为是 DDL 语句。DELETE与TRUNCATE的比喻:
将DELETE与TRUNCATE执行性质看作‘伐树’,DELETE是用斧头将树的枝叶砍掉最后砍倒树干而TRUNCA则是用挖掘机将树连根拔起,砍倒的树仍然可以从树根上生长出幼苗,而后者却只能重新生长出幼苗。
想复习《mySQL数据库与表的基本操作》的小伙伴可以阅读这篇哦!
mySQL初学者一定要掌握的数据操纵的更多相关文章
- mySQL初学者需要掌握的【数据库与表的基本操作】
本内容会持续更新的哦! 注:"字段"="列","记录''="行" 文章目录 一:数据库的基本操作 二.数据表的基本操作 1.创建与 ...
- 在Mysql中如何显示所有用户?
这是一个mysql初学者经常问到的一个问题,今天我们就带大家看看是如何在Mysql中显示所有用户的.通常我们在mysql中使用SHOW DATABASES可以显示所有的数据库,SHOW TABLES将 ...
- 高性能MySQL --- 读书笔记(1) - 2016/8/2
此书不但帮助MySQL初学者提高使用技巧,更为有经验的MySQL DBA指出了开发高性能MySQL应用的途径.全书包括14章,内容覆盖MySQL系统架构.设计应用技巧.SQL语句优化.服务器性能调优. ...
- 【Mysql】初学命令行指南
MYSQL初学者使用指南与介绍 一.连接MYSQL 格式: mysql -h主机地址 -u用户名 -p用户密码 1.例1:连接到本机上的MYSQL. 首先在打开DOS窗口,然后进入目录 mysqlbi ...
- MySQL中对varchar类型排序问题
在数据库表中有一个对varchar类型的数值进行desc排序,很简单的要求吧.可是奇怪的现象出现了表中的数据不会根据从高到底进行排序了瞬间有点泪奔的感觉呀还好经过高手指点啊.所以想和大家分享一下希望下 ...
- [指南] 15分钟学会MySQL(Linux版)
原文链接:http://www.mysqlpub.com/thread-348-1-1.html 原创出处:MySQLpub.com , 作者:kider ,转载请注明作者和出处,并不能用于商业用 ...
- python mysql开发日志
开始做python 的数据库访问了,暂时选定了mysql数据库.原本想使用ORM,后来考虑到项目的情况是:表结构不复杂,但是数据库非常大.还是自己来操作sql,不过PYTHON的那些数据库ORM的代码 ...
- 13本热门书籍免费送!(Python、SpingBoot、Entity Framework、Ionic、MySQL、深度学习、小程序开发等)
七月第一周,网易云社区联合清华大学出版社为大家送出13本数据分析以及移动开发的书籍(Python.SpingBoot.Entity Framework.Ionic.MySQL.深度学习.小程序开发等) ...
- MySQL高速缓存
MySQL高速缓存启动方法及参数详解query_cache_size=32M query_cache_type=1,默认配置下,MySQL的该功能是没有启动的,可能你通过show variables ...
随机推荐
- Android Studio导入github项目源码步骤
1.从github上将源码下载下来 2.打开AS,新建一个新项目(我选择了EmptyActivity) 3.先不要在AS 中打开源码,来整理源码 在源码的目录下面,将project下的build.gr ...
- python爬虫04 Requests
接下来我们要来玩一个新的库 这个库的名称叫做 Requests 这个库比我们上次说的 urllib 可是要牛逼一丢丢的 毕竟 Requests 是在 urllib 的基础上搞出来的 通过它我们可以用更 ...
- 【java】校验当前时间是否在规定的时间内
废话不多说直接贴代码. 我的日期格式是 8:00-22:00 要用的自己换下格式哈. public class CheckClosingTimeUtil { /** * 校验当前时间是否在规定时间内 ...
- 3.3 Spring5源码---循环依赖过程中spring读取不完整bean的最终解决方案
根据之前解析的循环依赖的源码, 分析了一级缓存,二级缓存,三级缓存的作用以及如何解决循环依赖的. 然而在多线程的情况下, Spring在创建bean的过程中, 可能会读取到不完整的bean. 下面, ...
- php 上传音频文件并获取时长
<input type="file" name="audio" id="voice_file" style="display ...
- 《Python3反爬虫原理与绕过实战》作者韦世东
可以用(k1,k2)-k1来设置,如果有重复的key,则保留key1,舍弃key2/打印appleMap{1=Apple{id=1,name=苹果1,money=3.25,num=10},2=Appl ...
- Pandas_数据读取与存储数据(全面但不精炼)
Pandas 读取和存储数据 目录 读取 csv数据 读取 txt数据 存储 csv 和 txt 文件 读取和存储 json数据 读取和存储 excel数据 一道练习题 参考 Numpy基础(全) P ...
- Exactly Once 语义
将服务器的 ACK 级别设置为-1,可以保证 Producer 到 Server 之间不会丢失数据,即 At Least Once 语义. 相对的,将服务器 ACK 级别设置为 0,可以保证生产者每条 ...
- shell 脚本之set 命令(转)
服务器的开发和管理离不开 Bash 脚本,掌握它需要学习大量的细节. set命令是 Bash 脚本的重要环节,却常常被忽视,导致脚本的安全性和可维护性出问题.本文介绍它的基本用法,让你可以更安心地使用 ...
- Ceph数据盘怎样实现自动挂载
前言 在Centos7 下,现在采用了 systemctl来控制服务,这个刚开始用起来可能不太习惯,不过这个服务比之前的服务控制要强大的多,可以做更多的控制,本节将来介绍下关于 Ceph的 osd 磁 ...