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)

大家都在看

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