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. echarts多个数据添加多个纵坐标

    在我们echarts开发中,肯定会遇到一个问题.那就是当有多个数据且数据大小差距太大时,就会出现有些数据小到看不到的情况.所以在遇到这种情况时,我通常的解决办法就是给他多加一个坐标轴. option  ...

  2. 哈密顿绕行世界问题 HDU2181

    题目大意都比较简单,用vector存一下图,然后爆搜就可以了. #include<bits/stdc++.h> using namespace std; ; vector<]; bo ...

  3. Fiddler抓包过滤

    1.User Fiters启用 2.Action Action:Run Filterset now是否运行,Load Filterset加载,Save Filterset保存: 3.Hosts过滤 Z ...

  4. [linux] [nginx] 一键安装web环境全攻略phpstudy版,超详细!

    找到运行中的服务器(实例). 打开这个主要是看它的IP,是公网ip,公网ip,公网ip,重要的事情说三遍. 接下来我们可以不用在阿里云上操作了,直接用客户端操作,这两个客户端就是Xshell 5和Xf ...

  5. kubernetes的cni0和flannel.1的关系?

    当容器运行之后,节点之间多了个虚拟接口cni0,它是由flanneld创建的一个虚拟网桥叫cni0,供pod本地通信使用.flanneld为每个pod创建一对veth虚拟设备,一端放在容器接口上,一端 ...

  6. nodejs之https双向认证

    说在前面 之前我们总结了https的相关知识,如果不懂可以看我另一篇文章:白话理解https 有关证书生成可以参考:自签证书生成 正题 今天使用nodejs来实现https双向认证 话不多说,直接进入 ...

  7. 进阶 Linux基本命令-1

    vmware三种网络模式1,桥接虚拟机直接连接外网,局域网.宿主机电脑不提供路由. 2,NAT网络地址转换,家庭网 3,host only 只能和宿主电脑打交道 Linux命令形式 命令 +[参数]+ ...

  8. 认证与授权】Spring Security系列之认证流程解析

    上面我们一起开始了Spring Security的初体验,并通过简单的配置甚至零配置就可以完成一个简单的认证流程.可能我们都有很大的疑惑,这中间到底发生了什么,为什么简单的配置就可以完成一个认证流程啊 ...

  9. php 可变变量 $$name

    //可变变量 $name = 'abc'; $$name = '; echo $name . "<br/>"; // abc echo $$name . echo $a ...

  10. tp5--Excel表格导入导出

    来源于:https://www.cnblogs.com/MyIsLu/p/6830579.html PHPExcel 扩展包下载地址:             https://github.com/P ...