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. 这届网友实在是太有才了!用python爬取15万条《我是余欢水》弹幕

    年初时我们用数据解读了几部热度高,但评分差强人意的国产剧,而最近正午阳光带着两部新剧来了,<我是余欢水>和<清平乐>,截止到目前为止,这两部剧在豆瓣分别为7.5分和7.9分,算 ...

  2. cheat sheet 简介

    cheat sheet 速查表 /小抄 如果期末考试老师只让你让带一张A4纸,合法"作弊",纸上能写多少全凭自己本事,你会写什么?大部分人应该把整个课程的知识重点梳理一遍,方便记忆 ...

  3. E - Dungeon Master BFS

    [NWUACM] 你被困在一个三维的空间中,现在要寻找最短路径逃生!空间由立方体单位构成你每次向上下前后左右移动一个单位需要一分钟你不能对角线移动并且四周封闭是否存在逃出生天的可能性?如果存在,则需要 ...

  4. Laravel - 基础

    1.使用 composer 创建项目 composer create-project --prefer-dist laravel/laravel blog 报错1 [ErrorException]pr ...

  5. 3. css百度制作字体图片

    http://fontstore.baidu.com/static/editor/index.html?qq-pf-to=pcqq.group

  6. Java实现链表(个人理解链表的小例子)

    1.单链表和数组的区别 数组:数组的存储空间是连续的,需要事先申请空间确定大小,通过下标查找数据,所以查找速度快,但是增加和删除速度慢 链表:离散存储,不需要事先确定大小,通过头指针加遍历查找数据,查 ...

  7. cli命令速查

    在文件的指定行(n)插入指定内容: sed -i "niecho "haha"" a 执行后,在a文件的第n行插入echo "haha" 多 ...

  8. 改善 Python 程序的 91 个建议

    1.引论 建议1:理解Pythonic概念—-详见Python中的<Python之禅> 建议2:编写Pythonic代码 避免不规范代码,比如只用大小写区分变量.使用容易混淆的变量名.害怕 ...

  9. ORM之单表、多表操作

    参考1 参考2 表与表之间的关系: 一对一(OneToOneField):一对一字段无论建在哪张关系表里面都可以,但是推荐建在查询频率比较高的那张表里面 一对多(ForeignKey):一对多字段建在 ...

  10. nignx location index的用法

    来源:https://blog.csdn.net/qq_32331073/article/details/81945134#_10 index指令的作用 在前后端分离的基础上,通过Nginx配置,指定 ...