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. 令人迷惑的Gamma

    概述 首先我想说,接触到Gamma的概念也很长时间了,一直没有认真的去学习它.知其然而不知其所以然.最近恰巧学到了这一部分,就想彻底地搞懂它. CRT 说起Gamma,肯定离不开CRT(阴极射线管). ...

  2. 19.SpringCloud实战项目-SpringCloud整合Alibaba-Nacos配置中心

    SpringCloud实战项目全套学习教程连载中 PassJava 学习教程 简介 PassJava-Learning项目是PassJava(佳必过)项目的学习教程.对架构.业务.技术要点进行讲解. ...

  3. Django文档阅读-Day2

    Django文档阅读 - Day2 Writing your first Django app, part 1 You can tell Django is installed and which v ...

  4. C++写日志方法调试

    调试方法有很多 介绍一种奇怪的?调试方法哈哈 通过WriteLog记录返回值查看返回结果. string str_log;stringstream ssteam;ssteam << &qu ...

  5. 用pip install不能成功安装时的处理方法

    解决办法: pip install pymysql -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

  6. mybatis源码学习:插件定义+执行流程责任链

    目录 一.自定义插件流程 二.测试插件 三.源码分析 1.inteceptor在Configuration中的注册 2.基于责任链的设计模式 3.基于动态代理的plugin 4.拦截方法的interc ...

  7. Python flask 构建可扩展的restful ap

    Flask-RESTful是flask的扩展,增加了对快速构建REST API的支持. Flask-RESTful通过最少的设置鼓励最佳的实践. pip install flask-restfulFl ...

  8. [Qt] QString 常用函数

    1. append(), prepend() 2. count(), size(), length() 这三个函数是相同的 3. trimmed() 去掉首尾空格 4. isNull() 对未赋值的字 ...

  9. [Qt] 去除窗体右上角的问号

    this->setWindowFlags(windowFlags()&~Qt::WindowContextHelpButtonHint);

  10. vue项目中使用bpmn-基础篇

    内容概述 本系列“vue项目中使用bpmn-xxxx”分为五篇,均为自己使用过程中用到的实例,手工原创,目前属于陆续更新中.主要包括vue项目中bpmn使用实例.应用技巧.基本知识点总结和需要注意事项 ...