第五天MYSQL

第五天MYSQL分页查询、联合查询、DML(修改、删除、插入语句)

第五天MYSQL

2020 5/9

 

十九、分页查询

应用场景:当要显示的数据,一页显示不全,需要分页提交sql请求

语法:(执行顺序已标出)

 

       SELECT 查询列表                      ⑦每执行一步都会生成一个虚拟的结果集

       FROM  表名                               ①

       [join type join 表2                       ②

  on 连接条件                               ③

  where 筛选条件                         ④

  group by 分组字段                     ⑤

  having 分组后的筛选条件          ⑥

  order by 排序的字端]                 ⑧

  limit offet,size;                            ⑨

(offset->要显示条目的索引(起始索引从0开始),size->显示的条数)

 

特点:

①      limit语句放在查询语句的最后面

②      若不加offset(索引),则默认起始索引为0

③     公式:要显示的页数pags,每页的条数size

    select 查询列表 from 表名 limit (page-1)*size,size;

 

#案例1:查询前五条员工信息

 

SELECT * FROM employees LIMIT 0,5;

SELECT * FROM employees LIMIT 5;

 

#案例2:查询第11条-第25条

SELECT * FROM employees LIMIT 10,15;

 

 

#案例3:查询有奖金的员工信息,并且工资较高的前十名显示出来

SELECT

       *

FROM

       employees

WHERE

       commission_pct IS NOT NULL

ORDER BY

       salary DESC

LIMIT 0,

 10;

 

 

二十、联合查询

关键字:union(联合、合并)->将多条查询结果合并成一个结果

语法:

查询语句1

union

查询语句2

union

……

 

应用场景:要查询的结果来自于多个表,且多个表中没有直接的连接关系,但查询的信息一致时

特点:

①     要求多条语句查询的查询列数是一致的!

②     要求多条查询语句的查询的每一列的类型和顺序最好一致

③     union关键字默认是带去重的,如果使用union all可以包含重复项

 

#查询:查询部门编号大于90或邮箱中包含a的员工信息

 

SELECT * FROM employees WHERE department_id>90 OR email LIKE “%a%”;

————————————————————-

SELECT * FROM employees WHERE department_id >90

UNION

SELECT * FROM employees WHERE email LIKE “%a%”;

以上两种放式等价!!!

 

#查询女神表中姓名中有‘周’字的女神名以及男朋友ID和男朋友表中名字有‘鹿’的男生的姓名与ID

SELECT NAME,boyfriend_id FROM beauty WHERE name LIKE “%周%”

UNION

SELECT boyname,id FROM boys WHERE boyname LIKE “%鹿%”;

 第五天MYSQL

 

 

二十一、DML语言(数据操纵语言)

分类:

插入:insert

修改:update

删除:delete

 

#插入语句

语法:(方式一》经典插入)

INSERT INTO FROM 表名(列名、列名…)  VALUES(值1、值2…);

 

#1.插入的值类型要与列的类型一致或兼容(可以隐式的转换)

INSERT INTO beauty(id,name,borndate,phone,photo,boyfriend_id)

VALUES(13,”菜菜”,”2000-12-28″,”000000″,null,0);(插入一条)

 

INSERT INTO beauty(id,name,borndate,phone,photo,boyfriend_id)

VALUES(16,”菜菜”,”2000-12-28″,”000000″,null,0),(14,”MIS詹”,”2001-5-17″,”000000″,null,0)

,(15,”梦玲”,”2000-7-24″,”000000″,null,0);(插入多条)

 

#2.可以为null的列如何插入(不可以为null的列必须插入字段)

#方式一:直接写为null

#方式二:在表名后要修改的列名直接不写

INSERT INTO beauty(id,name,phone,boyfriend_id)

VALUES(17,”汪汪”,”000000″,0);

#列的顺序可以颠倒,但在给值时需要一一对应

#插入时,列数和值得个数必须一一对应

#列名可以省略,默认为所有列,而且列的顺序与表中列的顺序一致

INSERT INTO beauty

VALUES(18,”菜菜”,”2000-12-28″,”000000″,null,0);

 

语法:(方式二)

INSERT INTO 表名

SET 列名=值,列名=值…

 

INSERT INTO beauty

SET id=19,name=”hdjk”,phone=”909090″;

插入的两种方式PK

  1. 方式一支持多行插入,而方式二不支持
  2. 方式一支持多行子查询,而方式二不支持

如下(子查询)

INSERT INTO beauty(id,name,phone)

SELECT 20,”qqqq”,”688944″;

 

INSERT INTO beauty(id,name,phone)

SELECT 34,boyname,”688944″

FROM boys

WHERE id =3;

 

#修改语句

1.修改单表的记录

语法:(执行顺序已标出)

update 表名                                 ①

set 列名=新值,列名=新值,…        ③

where 筛选条件;                        ②

 

 

案例:#修改beauty表中姓唐的女神的电话为0000000

UPDATE beauty

SET phone = “0000000”

WHERE name LIKE “周%”;

 

2.修改多表的记录

语法:(sql92)

update 表1   别名, 表2,别名                                        ①

set 列名=新值,列名=新值,…                                           ③

where 连接条件 and筛选条件;                                     ②

语法:(sql99)

update 表1   别名

inner|left|right join 表2 别名

on 连接条件                                    

set 列名=新值,列名=新值…              

where筛选条件;     

                       

(sql99与语法下的)

#案例1:修改张无忌的女朋友的手机号为114[内连接]

UPDATE beauty b

INNER JOIN boys bo

ON b.boyfriend_id = bo.id

SET b.phone = “114”

WHERE bo.boyname=”张无忌”;

 

#案例2:修改没有男朋友的女神的男朋友编号都为2号

 

UPDATE beauty b

LEFT JOIN boys bo

ON b.boyfriend_id = bo.id

SET b.boyfriend_id=2

WHERE bo.id IS NULL;

 

#删除语句

方式一:delete

1.单表的删除

语法:delete from 表名 where 筛选条件

 

2.多表的删除

(sql92)

语法:delete 表1别名,表2别名#想删除哪个表的信息就写那个表,都想删除就都写

         from 表1 别名,表2  别名

         where 连接条件 and 筛选条件;

(sql99)

语法:

delete 表1别名,表2别名    #想删除哪个表的信息就写那个表,都想删除就都写

from 表1 别名

inner|left|right join 表2  别名 on 连接条件

where筛选条件;

 

(sql99与语法下的)

#删除张无忌的女朋友的信息

DELETE b

FROM beauty b

INNER JOIN boys bo

ON b.boyfriend_id = bo.id

WHERE bo.boyName = “张无忌”;

 

#删除黄晓明的信息以及他女朋友的信息

DELETE b,bo

FROM beauty b

INNER JOIN boys bo

ON b.boyfriend_id = bo.id

WHERE bo.boyName = “黄晓明”;

 

方式二:truncate

语法:

truncate table 表名;(不支持链家筛选条件)

TRUNCATE TABLE boys;(直接清空)

 

两种删除方式PK

  1. delete可以加筛选条件,truncate不能加
  2. truncate删除,效率高一丢丢
  3. 假如要删除的表中有自增长列,

如果用delete删除后,在插入数据,自增长列的值从断点开始,

而truncate删除后,在插入数据,自增长列值从1开始

  1. truncate删除后没有返回值,而delete有(即是否显示表中有几行收到影响,若是truncate,则都是0)
  2. truncate删除不能回滚,而delete删除可以回滚

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/8574.html

(0)
上一篇 2023-02-26
下一篇 2023-02-26

相关推荐

  • 优化Python性能的技巧,让你的程序跑得更快

    优化Python性能的技巧,让你的程序跑得更快a href=”https://www.python100.com/a/sm.html”font color=”red”免责声明/font/a a href=”https://beian.miit.gov.cn/”苏ICP备2023018380号-1/a Copyright www.python100.com .Some Rights Reserved.

    2024-02-17
    99
  • mysqldump 备份恢复_sql2003数据库备份恢复

    mysqldump 备份恢复_sql2003数据库备份恢复场景一 昨天凌晨2点做过一次完全备份,白天正常使用,该下班的时候,好巧啊!硬盘坏了。不过幸运的是做过备份并且二进制日志和数据库分开存放 1、建立数据库并开启二进制日志 建立用于存放二进制日志的文件夹…

    2023-03-03
    137
  • 使用Python绘制简单的点图

    使用Python绘制简单的点图在数据分析与可视化领域,我们经常需要绘制各种类型的图表来展示数据。而在Python中,Matplotlib是一个常用的数据可视化工具库。如果你想绘制一个简单的点图,那么Matplotlib就可以轻松胜任这个任务。这篇文章将介绍如何使用Python以及Matplotlib库绘制简单的点图。

    2024-05-29
    57
  • Flink入门(一)——Apache Flink介绍「建议收藏」

    Flink入门(一)——Apache Flink介绍「建议收藏」Apache Flink是什么? ​ 在当代数据量激增的时代,各种业务场景都有大量的业务数据产生,对于这些不断产生的数据应该如何进行有效的处理,成为当下大多数公司所面临的问题。随着雅虎对hadoop的

    2022-12-19
    150
  • MySQL:5.6 大事务show engine innodb status故障一例

    MySQL:5.6 大事务show engine innodb status故障一例导读: 作者:高鹏(网名八怪),《深入理解MySQL主从原理32讲》系列文的作者。 今天遇到一个朋友的线上问题,大概意思就是说,我有一个线上的大事务大概100G左右,正在做回滚,当前看起来似乎影响了…

    2023-02-06
    174
  • Python笛卡尔积的使用方法

    Python笛卡尔积的使用方法随着人工智能和机器学习的兴起,越来越多的程序员开始使用Python语言。其中,Python的标准库就提供了许多强大的功能,例如内置的模块和函数,例如itertools模块中的笛卡尔积函数。

    2024-05-30
    66
  • 上海市企业数据名录爬取采集与收集

    上海市企业数据名录爬取采集与收集2019年全年上海市新设立各类市场主体43.15万户。其中,新设企业36.76万户;新设个体工商户6.35万户;新设农民专业合作社349户。日均新设企业1476户。至年末,上海市共有各类市场主体27…

    2023-02-27
    154
  • CentOS 7 安装 Oracle 12c 步骤「终于解决」

    CentOS 7 安装 Oracle 12c 步骤「终于解决」CentOS 7 安装 Oracle 12c 步骤 catoop 2019-09-28 23:35:02 2170 收藏 4 分类专栏: 数据库 版权 本例操作系统版本:CentOS 7.7、数据库…

    2023-03-19
    128

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注