目录

1.CRUD:Create,Retrieve,Update,Delete

1.1 新增(Create)

1.1.1全列添加:给这张表的所有字段都添加内容

1.1.2指定列插入

2.查询(Retrieve)

2.1.1全列查询(开发环境使用的较多,生产环境慎用)

2.1.2指定列查询

2.1.3表达式查询

2.1.4别名查询(也不会对表的原始数据造成影响)

2.1.5去重 DISTINCT

2.1.6排序 ORDER BY

2.1.7条件查询

为什么 where 中不能使用别名,而 order by 却可以?

2.1.8分页查询

3.修改UPDATE

3.1.全部修改

4.删除数据DELETE


1.CRUD:Create,Retrieve,Update,Delete

CRUD 即增加 (Create) 、查询 (Retrieve) 、更新 (Update) 、删除 (Delete) 四个单词的首字母缩写。 CRUD : Create, Retrieve , Update , Delete.
新增数据
查询数据
修改数据
删除数据
注释:在 SQL 中可以使用 “-- 空格 + 描述 ” 来表示注释说明

1.1 新增(Create

1.1.1全列添加:给这张表的所有字段都添加内容

语法:

INSERT [ INTO ] table_name
[( column [, column ] ...)]
VALUES (value_list) [, (value_list)] ...
value_list: value , [, value ] ...
CRUD : Create, Retrieve , Update , Delete

新增数据
查询数据
修改数据
删除数据 
-- 插入的记录, value_list 数量必须和定义表的列的数量及顺序一致
(1) 单行数据 插入 

(2) 多行全列插入

1.1.2指定列插入

-- 插入值的顺序一定要和指定列的顺序保持一致。

2.查询(Retrieve

2.1.1全列查询(开发环境使用的较多,生产环境慎用)

语法:

SELECT
[ DISTINCT ] {* | {column [, column ] ...}
[ FROM table_name ]
[ WHERE ...]
[ ORDER BY column [ ASC | DESC ], ...]
LIMIT ...

全列查询的缺点:

1.如果数据较大,就会消耗大量的宽带信息,并且传输速度会很慢。

2.可能会影响索引的使用。

2.1.2指定列查询

语法

select 列名[,列名] from 表名;

-- 指定列的顺序不需要按定义表的顺序来
SELECT name, math  FROM  score;

2.1.3表达式查询

例如:给全班同学数学加十分;查询全班的总成绩。

SQL表达式的查询,不会修改表的原始数据。

2.1.4别名查询(也不会对表的原始数据造成影响)

语法

select 列名 [as] 别名 from 表名;

2.1.5去重 DISTINCT

可以分为单个字段去重和多个字段去重。

语法

select distinct 字段名[,字段名] from 表名;

distinct可以使用多个字段联和去重,但是去重的规则是:所有联合字段全部相同才回去重,否则不回去重。

2.1.6排序 ORDER BY

升序 asc(从小到大) / 降序 desc(从大到小)

语法

select * from 表名 order by 列名[,列名] asc/desc;

注意:如果在没有指定asc或者desc, 那么默认情况下使用升序排序规则。

总分排序

特征:在order by 中可以使用别名,并且null在排序的时候是最小优先级。

多列排序

语法:order by 列1,列2 asc/desc;

--只有列1相同时,才会使用列2进行排序。

2.1.7条件查询

注意:

1. WHERE 条件可以使用表达式,但不能使用别名。而order by中可以使用别名 
2. AND 的优先级高于 OR ,在同时使用时,需要使用小括号 () 包裹优先执行的部分。

为什么 where 中不能使用别名,而 order by 却可以?

MySQL的执行顺序如下:
1.FROM阶段
2.WHERE阶段
3.GROUP BY阶段
4.HAVING阶段
5.SELECT阶段
6.ORDER BY阶段
7.LIMIT阶段

例子如下:

  数学成绩为 NULL 的人
select * from score where math is null;
数学成绩及格的人
select * from score where math> 60 ;
总成绩大于150分的人
select name,math+chinese+english as total from score where math+chinese+english> 150 ;
注意:where 中不能使用别名。
语文成绩和数学成绩都 > 80 分的人
select name,math,chinese from score where math> 80 and chinese> 80 ;
语文成绩或数学成绩大于 80 分的人
select name,chinese,math from score where chinese > 80 or math > 80;
数学成绩在x和y之间;between x and y
select name,math from score where math between 60 and 90 ;
数学成绩等于 99 和 100 分的同学:
select name,math from score where math in( 99 , 100 );
模糊查询:
% 和 _ 的区别:
%:匹配任意字符;
_:匹配一个字符。
-- % 匹配任意多个(包括 0 个)字符
SELECT name FROM exam_result WHERE name LIKE ' 孙 %' ; -- 匹配到孙悟空、孙权
-- _ 匹配严格的一个任意字符
SELECT name FROM exam_result WHERE name LIKE ' 孙 _' ; -- 匹配到孙权
注意:MySQL 所有查询应考虑最左原则,将能过滤最多条数的条件放到最左边。

2.1.8分页查询

语法:

-- 起始下标为0

-- 从0开始,筛选n条结果

select... from table_name[where...][order by...] limit n;

-- 从s开始,筛选n条结果

select... from table_name[where...][order by...] limit s, n;

select... from table_name[where...][order by...] limit n offset s;

例子如下:

总分数排名前三
select name,chinese+math+english as total from score order by total desc limit 3 ;
总分数第二页(4 - 6 条数据)
select name,chinese+math+english as total from score order by total desc limit 3 offset 3 ;
limit x offset y(x,y 值超出不报错)
select name,chinese+math+english as total from score order by total desc limit 1000 offset 100 ;

3.修改UPDATE

语法:

update table_name set column = expr [, column = expr ...] [where ...] [order by ...] [limit ...];

3.1.全部修改

update score set math=85;

3.2 . 部分修改
update score set math= 85 where name='刘备';
3.3.修改多列
update score set math= 86 ,chinese= 86 where name='刘备';
3.4.表达式修改
全班倒数后 3 名成绩(按总成绩排名) + 10 分:
update score set math=math+ 10 order by math+chinese+english asc;

4.删除数据DELETE

语法:

delete from table_name [where ...] [order by ...] [limit ...];

4.1.删除单条

delete from score where name='刘备'
4.2全部删除
delete from score;
4.3清空表
truncate [table] 名称
delete vs truncate
● truncate 属于DDL,删除快,但是数据不能被恢复(执行原理是相当于重建一个student表,将原来的student表删掉了);delete 删除慢,但数据能恢复。
● delete 删除可以加条件,但 truncate 不能加查询条件。
4.4小结
delete 和 drop 的区别:
delete:属于DML,只删除表中的数据,可以用查询条件。
drop:属于DDL,删除表数据+表结构,不能用where条件。
举个例子:比如有一本书,delete 是把目录撕了,truncate 是把书的内容撕下来烧了,drop 是把书烧了。

全网最全MySQL表的增删改查相关推荐

  1. 数据库概论之MySQL表的增删改查1

    MySQL表的增删改查 1.MySQL表的CRUD 2.插入数据 2.1 语法 2.2 注意事项 3.查找语句 3.1 全列查找 3.2 指定列查询 3.3 指定查询字段为表达式 3.4 查询字段指定 ...

  2. MySQL表的增删改查(基础)

    MySQL表的增删改查(基础) 文章目录 MySQL表的增删改查(基础) 新增(`Create`) 查询(`Retrieve`) 更新(`Update`) 删除(`Delete`) 总结 注释:在SQ ...

  3. MySQL表的增删改查

    MySQL表的增删改查 CRUD 即增加(Create).查询(Retrieve).更新(Update).删除(Delete)四个单词的首字母缩写. 表的操作,是以一套记录为基本单位: 增.删只能是以 ...

  4. MYSQL表的增删改查进阶(下)

    MYSQL表的增删改查进阶 4. 查询 4.1 聚合查询 4.1.1 聚合函数 4.1.2 group by字句 4.1.3 having 4.2 联合查询 4.2.1 内连接 4.2.2 外连接 4 ...

  5. 2.MySQL表的增删改查(进阶)

    这里写目录标题 MySQL表的增删改查(进阶) 1.数据库约束 2.表的设计 3.新增 4.查询 4.1 聚合查询 4.2 联合查询 5.内容重点总结 MySQL表的增删改查(进阶) 1.数据库约束 ...

  6. 【MySQL系列】 MySQL表的增删改查(进阶)

    目录 ??前言 ??一.数据库约束 ???1.1 约束类型 ???1.2 null约束 ???1.3 unique约束 ???1.4 default约束 ???1.5 primary key 约束 ? ...

  7. php mysql表的增删改查,PHP 之Mysql增删改查操作案例

    1:user表: CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(32) NOT NULL, PR ...

  8. MySQL表的增删改查--你都知道吗?

    文章目录 CRUD 查询 修改 删除 数据库约束 数据库的设计 插入查询的数据 聚合查询 分组查询 联合查询/多表查询(重点) 内连接与外连接 子查询 合并查询 注释:在SQL中使用 --(空格) + ...

  9. 【MySQL】(万字解析)MySQL表的增删改查(进阶-上)

    快速跳转✅ 1.数据库的约束 1.1 约束类型 1.2 NULL约束 1.3 UNIQUE:唯一约束 1.4 DEFAULT:默认值约束 1.5 PRIMARY KEY:主键约束 1.6 FOREIG ...

最新文章

  1. 迎接5G普及风暴,还缺这把「万能钥匙」
  2. Select下拉列表框(添加、删除option)
  3. 【Java学习笔记九】多线程
  4. python 面试问题_值得阅读的30个Python面试问题
  5. html引入png不显示透明北京,解决在网页上显示PNG图片底色不透明的方法
  6. Datedifff返回两个日期之间的天数
  7. 苹果新Metal API实测:四倍完爆OpenGL ES
  8. 数据科学和人工智能技术笔记 一、向量、矩阵和数组
  9. 多希望当年做工程师时我能明白这三个道理!
  10. Pascal VOC2011落下帷幕
  11. cms php套件,PHPCMS服务器套件(Pc_webserver)
  12. 二值图像分析—轮廓发现
  13. mysql数据库增加一行_在数据库中添加一行的SQL语句怎么写?
  14. python 关于sys.argv[1]语句报错IndexError: list index out of range的解决
  15. Joplin+坚果云同步
  16. mybatis lazyload
  17. iOS 内购提示不允许App内购买项目,打开内购方式和检测不允许内购的方法。
  18. web渗透测试学习路径图
  19. 猿创征文|浅谈区块链-区块链是什么?
  20. 基于ESP32+AMG8833的物联网红外成像测温枪

热门文章

  1. ${}和`${}`的用法
  2. 化工厂人员定位保障安全管理
  3. 一键彻底关闭Win10自带Windows Defender杀毒软件
  4. varnish 缓存php,php实现监控varnish缓存服务器的状态
  5. 基于 STM32对音频数据的 Flash 读取与 DAC 播放
  6. 调出夕阳日落照片效果
  7. 浏览器如何清除缓存教程
  8. matlab2014启动很慢,[转载]matlab启动慢的解决方法
  9. 3、微信小程序-通信
  10. 一文弄懂Flink网络流控及反压