MySQL必知必会笔记(一)

MySQL必知必会是一本很优秀的MySQL教程书,并且相当精简,在日常中甚至能当成一本工作手册来查看。本系列笔记记录的是:1.自己记得不够牢的代码;2.自己觉得很重要的代码;3.方便查缺补漏。

Unit1

  • 主键

    1.应该总是定义主键。

    2.不更新主键列中的值。

    3.不重用主键列的值。

    4.不在主键列中使用可能会更改的值。

Unit3

选择数据库

USE databasename

了解数据库和表

//用show命令来显示信息
SHOW DATABASES;
SHOW TABLES;
// show亦可以用来显示列, SHOW COLUMNS需要给出一个表名(customers)
SHOW COLUMNS FROM customers;
// mysql支持使用DESCRIBE作为show columns from 的一种快捷方式
SHOW STATUS // 用于显示广泛的服务器状态信息
SHOW CREATE DATABASE;
SHOW CREATE TABLE; // 分别用来显示创建特定数据库或表
SHOW GRANTS; // 显示授予用户的安全权限
SHOW ERRORS;
SHOW WARINGS;

Unit4

select语句

select prod_name from products;
// 输出的数据是未排序数据(瞎排的)
// 检索多个列
select prod_id, prod_name from products;
// 检索所有列
select * from products;
// 检索不同的(唯一)的列,DISTINCT关键字
select distinct vend_id from products;

注意:不能部分使用distinct,因为distance关键字应用于所有列,如果给出select distance vendid, prodprice,除非指定的两个列都不同,否则所有行都会被检索出来。

//限制结果(LIMIT)
select prod_name from products limit 5;
// 从x行开始的y行, LIMIT x,y
select prod_name from products limit 5, 5;

注意:第一行为行0

//完全限定表名
select products.prod_name from products;

关键点:select, distance, limit

Unit5

数据排序

ORDER BY子句取一个或多个列的名字,据此对输出进行排序

select prod_name from products order by prod_name;

注意:多个列排序,仅在prodprice具有多个相同值时才对prodname进行排序

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

注意:指定排序方向(默认是升序),使用DESC,如果想在多个列上降序,每个列都要指定DESC。

select prod_id, prod_price, prod_name
from products
order by prod_price DESC, prod_name;
//e.g. 使用order by 和limit找到最高或最低的值

select prod_id, prod_price, prod_name

from products

order by prod_price DESC

limit 1;

关键点:order by, DESC

Unit6

本章重点是过滤数据,应使用where子句。

//检查单个值
select prod_id, prod_price, prod_name
from products
where prod_price = 2.50;

注意:同时使用orderby 和 where子句时,应该让orderby位于where之后

// 列出所有小于10的产品
select prod_name, prod_price
from products
where prod_price < 10; //不匹配检查,列出供货商不是1003制造的产品

select vend_id, prod_name

from products

where vend_id <> 1003;

// where vend_id != 1003; 推荐用 !=
//范围值检查(between and)

select prod_id, prod_price, prod_name

from products

where prod_price between 5 and 10;

注意:between and 关键字包含范围内所有值,包括开始值和结束值

// 空值检测
select cust_id
from customers
where cust_email is NULL;

关键点: where, between and, <>

Unit7

操作符

AND 和 OR 操作符

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

注意:AND在计算次序中优先度更高
注意:任何时候使用具有AND OR操作符的where子句都应该使用圆括号明确的确定分组

IN操作符

select prod_name, prod_price
from products
where vend_id in (1002, 1003)
order by prod_name

注意:IN操作符比OR执行的更快

NOT操作符

select prod_name, prod_price
from products
where vend_id NOT IN (1002, 1003)
order by prod_name

注意:NOT 支持对IN BETWEEN 和 EXISTS子句取反

关键点: AND, OR, IN, NOT

Unit8

通配符

LIKE操作符
// 百分号%通配符: %表示任何字符出现任意次数,0,1,或无数
select prod_name, prod_price
from products
where prod_name like 'jet%';
//e.g. jet开头的任意代码

// %jet% 无论jet字符串前后出现的什么东西都能匹配出来

注意: % 可以匹配0个字符

// _ 下划线通配符
// 下划线与%相似,但只匹配一个字符

关键点:%, _

Unit9

正则表达式

REGEXP关键字

select prod_name, prod_price
from products
where prod_name regexp '1000';

注意:如果匹配的东西在列值中出现,like不会返回,但是regexp会返回。

//以下的正则表达式在实际使用中应该看见就知道什么作用
'.000' //.
'1000|2000' //or
'[123] Ton' //匹配几个字符之一
'[1-5] Ton' //匹配范围
'[a - z]'
'\\.' //匹配特殊符号
  • : 0个或多个
  • : 1个或多个(等于{1,})

    ? : 0个或一个(等于{0, 1})

    {n} : 指定数目匹配

    {n,} :不少于指定数目的匹配

    {n,m} : 匹配数目的范围(m不超过255)
select prod_name, prod_price

from products

where prod_name regexp '\([0-9] sticks?\)' // 定位符

^ : 文本的开始

$ : 文本的结尾

[[:<:]] : 词的开始

[[:>:]] : 词的结尾
select prod_name, prod_price

from products

where prod_name regexp '[1]'//在匹配串的开始,只在.或任意数字为串中第一个字符才匹配


  1. 0-9\.

MySQL必知必会复习笔记(1)的更多相关文章

  1. 《mysql必知必会》读书笔记--存储过程的使用

    以前对mysql的认识与应用只是停留在增删改查的阶段,最近正好在学习mysql相关内容,看了一本书叫做<MySQL必知必会>,看了之后对MySQL的高级用法有了一定的了解.以下内容只当读书 ...

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

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

  3. MySQL必知必会1-20章读书笔记

    MySQL备忘 目录 目录 使用MySQL 检索数据 排序检索数据 过滤数据 数据过滤 用通配符进行过滤 用正则表达式进行搜索 创建计算字段 使用数据处理函数 数值处理函数 汇总数据 分组数据 使用子 ...

  4. 《MySQL必知必会》学习笔记整理

    简介 此笔记只包含<MySQL必知必会>中部分章节的整理笔记.这部分章节主要是一些在<SQL必知必会>中并未讲解的独属于 MySQL 数据库的一些特性,如正则表达式.全文本搜索 ...

  5. MySQL使用和操作总结(《MySQL必知必会》读书笔记)

    简介 MySQL是一种DBMS,即它是一种数据库软件.DBMS可分为两类:一类是基于共享文件系统的DBMS,另一类是基于客户机——服务器的DBMS.前者用于桌面用途,通常不用于高端或更关键应用. My ...

  6. 读《MySql必知必会》笔记

    MySql必知必会 2017-12-21 意义:记录个人不注意的,或不明确的,或不知道的细节方法技巧,此书250页 登陆: mysql -u root-p -h myserver -P 9999 SH ...

  7. 《MySQL必知必会》学习笔记——前言

    前言 MySQL已经成为世界上最受欢迎的数据库管理系统之一.无论是用在小型开发项目上,还是用来构建那些声名显赫的网站,MySQL都证明了自己是个稳定.可靠.快速.可信的系统,足以胜任任何数据存储业务的 ...

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

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

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

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

随机推荐

  1. nodejs-REPL/回调函数/事件循环

    REPL 回调函数 事件循环 REPL----------------------------------------------------- Node.js REPL(Read Eval Prin ...

  2. [CTF]摩斯电码

    摩尔斯电码 -----------转载 https://morse.supfree.net/ 摩尔斯电码定义了包括:英文字母A-Z(无大小写区分)十进制数字0-9,以及"?"&qu ...

  3. MySQL导入与导出SQL

    一.导入SQL 方法一: (1)选择数据库 use databaseName; (2)设置数据库编码 set names utf8; (3)导入数据(注意sql文件的路径) source **.sql ...

  4. Vue(1):用Vue-cli构建Vue3项目

    使用Vue-cli构建Vue3项目 1.检查node版本 node -v 以上node版本位14.15.0满足Vue3项目的创建条件(Vu3需要node 版本8以上) 为什么需要安装node? vue ...

  5. 『居善地』接口测试 — 5、使用Requests库发送POST请求

    目录 1.请求正文是application/x-www-form-urlencoded 2.请求正文是raw (1)json格式文本(application/json) (2)xml格式文本(text ...

  6. Morgan Stanley Books List:经典金融书籍推荐

    一.经济学 1. 中华帝国的专制制度,佛朗索瓦.魁奈 2. 资本论(共3卷),马恩全集 3. 国家竞争优势,麦克尔.波特 4. Essentials of corporate analysis, by ...

  7. Redis6.x学习笔记(四)复制

    复制概述 Redis支持复制的功能,以实现当一台服务器的数据更新后,自动将新的数据异步同步到其它数据库. Redis复制实现中,把数据库分为主数据库master和从数据库slave,主数据库可以进行读 ...

  8. .Net Core with 微服务 - 架构图

    上一次我们简单介绍了什么是微服务(.NET Core with 微服务 - 什么是微服务 ).介绍了微服务的来龙去脉,一些基础性的概念.有大佬在评论区指出说这根本不是微服务.由于本人的能力有限,大概也 ...

  9. Linux(深度)系统安装富士施乐(网络)打印机

    一般来讲,linux系统识别打印机没有问题,重点难点在于后面设置.此文特别感谢:河北石龙的陈一繁销售代表.P288dw施乐官网并未提供Linux的驱动并在安装过程中遇到很多问题,其不厌其烦的为我联系厂 ...

  10. property - 必应词典 美['prɑpərti]英['prɒpə(r)ti] n.属性;财产;财产权;【戏】道具

    英语 (已检测) 自动检测 阿拉伯语 自动检测 爱尔兰语 自动检测 爱沙尼亚语 自动检测 保加利亚语 自动检测 冰岛语 自动检测 波兰语 自动检测 波斯尼亚语(拉丁语) 自动检测 波斯语 自动检测 丹 ...