一、使用MYSQL

  • 展示所有数据库
show databases;
  • 选择数据库
use crashcourse;
  • 展示该数据库中所有的表
show tables;
  • 还可以展示表列的shema约束
show columns from customers;

快捷方式

describe customers;
  • 其他show语句通过使用help shop命令来帮助使用

二、检索数据

本章讲述select、limit的基本使用

  • 检索单个列
select prod_name from products;

注意:SQL语句和大小写

sql语句不区分大小写,但是一般将sql语句写为大写,列名、表名写为小写,这样易于阅读和调试

但注意,mysql4.1之前数据库名、表名、列名区分大小写,而mysql4.1后不再进行区分

  • 检索多个列
select prod_id,prod_name,prod_price from products;

注意:多个列名直接通过逗号隔开

  • 检索所有列
select * from products;

其中 * 为通配符,当不需要检索所有列时,不建议使用 * 取获取所有列,因为会降低性能

  • 检索不同的行
SELECT DISTINCT vend_id from products;

使用DISTINCT关键字,返回的数据中则是不同的值,帮助我们为数据去重。

注意:DISTINCT作用于所有列,而不仅是前置它的列

  • 限制结果
SELECT prod_name FROM products LIMIT 5;

使用limit显示返回的数据,可以作用于分页查询

其中limit的参数 5 表示返回的数据不多于 5 行

SELECT prod_name FROM products LIMIT 5,5;

其中参数 5,5 表示返回从第六行开始的5行数据

因此,带一个值的limit都是从第一行开始,带两个值的limit都是从指定行号开始

注意:行0

检索出来的第一行为行0而不是行1,因此limit 1,1表示检索出第二行的一条数据

当然,上述参数理解有些困难的话,还可以使用以下sql

SELECT prod_name FROM products LIMIT 5 OFFSET 5

表示从第六行(行5)开始的5行数据

  • 使用完全限定的表名
select products.prod_name from products;

这种完全限定的表示方式其实是用于多表联查时的重复列名做区分的

三、排序检索数据

本章讲述order by的基本用法

  • 排序数据
select prod_name from products order by prod_name;

表示对 prod_name列 以字母顺序排列

  • 按多个列排序
select prod_id,prod_price,prod_name
from products
order by prod_price,pord_name;

表示先对prod_price进行排序,当prod_price具有相同的prod_name时,再对prod_name进行排序

  • 指定排序方向
select prod_id,prod_price,prod_name
from products
order by prod_price desc;

order by的排序方式模式是以升序排列的,通过desc指定降序排列

select prod_id,prod_price,prod_name
from products
order by prod_price desc,prod_name;

表示按照产品价格降序排列,当价格相同时对产品名字进行默认的升序排列

  • 排序的规则

A与a相同吗?a位于B之前还是位于Z之后?这并不其ASCII排列有关,而是与数据库的排序规则有关

在MySQL的默认行为中,其字典(dictionary)排序顺序认为 A 与 a 相同,当然也可以根据需要去更改

  • 通过排序返回最值
select prod_price
from products
order by prod_price desc
limit 1

通过order by 与 limit 的组合返回最大值与最小值

四、过滤数据

本章讲述where的基本使用

  • 使用WHERE子句
select prod_name,prod_price
from products
where prod_price=2.50;

结果只返回产品价格为2.50的数据

注意:

我们更建议使用这种服务器层的过滤,而不是将所有数据都搜索出来给了应用层让java代码去实现过滤,这样会提高性能

where应该位于order by语句之前

  • where子句操作符

where的过滤条件不仅仅是 = ,还可以使用 <>、!=、<、<=、>、>=、BETWEEN ... AND...等等

select prod_name,prod_price
from products
where prod_price between 5 and 10;
  • 空值查询
select cust_id
from customers
where cust_email is null;

通过 is null 来将返回未填写email的所有用户的id

五、数据过滤

本章讲述where的高级用法和NOT、IN操作符

组合where子句

  • AND操作符
select prod_id,prod_price,prod_name
from products
where vend_id = 1003 and prod_price <=10;
  • OR操作符
select prod_id,prod_price,prod_name
from products
where vend_id = 1002 or vend_id = 1003;

注意:两个操作符的计算次序

需求:返回10美金以上且有1002或者1003制造的所有产品

select prod_id,prod_price,prod_name
from products
where vend_id = 1002 or vend_id = 1003 and prod_price >=10;

这条sql并不能满足需求!会先进行and操作,再进行or操作

select prod_id,prod_price,prod_name
from products
where (vend_id = 1002 or vend_id = 1003) and prod_price >=10;

将or操作加上括号即可

  • IN操作符
select prod_id,prod_price,prod_name
from products
where vend_id in (1002,1003);

结果相当于底下的or查询

select prod_id,prod_price,prod_name
from products
where vend_id = 1002 or vend_id = 1003

注意:in操作符比or操作符执行更快

  • NOT操作符
select prod_id,prod_price,prod_name
from products
where vend_id not in (1002,1003);

同样的,not操作符也可以对 between、exists取反

《MySQL必知必会》知识汇总一的更多相关文章

  1. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

  2. 《MySQL 必知必会》读书总结

    这是 <MySQL 必知必会> 的读书总结.也是自己整理的常用操作的参考手册. 使用 MySQL 连接到 MySQL shell>mysql -u root -p Enter pas ...

  3. 《MySQL必知必会》[01] 基本查询

    <MySQL必知必会>(点击查看详情) 1.写在前面的话 这本书是一本MySQL的经典入门书籍,小小的一本,也受到众多网友推荐.之前自己学习的时候是啃的清华大学出版社的计算机系列教材< ...

  4. mysql必知必会系列(一)

    mysql必知必会系列是本人在读<mysql必知必会>中的笔记,方便自己以后查看. MySQL. Oracle以及Microsoft SQL Server等数据库是基于客户机-服务器的数据 ...

  5. mysql必知必会

    春节放假没事,找了本电子书mysql必知必会敲了下.用的工具是有道笔记的markdown文档类型. 下面是根据大纲已经敲完的章节,可复制到有道笔记的查看,更美观. # 第一章 了解SQL## 什么是S ...

  6. 《MySQL必知必会》整理

    目录 第1章 了解数据库 1.1 数据库基础 1.1.1 什么是数据库 1.1.2 表 1.1.3 列和数据类型 1.1.4 行 1.1.5 主键 1.2 什么是SQL 第2章 MySQL简介 2.1 ...

  7. 脑残式网络编程入门(三):HTTP协议必知必会的一些知识

    本文原作者:“竹千代”,原文由“玉刚说”写作平台提供写作赞助,原文版权归“玉刚说”微信公众号所有,即时通讯网收录时有改动. 1.前言 无论是即时通讯应用还是传统的信息系统,Http协议都是我们最常打交 ...

  8. mysql 必知必会总结

    以前 mysql 用的不是很多, 2 天看了一遍 mysql 必知必会又复习了一下基础.  200 页的书,很快就能看完, 大部分知识比较基础, 但还是了解了一些以前不知道的知识点.自己做一个备份,随 ...

  9. MySql必知必会内容导图

    <MySQL必知必会>从介绍简单的数据检索开始,逐步深入一些复杂的内容,包括联结的使用.子查询.正则表达式和基于全文本的搜索.存储过程.游标.触发器.表约束,等等.通过重点突出的章节,条理 ...

  10. MySQL必知必会(第4版)整理笔记

    参考书籍: BookName:<SQL必知必会(第4版)> BookName:<Mysql必知必会(第4版)> Author: Ben Forta 说明:本书学习笔记 1.了解 ...

随机推荐

  1. Django 目录

    1 Python Web开发主流框架 2 Django 简介和版本介绍 3 Django 使用cmd 创建工程 4 Django 创建 APP和目录结构介绍 5 Django 使用VScode 创建工 ...

  2. 使用KVM的命令行方式安装centos7虚拟机

    前提条件 1.宿主机上已经安装KVM软件,参考网址:https://www.cnblogs.com/sanduzxcvbnm/p/15538881.html 2.已经上传centos7镜像到宿主机里 ...

  3. 第六章:Django 综合篇 - 7:网站地图sitemap

    网站地图是根据网站的结构.框架.内容,生成的导航网页,是一个网站所有链接的容器.很多网站的连接层次比较深,蜘蛛很难抓取到,网站地图可以方便搜索引擎或者网络蜘蛛抓取网站页面,了解网站的架构,为网络蜘蛛指 ...

  4. PVC-U排水管的断管与接管

    1. PVC-U管的常用切割工具 2. PVC-U管的胶粘剂 3. 用胶粘剂粘接PVC-U管与管件

  5. .NET6 使用 AutoFac (解析)

    一.Net 6环境下的.net core项目里如何使用Autofac实现依赖注入. 通常的,我们把其他服务注入到Controller时,使用.net core自带的依赖注入即可,但是如果我们要实现自定 ...

  6. 智能工厂的ERP和MES之间的区别?

    无论在哪里,ERP(Enterprise Resource Planning,企业资源计划)和MES(Manufacturing Execution System,即制造执行系统)系统都不是同样的东西 ...

  7. Ubuntu 20.04安装mysql后用mysql root无法登录

    刚安装mysql后,执行 mysql -u root -p 提示无法执行 解决方案: sudo mysql -u root -p 使用root权限不用密码就能进入mysql 然后 >ALTER ...

  8. R及R Studio下载安装教程(超详细)

    R 语言是为数学研究工作者设计的一种数学编程语言,主要用于统计分析.绘图.数据挖掘. 如果你是一个计算机程序的初学者并且急切地想了解计算机的通用编程,R 语言不是一个很理想的选择,可以选择 Pytho ...

  9. do-while循环的使用

    一.循环结构的4个要素 ① 初始化条件 ② 循环条件 --->是boolean类型 ③ 循环体 ④ 迭代条件 二.do-while循环结构: ①do{ ③; ④;}while(②); 执行过程: ...

  10. VS Code For Web 深入浅出 -- 进程间通信篇

    在上一篇中,我们一起分析了 VS Code 整体的代码架构,了解了 VS Code 是由前后端分离的方式开发的.且无论前端是基于 electron 还是 web,后端是本地还是云端,其调用方式并无不同 ...