MySQL 速查手册

文章目录

  • MySQL 速查手册
    • 1. 开启/关闭数据库
    • 2. 数据库操作
    • 3. 数据表操作
    • 4. 字段操作
    • 5. 数据操作
    • 6. 运算符
    • 7. 高级查询(group by、having、order by、limit)
    • 8. 高级插入
    • 9. 高级删除
    • 10. 高级更新
    • 11. 联合查询
    • 12. 连接查询
      • 12.1 左外连接
      • 12.2 右外连接
    • 13. 子查询
      • 13.1 有关子查询的特定关键字

1. 开启/关闭数据库

开启关闭服务

  1. 手动开启本地服务
  2. 命令行开启
    net  start  mysql
    net  stop  mysql
    

客户端连接

mysql [-h主机名] [-P端口号] -u用户名 -p密码

2. 数据库操作

查看所有数据库

show databases;

创建数据库

create database 数据库名 [charset 字符集] [collate 校对规则];

查看数据库创建语句

show create database 数据库名;

删除数据库

drop database 数据库名;

修改数据库

alter database 数据库名 charset 字符集 [collate 校对规则];

使用数据库

use 数据库名;

3. 数据表操作

创建数据表

create table 表名(字段1,字段2...
)[charset 字符集] [engine 表类型];

查看所有数据表

show tables;

查看数据表结构

desc 表名;

查看表创建语句

show create table 表名;

删除数据表

drop table 表名;

修改表名

alter table 表名 rename 新表名;

修改表字符集

alter table 表名 charset 字符集;

4. 字段操作

添加字段

alter table 表名 add 字段名 字段类型 [字段属性] [after 某字段名 或 first];

修改字段

alter table 表名 change 旧字段名 新字段名 字段类型 [字段属性...];
-- 不修改字段名且只修改其它信息,则可以使用:
alter table 表名 modify 字段名 字段类型 [字段属性...];

删除字段

alter table 表名 drop 字段名;

5. 数据操作

插入数据

insert into 表名(字段名1,字段名2, ... ) values(数据1, 数据2, ...);
-- 简写:
insert into 表名 values(数据1, 数据2, ...);

查询数据

select * from 表名;

删除数据

delete from 表名 [where];

修改数据

update 表名 set 字段名 = 值 [where];

6. 运算符

distinct(消除重复行)

select distinct 字段 from 表名;

like(模糊查询运算符)

-- 查询“吴”字开头,后面无所谓。
字段 like '吴%';
-- 查询“李”字开头,后面占两个字符
字段 like '吴__';

between and(范围限定符)

between 起始范围 and 结束范围;

in(包含运算符)

in(数据1, 数据2...);

is(判空运算符)

  • 用于判断一个字段中的是“是否存在”(即有没有),只有两个写法
where 字段 is not null;
where 字段 is null;

7. 高级查询(group by、having、order by、limit)

group by子句

  • 含义:
    表示对所取得的数据,以所给定的字段来进行分组。
    最后的结果就是将数据分成了若干组,每组作为一个“整体”成为一行数据。
  • 特别注意:
    分组之后,只有“组信息” ,一行就是一组
  • group by了之后通常只有两种情况:
    1. 分组本身的字段信息.
    2. 一组的综合统计信息.
group by 字段1, 字段2...

having子句

  • 含义:having其实是相当于分组之后“有若干行数据”,然后对这些行再筛选。
having 筛选条件;

order by子句

  • 含义:对数据进行排序,asc(正序), desc(倒序)
order by 字段 [asc 或 desc];

limit子句

  • 含义:某行开始取多少行数据。用于分页查询。
limit  起始行号,行数;
  • MySQL5另一种写法
  limit  行数 offset 起始行号;

8. 高级插入

同时插入

insert into 表名 (字段1, 字段2...) values
(数据1, 数据2...), ...
(数据1, 数据2...);

set插入

insert into 表名 set 字段1 = 值, 字段2 = 值 ... ;

蠕虫复制

  • 含义:用于压力测试。
-- 将查询的结果插入到指定表中
insert into 表名1 (字段1, 字段2...) select 字段1, 字段2... from 表名2;
-- 蠕虫复制,也就是查询本身,然后再将数据插入到本身。
insert into 表名 select * from 表名;

主键冲突

  • 方案1: 忽略; 终止插入,数据不变;
insert ignore into 表名 values (数据1, 数据2...);
  • 方案2: 替换; 删除原纪录,插入新纪录;
replace into 表名 values (数据1, 数据2...);
  • 方案3: 更新; 更新原有的数据
insert into 表名 values (数据1, 数据2...)on duplicate key update XX字段=新的值 ... ;

9. 高级删除

按指定顺序删除指定数量的数据

delete from 表名 where ... [order  by 字段名, ...] [limit 数量n];

truncate清空

  • 含义:表示清空指定表中的所有数据并将表恢复到“初始状态”(就类似刚刚创建一样)
  • 对比“delete from 表名”,这个不会恢复“初始状态”。
truncate 表名;

10. 高级更新

update 表名 set 字段名1 = 字段值1 ... where ... [order by 字段名, ...] [limit 数量n];

11. 联合查询

  • 含义:联合查询是指将2个或2个以上的字段数量相同的查询结果,“纵向堆叠”后合并为一个结果。
select查询1
union [all或distinct]
select查询2
union [all或distinct]
select查询3
...
[order by 字段 [asc或desc] ]
[limit 起始行号,数量];
  • 注意:

    1. 查询表的字段的列数需要一致(名字可以不同)。
    2. 查询表的字段类需要一致。
    3. 最后的查询结果的列名是第一张表的列名。
    4. order by 和 limit 是对联合之后的结果进行排序和数量限定的。
    5. order by 排序的字段应该要使用第一张表的列名。

12. 连接查询

  • 连接(join)查询是将两个查询的结果以“横向对接”的方式合并起来的结果。

笛卡尔积

from 表1 [cross] join 表2;
  • 还有一种写法:from 表1, 表2;

内连接

from 表1 [inner] join 表2 on 连接条件;

外连接

12.1 左外连接
from 表1 left [outer] join 表2 on 连接条件
  • 特点与注意:

    1. 左外连接其实是保证左边表的数据都能够取出的一种连接。
    2. 左外连接其实是在内连接的基础上,再加上左边表中所有不能满足条件的数据
    3. 关键字“outer”可以省略。
12.2 右外连接
from 表1 right [outer] join 表2 on 连接条件
  • 特点与注意:

    1. 右外连接其实是保证右边表的数据都能够取出的一种连接。
    2. 右外连接其实是在内连接的基础上,再加上右边表中所有不能满足条件的数据。
    3. 关键字“outer”可以省略。

自连接

  • 含义:自连接不是一种新的连接,只是一个表“自己跟自己连接”。
from 表1 as a [连接形式] join 表1 as b on a.字段1 = b.字段2;
  • 特点与注意:

    1. 自连接其实还是两个表连接,只是将一个表用不同的别名,当做两个表。
    2. 自连接适用于一个表中的某个字段的值“来源于”当前表的另一个字段的情况。

13. 子查询

  • 含义:子查询就是指一个“正常查询语句”中的某个部分(比如select部分,from部分, where部分)又出现了查询的一种查询形式
  • 此时,子查询所在上“上层查询”,就被称为主查询。

标量子查询

  • 含义:标量子查询就是指子查询的结果是“单个值”(一行一列)的查询。

列子查询

  • 含义:列子查询查出的结果为“一列数据”
  • 通常用来代替in运算符

行子查询

  • 含义:行子查询查出的结果通常是一行
  • 使用:
    行子查询的结果通常跟“行构造符”一起,在where条件子句中做为条件数据,类似这样:
where  [row](字段1,  字段2 )  = (行子查询);

表子查询

  • 含义:
    当一个子查询查出的结果是“多行多列”的时候,就是表子查询。
    表子查询的结果相当于一个表,可以直接当做一个表来使用。
  • 使用:
    表子查询通常用在主查询的from子句中,作为一个“数据源”。
  • 注意:
    需要给该子查询设置一个别名,类似这样:
    from (select … 子查询 ) as tab1

exists子查询

  • 含义:
    该子查询如果“有数据”, 则该exists()的结果为“true”, 即相当于 where true (恒真)
    该子查询如果“没有数据”,则该exists()的结果为“false”,即相当于where false(恒假)
where exists(任何子查询);
  • 特点与注意:

    1. 此子查询语句通常需要用到主查询语句中的字段作为查询条件。
    2. 有意义exists子查询不能单独执行
    3. 之前的4种子查询都可以单独执行

13.1 有关子查询的特定关键字

any关键字

  • 包含任意一个

all关键字

  • 全部包含

还有视图、事务、变量、存储过程等内容,后面看情况补上...

MySQL 简洁速查手册相关推荐

  1. mysql命令速查手册

    数据准备 -- 创建数据库 create database qianduan_test charset=utf8;-- 使用数据库 use qianduan_test;-- students表 cre ...

  2. [WebDev]Web 开发与设计师速查手册大全

    Cheat Sheet 一词在中文中并没有很贴切的对译,大概是考试作弊条一类的东西,这要求 Cheat Sheet 必须短小精悍又覆盖广泛,作为 Web 开发与设计师,免不了在工作时查询大量资料,某个 ...

  3. Linux命令速查手册

    一. 启动,关机,登入,登出相关命令 <login> 登录 <logout> 登出 <exit> 登出 <shutdown> 停止系统 <halt ...

  4. 极客的Linux常用命令速查手册

    Linux常用命令速查手册 1.1 写在前面的话 1.2 Linux 常用命令速查手册 1.2.1 mkdir创建一个文件夹 1.2.2 cd进入一个文件夹 1.2.3 rmdir删除一个文件夹 1. ...

  5. 《MATLAB函数速查手册》(邓薇)高清pdf

    <MATLAB函数速查手册>(邓薇)高清pdf 链接:https://pan.baidu.com/s/18vMVhyKUue--lk4eyCr1OQ 提取码:rylb 欢迎使用Markdo ...

  6. 清华教授肝了368个小时整理出《Python3速查手册》高清PDF开发下载,零基础学习必备

    在当下互联网盛行的时代下,Python成为了一种全民都在学Python的编程语言,每天都会有前仆后继的人去学习. 相信绝大部分零基础小白学Python的时候,都会抱有这样的疑问:不都说Python是最 ...

  7. 最全pandas函数用法速查手册(高清版)

    Pandas 是 Python 的核心数据分析支持库,拥有快速.灵活.明确的数据结构,旨在简单.直观.快速地处理关系型.标记型数据,是一款强大.灵活的开源数据分析工具. 但是pandas的知识点很多, ...

  8. Excel公式与函数案例速查手册/电脑技巧从入门到精通丛书

    出版社: 机械工业出版社; 第1版 (2013年12月1日) 丛书名: 电脑技巧从入门到精通丛书 平装: 770页 语种: 简体中文 开本: 32 条形码: 9787111448761 商品尺寸: 1 ...

  9. 【收藏】Linux系统常用命令速查手册(附赠PDF档)

    给大家收集整理了日常常用的Linux系统命令,仅供大家参考. 大家如果觉得文章看起来不太方便,获取<Linux系统常用命令速查手册>.PDF版. 联系小姐姐,备注"liunx命令 ...

最新文章

  1. 初次体验hiphop-php
  2. C++成员变量指针和成员函数指针【The semantics of funcitons】
  3. 机器学习类别/标称(categorical)数据处理:目标编码(target encoding)
  4. 注释转换——(小项目)
  5. 利用JDK动态代理机制实现简单拦截器
  6. java request 原理_JavaWeb-seession原理
  7. java基础学习总结——对象转型
  8. python对数的格式_python的log使用详解
  9. 关于Icon,Image,ImageIcon的简单的对比参考 上篇
  10. Golang语言写99乘法表-双重for循环
  11. php读取excel的数据,php读取excel文件数据
  12. java 静态与非静态之间的访问规则简述
  13. php使用axios发送请求,axios源码之模拟实现axios发送请求
  14. asp.net mvc 应用Bundle(捆绑和微小)压缩技术 启用 BundleConfig 配置web.config
  15. ROS在rviz中实时显示轨迹和点
  16. 脚注交叉引用序号不一样_利用Word的尾注来做参考文献的注释编号--解决编号加方括号,交叉引用,去除尾注上访横线等问题...
  17. 不重启修改计算机名称,批处理不重启快速修改计算机名
  18. c语言求个十百千万大写,大写数字一到十百千万怎么写?大写数字0到十百千万图片...
  19. OC中__kindof的用法
  20. 硬件工程师入门基础知识(一)基础元器件认识(一)

热门文章

  1. Linux版原型工具,Justproto:Linux下Axure的替代方案
  2. Linux下交叉编译libiconv库
  3. 思科刀片服务器系统,思科UCS平台:B460 M4刀片服务器解读
  4. 8086微型计算机原理答案,8086微型计算机原理与应用(吴宁)习题答案(第二章)
  5. b ascll 对照表
  6. SAP ABAP EXCEL 下载模板并导入(数据批导)
  7. docker-compose安装mongoDB详细步骤
  8. 群晖搭建服务器(外网访问+开机自启动)
  9. 计算机名词解释高级筛选,2017高级会计考试《职称计算机》知识点:高级筛选...
  10. 【SQL】interval关键字用法