ORDER BY排序

ORDER BY默认是ASC(升序),降序是DESC








LIMIT限制查询结果显示条数

LIMIT显示条数



LIMIT偏移量,显示条数





到目前为止有关查询数据的操作(DQL)


更新数据的拓展

对ORDER BY和LIMIT的应用


删除数据的拓展

对ORDER BY和LIMIT的应用


连接查询

连接查询是将两个和两个以上的表按某个条件连接起来,从中选取需要的数据,是在同时查询两个或两个以上的表时使用的,当不同的表中存在相同意义的字段时,可以通过该字段连接这几个表。

内连接查询

用得比较多,可以显示两个表中符合连接条件的记录。









内连接查询的格式

SELECT 字段名称1,字段名称2…
FROM tbl_name1
INNER JOIN\CROSS JOIN\JOIN tbl_name2
ON 条件;










外连接查询

分为两种:





LEFT [OUTER] JOIN(左外连接):显示左表的全部记录及右表符合连接条件的记录



RIGHT [OUTER] JOIN (右外连接):显示右表的全部记录以及左表符合连接条件的记录


外键

  • 概述

    外键是表的一个特殊字段。

    被参照的表是主表,外键所在字段的表为子表。

    设置外键的原则需要记住,就是依赖于数据库中已经存在的表的主键

    外键的作用建立该表与其父表的关联关系。父表中对记录做操作时,子表中与之对应的信息也应有相应的改变。

  • 格式

--‘子表字段名称’和‘主表字段名称’要有关联
--在创建子表时写入
--外键名称可给可不给
CONSTRAINT 外键名称 FOREIGN KEY(子表字段名称) REFERENCES 主表名称(主表字段名称)
  • 特点

    1.保持数据的一致性和完整性

    2.可以实现一对一或一对多的关系

  • 注意事项

    1.父表与子表必须使用相同的存储引擎,而且禁止使用临时表

    2.数据表的存储引擎只能为InnoDB

    3.外键列和参照列必须具有相似的数据类型,其中数字的长度或是否有符号位必须相同,而字符的长度则可以不同

    4.外键列和参照列必须创建索引。如果外键列不存在索引的话,MySQL将自动创建索引

  • 外键约束的参照操作

    CASCADE:从父表删除或更新且自动删除或更新子表中匹配的行

    SET NULL:从父表删除或更新行,并设置子表中的外键列为NULL。如果使用该选项,必须保证子表列没有指定NOT NULL

    RESTRICT:拒绝对父表的删除或更新操作

    NO ACTION:标准SQL的关键字,在MySQL中与RESTRICT相同


示例

为什么需要用到外键?










创建表时外键起到的作用










添加外键格式

ALTER TABLE tbl_name ADD CONSTRAINT 外键名称 FOREIGN KEY (子表字段名称) REFERENCES 主表名称(主表字段名称)

删除外键格式

ALTER TABLE tbl_name DROP FOREIGN KEY 外键名称;

示例






  • CASCADE 格式
CONSTRAINT 外键名称 FOREIGN KEY(子表字段名称) REFERENCES 主表名称(父表字段名称) ON DELETE\UPDATE CASCADE

示例




  • SET NULL 格式
CONSTRAINT 外键名称 FOREIGN KEY(子表字段名称) REFERENCES 主表名称(父表字段名称) ON DELETE\UPDATE SET NULL

示例






联合查询

  • UNION
--要查询的字段数一定要相同
--查询的字段属性也最好是同一类型
SELECT 字段名称1 FROM tbl_name1 UNION SELECT 字段名称2 FROM tbl_name2;
  • UNION ALL
SELECT 字段名称1 FROM tbl_name1 UNION ALL SELECT 字段名称2 FROM tbl_name2;
  • UNION和UNION ALL的区别

    1.UNION是去掉相同记录

    2.UNION ALL是简单地合并到一起

示例






子查询

  • 概述

    子查询是将一个查询语句嵌套在另一个查询语句中。内层查询语句的查询结果,可以作为外层查询语句提供条件。

  • 引发子查询的情况

    1.使用 [NOT]IN 的子查询

    2.使用 比较运算符 的子查询

    3.使用 [NOT]EXISTS 的子查询

    4.使用 ANY|SOME|ALL 的子查询

  • 将查询结果写入到数据表的格式

INSERT [INTO] tbl_name [(col_name,...)]
SELECT ...
  • 创建数据表的同时将查询结果写入到数据表的格式
CREATE TABLE [IF NOT EXISTS] tbl_name
[(create_definition...)]
select_stament

示例
















正则表达式查询

格式

SELECT 字段名称 FROM tbl_name WHERE 字段名称 REGEXP '匹配模式';

常用匹配方式



 

示例













MySQL基础总结(三)的更多相关文章

  1. MySQL基础(三)——约束

    MySQL基础(三)--约束 约束是在表上强制执行的数据校验规则,主要用于维护表中数据的完整性以及当数据之间有以来关系时,保护相关的数据不会被删除. 根据约束对列的限制,可以划分为:单列约束(只约束一 ...

  2. Mysql基础(三):MySQL基础数据类型、完整性约束、sql_mode模式

    目录 2.MySQL基础数据类型.完整性约束.sql_mode模式 1. MySQL常用数据类型 2. 完整性约束 3. MySQL的sql_mode模式说明以及设置 2.MySQL基础数据类型.完整 ...

  3. MYSQL基础笔记(三)-表操作基础

    数据表的操作 表与字段是密不可分的. 新增数据表 Create table [if not exists] 表名( 字段名 数据类型, 字段名 数据类型, 字段n 数据类型 --最后一行不需要加逗号 ...

  4. Linux系统——MySQL基础(三)

    ### MySQL主从复制实践#### 主从复制实践准备(1)主从复制数据库实战环境准备MySQL主从复制实践对环境的要求比较简单,可以是单机单数据库多实例的环境,也可以是两台服务器,每个机器一个独立 ...

  5. MySQL基础(三)多表查询(各种join连接详解)

    Mysql 多表查询详解 一.前言 二.示例 三.注意事项 一.前言 上篇讲到Mysql中关键字执行的顺序,只涉及了一张表:实际应用大部分情况下,查询语句都会涉及到多张表格 : 1.1 多表连接有哪些 ...

  6. mysql基础(三)存储引擎和锁

    存储引擎的概念: 关系型数据库表是用于存储和组织信息的数据结构,可以将表理解为由行和列组成的表格,各种各样,不同的表结构意味着存储不同类型的数据,在数据的处理上也会存在着差异,对于mysql来说,它提 ...

  7. MySQL基础练习(三)

    经过之前两次的学习,这次用MySQL进行略微复杂的操作练习 各部门工资最高的员工 首先创建表employee和表department.如下 我们需要查询每个部门工资最高的员工 select a.Nam ...

  8. MySQL基础(三)(操作数据表中的记录)

    1.插入记录INSERT 命令:,expr:表达式 注意:如果给主键(自动编号的字段)赋值的话,可以赋值‘NULL’或‘DEFAULT’,主键的值仍会遵守默认的规则:如果省略列名的话,所有的字段必须一 ...

  9. mysql基础教程(三)-----增删改、子查询、创建管理表、约束和分页

    插入 INSERT语句语法 从其它表中拷贝数据 • 不必书写 VALUES 子句. • 子查询中的值列表应与 INSERT 子句中的列名对应 update语句 • 可以一次更新多条数据. • 如果需要 ...

  10. MySQL基础(三)

    数据插入 INSERT是用来插入行到数据库表的 ## 给出插入数据的字段名称,使得数据插入不依赖表中列名称的定义顺序 INSERT INTO customers(cust_name,cust_addr ...

随机推荐

  1. SQL Server 2005 sa登录失败。已成功与服务器建立连接 但是在登录过程中发生错误。 provider 共享内存提供程序 error 0 管道的另一端上无任何进程。

    SQL Server 2005 Express版 用户 'sa' 登录失败.该用户与可信 SQL Server 连接无关联.提示错误:已成功与服务器建立连接 但是在登录过程中发生错误. provide ...

  2. Java核心技术--接口与内部类

    接口implement 继承接口,即履行"义务". 接口中所有的方法自动属于public,在接口声明中,不必提供关键字public 接口中决不能含有实例域,也不能在接口中实现方法 ...

  3. Springboot:第一个Springboot程序(一)

    1.创建Springboot项目 选择创建Springboot项目: 填写项目基本信息: 选择Springboot版本以及web依赖(内嵌tomcat): 创建完成: 创建完成后 等待构建maven项 ...

  4. NER命名实体识别,实体级level的评估,精确率、召回率和F1值

    pre = "0 0 B_SONG I_SONG I_SONG 0 B_SONG I_SONG I_SONG 0 0 B_SINGER I_SINGER I_SINGER 0 O O O B ...

  5. 深入理解BIO、NIO、AIO

    导读:本文你将获取到:同/异步 + 阻/非阻塞的性能区别:BIO.NIO.AIO 的区别:理解和实现 NIO 操作 Socket 时的多路复用:同时掌握 IO 最底层最核心的操作技巧. BIO.NIO ...

  6. 【Python可视化】使用Pyecharts进行奥运会可视化分析~

    项目全部代码 & 数据集都可以访问我的KLab --[Pyecharts]奥运会数据集可视化分析-获取,点击Fork即可- 受疫情影响,2020东京奥运会将延期至2021年举行: 虽然延期,但 ...

  7. 异常:由 spring-session pom 引发

    错误异常 Correct the classpath of your application so that it contains a single, compatible version of o ...

  8. Spring Cloud OpenFeign使用教程

    文章目录 Spring Cloud OpenFeign Demo 怎么配置OpenFeignServer 怎么配置OpenFeignClient 多个参数传递问题 FeignClient的日志问题 多 ...

  9. Mark一篇介绍Java垃圾回收和JVM参数设置的文章

    贴出原文连接:重磅!Java 内存管理白皮书,读完它,java 内存管理的问题完全 NO Problem! 读了一遍,对并行的垃圾回收还不是很理解,先mark,消化消化再学习. 文章说的一些JVM设置 ...

  10. vSphere可用性之三准备实验环境

    第三章 准备实验环境 在上篇内容中,讲述了进行VMware HA实验所必需的软硬件条件.接下来将使用这些来搭建实验环境.主要内容为依据拓扑图安装ESX主机系统.ISCSI存储系统. 此次实验环境的建置 ...