第五天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写入Json文件

    使用Python写入Json文件在现如今数据极为重要的时代,如何更好地将数据进行存储与展示对于数据分析与开发人员至关重要。而Json文件,作为一种轻量级的数据交换格式,被广泛应用于各种场景中,如Web API、数据库等。如何使用Python将数据保存到Json文件中?本文将会为您详细讲解。

    2024-04-19
    19
  • python万能(python万能验证码)

    python万能(python万能验证码) Python(发音:英[ˈpaɪθən],美[ˈpaɪθɑ:n]),是一种易学且功能强大的编程语言。

    2023-10-26
    78
  • 用Python实现高效数据爬取

    用Python实现高效数据爬取互联网时代的到来让人们无时不刻不在接收和产生着海量的数据,如何实现高效数据的获取和信息提取已经成为了当今互联网行业最重要的工作之一。在这个过程中,数据爬取技术是至关重要的一环,Python作为一门较为常用的编程语言,有着很多优秀的爬虫框架和工具,使用Python编写代码能够有效地实现高效数据爬取。

    2024-04-21
    20
  • Python中常用转义字符

    Python中常用转义字符在Python中,有一些字符在字符串中具有特殊的含义,如果要在字符串中原样输出这些特殊字符,就需要使用转义字符来帮助实现。本文将介绍Python中常用的转义字符及其用法,帮助读者更好地处理字符串。

    2024-05-06
    17
  • 这次,听人大教授讲讲分布式数据库的多级一致性|TDSQL 关键技术突破[亲测有效]

    这次,听人大教授讲讲分布式数据库的多级一致性|TDSQL 关键技术突破[亲测有效]近年来,凭借高可扩展、高可用等技术特性,分布式数据库正在成为金融行业数字化转型的重要支撑。分布式数据库如何在不同的金融级应用场景下,在确保数据一致性的前提下,同时保障系统的高性能和高可扩展性,是分布式

    2023-06-15
    94
  • 袋鼠云陈吉平:深耕国产自研数字化技术与服务,持续为客户创造价值[亲测有效]

    袋鼠云陈吉平:深耕国产自研数字化技术与服务,持续为客户创造价值[亲测有效]在经济面临下行压力、疫情反复等不确定因素之下,推动数字化转型就成为了许多企业的“救命稻草”。然而,较高的数字化转型门槛、不成系统的数据服务,以及缺乏规范的行业标准等都成了企业数字化转型路上的“绊脚石”

    2023-06-14
    98
  • 网站安全测试与检测中 发现的OA系统中的SQL注入漏洞

    网站安全测试与检测中 发现的OA系统中的SQL注入漏洞网站安全测试与检测中发现的OA系统中的SQL注入漏洞分类专栏:***测试网站***测试网站安全漏洞检测文章标签:网站安全检测网站漏洞修复网站安全维护网站***测试网站安全扫描版权近日,SINE安全监…

    2023-04-06
    99
  • 创建存储函数、删除存储函数及 存储函数与存储过程的区别

    创建存储函数、删除存储函数及 存储函数与存储过程的区别之前,我们列举不少mysql自带的函数,但是有些时候自带函数并不能很好满足我们的需求,此时就需要自定义存储函数了,存储函数与存储过程有些类似,简单来说就是封装一段sql代码,完成一种特定的功能,并返…

    2023-03-30
    104

发表回复

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