MySQL 知识点总结(简易版)

MySQL 总结(简易版)

基本语法

0. 1基本语法

登录MySQL
$ mysql -u root -p12345612

退出MySQL数据库服务器
exit;

-- 显示所有数据库
show databases;

-- 创建数据库
CREATE DATABASE test;

-- 切换数据库
use test;

-- 显示数据库中的所有表
show tables;

-- 创建数据表
CREATE TABLE pet (
    name VARCHAR(20),
    owner VARCHAR(20),
    species VARCHAR(20),
    sex CHAR(1),
    birth DATE,
    death DATE
);

-- 查看数据表结构
-- describe pet;
desc pet;

-- 查询表
SELECT * from pet;

-- 插入数据
INSERT INTO pet VALUES ('puffball', 'Diane', 'hamster', 'f', '1990-03-30', NULL);

-- 修改数据
UPDATE pet SET name = 'squirrel' where owner = 'Diane';

-- 删除数据
DELETE FROM pet where name = 'squirrel';

-- 删除表
DROP TABLE myorder;

//更改表属性结构
【alter table xxx 动词 xxx】
-- 添加主键约束
-- 如果忘记设置主键,还可以通过SQL语句设置(两种方式):
ALTER TABLE user ADD PRIMARY KEY(id);
ALTER TABLE user MODIFY id INT PRIMARY KEY;

-- 删除主键
ALTER TABLE user drop PRIMARY KEY;

0. 2 建表约束

约束类型:

  1. 主键primary key
  2. 唯一主键 unique(name)
  3. 非空约束 not null
  4. 默认约束 default ‘男’ or default 10
  5. 外键 foreign key (id)reference class(id)
--建表约束
1. 类型后面加约束
    id INT PRIMARY KEY
2. 单独一句
    ① 单个约束
        paimary(id)
    ② 多个约束
        primary(id,name)

0. 3 添加和删除约束

1、建表的时候可以添加约束
2、可以使用alter。。。add。。。
3、alter。。。modify。。。
4、删除用 alter。。。drop。。。

图表

1.查询语句结构

MySQL 知识点总结(简易版)

2.聚集函数

MySQL 知识点总结(简易版)

3.字符串中的通配符

MySQL 知识点总结(简易版)

4.where子句中的运算符

MySQL 知识点总结(简易版)

易错点

1. 数据库不分大小写

2. 数字和中文基本都用varchar(在有大量的英文以外的字符则用nvarchar)

3. 约束可以加在字段的后面,也可以换行单独描述字段的约束。

①(sno varchar(10) primary key);
②(sno varchar(10),
​ primary key(sno))

4. 数据库注释方法:–

5. 修改表名

ALTER TABLE table_name RENAME TO new_table_name

6.列的拼接 concat

CONCAT(last_name, ' ', first_name) as Name

7.列内容替换replace

SET emp_no = REPLACE(emp_no, 10001, 10005)
WHERE id = 5;
emp_no列中10001 替换成10005

5. 字段别名方法:constraint

5. 字段不重复方法:distinct department

5. 可以在查询后加 limit( start , number )

start:从哪开始查 (第一个下标为0)
number:查几个出来

8. union用法:求并集【union前不用逗号】

select sno,sname from student where xxxxx
union
select sno,sname from student where xxxxx;

9. ANY 和 ALL

  > ANY 大于子查询结果中的某个值 ,即大于最小值
   > ALL    大于子查询结果中的所有值,即大于最大值
  < ANY 小于子查询结果中的某个值 ,即小于最大值
  < ALL 小于子查询结果中的所有值,即小于最小值
  = ANY 等于子查询结果中的某个值 ,相当于in
  =ALL      等于子查询结果中的所有值(通常没有实际意义)
  !=(或<>)ANY    不等于子查询结果中的某个值,相当于not in
  !=(或<>)ALL    不等于子查询结果中的任何一个值,相当于not in

10.算时间差

year(now()) - year(birthday)

11. 三大范式

1. 1NF

   &#x5B57;&#x6BB5;&#x4E0D;&#x53EF;&#x62C6;&#x5206; &#xFF08;&#x53EF;&#x62C6;&#x5206;&#x7684;&#x4F8B;&#x5B50;&#xFF1A;&#x4E2D;&#x56FD;&#x5E7F;&#x4E1C;&#x5E7F;&#x5DDE;xx&#x8857;&#x9053;&#xFF09;

2. 2NF

   &#x5217;&#x90FD;&#x5B8C;&#x5168;&#x4F9D;&#x8D56;&#x4E8E;&#x4E3B;&#x952E;&#xFF0C;&#x5426;&#x5219;&#x8981;&#x62C6;&#x5206;&#xFF08;&#x5982;&#x679C;&#x51FA;&#x73B0;&#x4E0D;&#x5B8C;&#x5168;&#x4F9D;&#x8D56;&#xFF0C;&#x53EA;&#x53EF;&#x80FD;&#x53D1;&#x751F;&#x5728;&#x8054;&#x5408;&#x4E3B;&#x952E;&#x7684;&#x60C5;&#x51B5;&#x4E0B;&#xFF0C;&#x6B64;&#x65F6;&#x4E5F;&#x8981;&#x62C6;&#x5206;&#x4E3A;&#x591A;&#x4E2A;&#x8868;&#xFF09;

3. 3NF

   &#x4F9D;&#x8D56;&#x4E0D;&#x80FD;&#x6709;&#x4F20;&#x9012;&#x5173;&#x7CFB;&#xFF0C;&#x5426;&#x5219;&#x8981;&#x62C6;&#x5206;

12. 连接

1. &#x5185;&#x8FDE;&#x63A5;

> A inner join B on A.sno=B.sno
>
> &#x76F8;&#x5F53;&#x4E8E;
>
> where A.sno=B.sno

2. &#x5DE6;&#x8FDE;&#x63A5; &#xFF08;&#x4FDD;&#x7559;A&#x4E2D;&#x6240;&#x6709;&#x5E76;&#x4E14;&#x8F93;&#x51FA;A&#x2229;B&#xFF0C;&#x65E0;&#x503C;&#x586B;null&#xFF09;

> A left join B on A.sno=B.sno

3. &#x53F3;&#x94FE;&#x63A5;&#xFF08;&#x4FDD;&#x7559;B&#x4E2D;&#x6240;&#x6709;&#x5E76;&#x4E14;&#x8F93;&#x51FA;A&#x2229;B&#xFF0C;&#x65E0;&#x503C;&#x586B;null&#xFF09;

> A right join B on A.sno=B.sno

4. &#x5916;&#x8FDE;&#x63A5;&#xFF08;&#x4FDD;&#x7559;A B&#x6240;&#x6709;&#xFF0C;&#x65E0;&#x503C;&#x586B;null&#xFF09;

> A full join B on A.sno=B.sno

12. 事务

1. &#x8BBE;&#x7F6E;&#x4E8B;&#x52A1;&#xFF08;&#x9ED8;&#x8BA4; autocommit=1 &#x5F00;&#x542F;&#x81EA;&#x52A8;&#x63D0;&#x4EA4;&#xFF09;

> set autocommit = 0 or 1; (0&#x7684;&#x65F6;&#x5019;&#x662F;&#x5173;&#x95ED;&#x81EA;&#x52A8;&#x63D0;&#x4EA4;&#xFF0C;&#x5F00;&#x542F;&#x624B;&#x52A8;&#x63D0;&#x4EA4;)

2. &#x67E5;&#x770B;&#x4E8B;&#x52A1;

> select @@AUTOCOMMIT;

3. &#x56DE;&#x6EDA;&#x5230;&#x6700;&#x540E;&#x4E00;&#x6B21;&#x63D0;&#x4EA4;&#xFF08;&#x64A4;&#x9500;&#xFF09;

> rollback;

4. &#x4E8B;&#x52A1;&#x5F00;&#x542F;&#x540E;&#xFF0C;&#x9700;&#x8981;&#x624B;&#x52A8;&#x63D0;&#x4EA4;&#x6570;&#x636E;&#xFF08;&#x63D0;&#x4EA4;&#x540E;&#x5219;&#x65E0;&#x6CD5;&#x56DE;&#x6EDA;&#xFF09;

> commit;

5. &#x4E8B;&#x52A1;&#x7684;&#x5F00;&#x542F;

> &#x2460; begin&#xFF1B;
>
> &#x2461; start transaction&#xFF1B;

&#x4E8B;&#x52A1;&#x7684;&#x4E24;&#x79CD;&#x542F;&#x52A8;&#x65B9;&#x6CD5;&#xFF1A;

1. &#x5F53;autocommit=0&#x65F6;

   &#x2460;set autocommit=0;

   &#x200B; ......

   &#x200B; commit;

   &#xFF08;&#x6BCF;&#x6B21;commit&#x524D;&#x7684;&#x90FD;&#x7B97;&#x4E00;&#x6B21;&#x4E8B;&#x52A1;&#xFF09;

2. &#x5F53;autocommit=1&#x65F6;&#xFF08;&#x9ED8;&#x8BA4;&#xFF09;

   &#x2460;begin; (start transaction;)

   &#x200B; ......

   &#x200B; commit;

   &#xFF08;begin ~~~ &#x5230; commit&#xFF1B;&#x624D;&#x662F;&#x4E00;&#x6B21;&#x4E8B;&#x52A1;&#xFF09;

   &#x2461;.........&#xFF1B;&#xFF08;&#x6BCF;&#x6B21;&#x8F93;&#x5165;&#x90FD;&#x662F;&#x4E00;&#x6B21;&#x4E8B;&#x52A1;&#xFF09;

13. 事务的特性

1. &#x539F;&#x5B50;&#x6027;

   &#x4E8B;&#x52A1;&#x662F;&#x6700;&#x5C0F;&#x5355;&#x4F4D;&#xFF0C;&#x4E0D;&#x53EF;&#x518D;&#x5206;&#x5272;&#xFF0C;&#x8981;&#x4E48;&#x4E00;&#x8D77;&#x6210;&#x529F;&#xFF0C;&#x8981;&#x4E48;&#x4E00;&#x8D77;&#x5931;&#x8D25;&#x3002;

2. &#x4E00;&#x81F4;&#x6027;

   &#x7F16;&#x5199;&#x7684;&#x7A0B;&#x5E8F;&#x67D0;&#x4E2A;&#x7279;&#x6027;&#x8981;&#x4E00;&#x81F4;&#xFF0C;&#x5982;&#xFF1A;not null&#x3002;

3. &#x9694;&#x79BB;&#x6027;&#xFF08;**&#x8868;&#x4E2D;&#x4E0B;&#x9762;&#x7684;&#x9694;&#x79BB;&#x7EA7;&#x522B;&#x9AD8;&#xFF0C;&#x6027;&#x80FD;&#x4F4E;**&#xFF09;

   &#x5E76;&#x53D1;&#x4E8B;&#x52A1;&#x4E4B;&#x95F4;&#x662F;&#x9694;&#x79BB;&#x7684;&#xFF0C;&#x5728;&#x4E8B;&#x52A1;&#x672A;&#x63D0;&#x4EA4;&#x4E4B;&#x524D;&#x4E0D;&#x80FD;&#x88AB;&#x5176;&#x4ED6;session&#x67E5;&#x770B;

4. &#x6301;&#x4E45;&#x6027;

   &#x4E8B;&#x52A1;&#x4E00;&#x65E6;&#x63D0;&#x4EA4;&#x5219;&#x5BF9;&#x6570;&#x636E;&#x7684;&#x6539;&#x53D8;&#x662F;&#x65E0;&#x6CD5;&#x56DE;&#x6EDA;&#x7684;&#x3002;

14. 事务隔离级别操作

1. &#x67E5;&#x770B;

   > &#x7CFB;&#x7EDF;&#x7EA7;&#x522B;
   >
   > SELECT@@GLOBAL.TRANSACTION_ISOLATIO;
   >
   > &#x4F1A;&#x8BDD;&#x7EA7;&#x522B;
   >
   > SELECT @@TRANSACTION_ISOLATION;

2. &#x4FEE;&#x6539;

   > -- &#x8BBE;&#x7F6E;&#x7CFB;&#x7EDF;&#x9694;&#x79BB;&#x7EA7;&#x522B;&#xFF0C;LEVEL &#x540E;&#x9762;&#x8868;&#x793A;&#x8981;&#x8BBE;&#x7F6E;&#x7684;&#x9694;&#x79BB;&#x7EA7;&#x522B; (READ UNCOMMITTED)&#x3002;
   >
   > SET GLOBAL TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;

15. 事务的隔离级别

事务的隔离性可分为四种 ( 性能从低到高 ) :(系统默认是REPEATABLE READ)

  1. READ UNCOMMITTED ( 读取未提交 ) 官方:如果有多个事务,那么任意事务都可以看见其他事务的 未提交数据
  2. READ COMMITTED ( 读取已提交 ) 理解:自己操作的时候别人提交会影响我的数据。 官方:只能读取到其他事务 已经提交的数据。 【事务A对表查询,事务B对表操作,事务A再查询表数据是不变的,但B提交后,A再次查询的数据就是B改变后的数据】
  3. REPEATABLE READ ( 可被重复读 ) 理解:事务间相互独立,只有完成了(提交)自己的部分才能看到别人的操作。 官方:如果有多个连接都开启了事务,那么事务之间不能共享数据记录,否则只能共享已提交的记录。 【事务A对表查询,事务B对表操作后提交,事务A在未提交前,A查到的表数据不变,一旦A提交后再次查询得到的表数据是B更改完的】
  4. SERIALIZABLE ( 串行化 ) 官方:所有的事务都会按照 固定顺序执行,执行完一个事务后再继续执行下一个事务的 写入操作。 (前一个事务未commit ,下一个事务将会等待)

16. 事务带来的问题

MySQL 知识点总结(简易版)
1. &#x810F;&#x8BFB;

   &#x89E3;&#x91CA;&#xFF1A;&#x4E00;&#x4E2A;&#x4E8B;&#x52A1;&#x8BFB;&#x53D6;&#x5230;&#x53E6;&#x5916;&#x4E00;&#x4E2A;&#x4E8B;&#x52A1;&#x8FD8;&#x672A;&#x63D0;&#x4EA4;&#x7684;&#x6570;&#x636E;

   &#x4F8B;&#x5B50;&#xFF1A;&#x3010;&#x5C0F;&#x660E;&#x8D56;&#x8D26;&#x3011;&#x5C0F;&#x660E;&#x4E70;&#x4E1C;&#x897F;&#x7ED9;&#x4E86;&#x94B1;&#xFF0C;&#x5546;&#x5BB6;&#x53D1;&#x4E86;&#x8D27;&#xFF0C;&#x5C0F;&#x660E;&#x56DE;&#x6EDA;&#x3002;

2. &#x4E0D;&#x53EF;&#x91CD;&#x590D;&#x8BFB;

   &#x89E3;&#x91CA;&#xFF1A;&#x5728;&#x8BFB;&#x53D6;&#x540C;&#x4E00;&#x4E2A;&#x8868;&#x7684;&#x6570;&#x636E;&#x65F6;&#xFF0C;&#x53EF;&#x80FD;&#x4F1A;&#x53D1;&#x751F;&#x524D;&#x540E;&#x4E0D;&#x4E00;&#x81F4;&#x7684;&#x60C5;&#x51B5;

   &#x4F8B;&#x5B50;&#xFF1A;&#x3010;&#x5C0F;&#x660E;&#x7B97;&#x8D26;&#x3011;&#x5C0F;&#x5F20;&#x5728;&#x7B97;A&#x8868;&#x5E73;&#x5747;&#x503C;&#xFF0C;&#x5C0F;&#x5218;&#x53C8;&#x6B63;&#x5728;&#x6539;&#x52A8;A&#x8868;&#xFF0C;&#x5C0F;&#x5F20;&#x6700;&#x540E;&#x7B97;&#x51FA;&#x6765;&#x7684;&#x662F;&#x5C0F;&#x5218;&#x6539;&#x52A8;&#x540E;&#x7684;&#x8868;&#x7684;&#x5E73;&#x5747;&#x503C;&#x3002;

3. &#x5E7B;&#x8BFB;

   &#x89E3;&#x91CA;&#xFF1A;&#x4E00;&#x4E2A;&#x4E8B;&#x52A1;&#x63D0;&#x4EA4;&#x7684;&#x6570;&#x636E;&#xFF0C;&#x4E0D;&#x80FD;&#x88AB;&#x5176;&#x4ED6;&#x4E8B;&#x52A1;&#x8BFB;&#x53D6;&#x5230;

   &#x4F8B;&#x5B50;&#xFF1A;&#x3010;&#x5C0F;&#x660E;&#x5EFA;&#xFF51;&#x53F7;&#x3011;&#x5C0F;&#x660E;&#x5728;&#xFF41;&#x5730;&#x521B;&#x5EFA;&#xFF58;&#x8D26;&#x53F7;&#xFF0C;&#x6070;&#x597D;&#x5C0F;&#x5218;&#x5728;&#x5C0F;&#x660E;&#x524D;&#x51E0;&#x79D2;&#x521B;&#x5EFA;&#x4E86;&#xFF58;&#x8D26;&#x53F7;&#xFF0C;&#x6B64;&#x65F6;&#x5C0F;&#x660E;&#x521B;&#x5EFA;&#x4E0D;&#x4E86;&#xFF58;&#x8D26;&#x53F7;&#xFF0C;&#x56E0;&#x4E3A;&#x5DF2;&#x7ECF;&#x5B58;&#x5728;&#x4E86;&#xFF0C;&#x4F46;&#x5C0F;&#x660E;&#x67E5;&#x8868;&#x663E;&#x793A;&#x5374;&#x65E0;&#xFF58;&#x8D26;&#x53F7;&#x3002;

Original: https://www.cnblogs.com/buchizicai/p/15990575.html
Author: 不吃紫菜
Title: MySQL 知识点总结(简易版)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/578718/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Linux常用命令

    Linux常用命令 在学习瑞吉外卖项目课程中自己做的一个linux常用命令的小笔记便于以后复习使用,仅供参考。 文件目录操作命令 pwd:显示该目录或者文件的路径 ls命令 ls:…

    Linux 2023年6月7日
    091
  • 最简单的,在win,linux中,用powershell,自动获取Let’s Encrypt证书方法

    powershell传教士原创 2020-04-12,2022-05更新 Let’s Encrypt证书有效期3个月,支持泛域名【*.你的网站.net】。支持n天内(一…

    Linux 2023年6月14日
    0106
  • JAVA设计模式-原型模式

    JAVA设计模式-原型模式 介绍 原型模式是一种创建型模式,用于创建重复的对象,并且保证性能。原型模式创建的对象是由原型对象自身创建的,是原型对象的一个克隆,和原型对象具有相同的结…

    Linux 2023年6月6日
    0106
  • 每天一个 HTTP 状态码 前言

    HTTP 状态码由 3 位阿拉伯数字构成,其中第一位用于定义 HTTP 响应的类型… 前前言 在重新开始写博文(其实大多也就最多算是日常笔记小结)之际,就想着从短小精悍…

    Linux 2023年6月7日
    095
  • Docker基础知识

    Docker 是什么 Docker 经常被提起的特点: Docker 技术的基础: Docker 组件: Docker 安装 Docker 常见命令 容器相关操作 获取容器相关信息…

    Linux 2023年6月7日
    0110
  • TCP 和 UDP 协议简介

    一、TCP TCP(Transmission Control Protocol),传输控制协议,对”传输、发送、通信”进行”控制”的…

    Linux 2023年6月16日
    0172
  • Linux命令篇-wc 命令

    wc – print newline, word, and byte counts for each file wc: 统计文件的 &#x5B57;&#…

    Linux 2023年6月13日
    098
  • Docker部署

    部署Docker 1.部署docker相关 此章描述在新的服务器上安装docker容器。 1.1 概述 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apach…

    Linux 2023年6月7日
    0148
  • Windows关闭135/137/139/445 端口

    通过IP安全策略(以关闭135端口为例) (1) 依次打开”控制面板–>系统和安全–>管理工具–>本地安全策略&#…

    Linux 2023年6月8日
    0242
  • 一文让你明白Redis持久化(RDB、AOF)

    为什么要持久化 Redis是内存数据库,如果不将内存中的数据库状态保存到磁盘中,那么一旦服务器进程退出,服务器的数据库状态就会消失(即断电即失)。为了保证数据不丢失,我们需要将内存…

    Linux 2023年5月28日
    0111
  • Docker安装mysqli扩展和gd扩展

    Docker安装mysqli扩展 官方php镜像 docker exec -it php-fpm bash cd /usr/local/bin ./docker-php-ext-i…

    Linux 2023年6月13日
    072
  • Java50个关键字之abstract

    abstract abstract 可以出现的位置: 修饰方法 修饰类 修饰类 一个类被 abstract修饰,那么该类就叫做 &#x62BD;&#x8C61;&a…

    Linux 2023年6月7日
    096
  • 博客园装饰——(二)滚动到页面顶部或底部

    功能描述: 1. 当页面向下滚动一定距离时,向下滚动到底部的按钮以淡入的效果出现,并以固定定位显示。且滚动到一定距离(快接近所设置的底部)时,该按钮又会以淡出效果消失。 2. 当页…

    Linux 2023年6月14日
    097
  • bash初始化文件详解

    本文使用的环境: Bash 4.2.46 bash启动时会执行一系列脚本, 具体要执行哪些启动文件, 这和bash的类型有关: 是否为交互式(interactive)的shell,…

    Linux 2023年6月7日
    080
  • 小团队如何妙用 JuiceFS

    早些年还在 ENJOY 的时候, 就已经在用 JuiceFS, 并且一路伴随着我工作过的四家小公司, 这玩意对我来说, 已经成了理所应当不可或缺的基础设施, 对于我服务过的小团队而…

    Linux 2023年6月14日
    0119
  • 个人学习记录-Cpp基础-成员初始化列表

    https://blog.csdn.net/XIONGXING_xx/article/details/115553291https://blog.csdn.net/W_Y2010/…

    Linux 2023年6月6日
    098
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球