【MySQL入门】-- MySQL入门看这里!

目录

1.SQL的分类:

2.一些基本操作

3.SQL底层执行原理

4.一些常用的关键字

5.多表查询

6.HAVING和WHERE

7.运算符

8.约束

9.创建外键

10.存储过程与函数

11.变量,流程控制与游标


前言:

哈喽啊,大家好今天我带来的是一些初学MySQL时期的笔记,知识点可能比较零碎,如有错误欢迎各路大佬指正!!后面博主会出一些详细讲解知识点的文章,欢迎大家支持!您的点赞+关注就是我更新的动力!

1.SQL的分类:

DDL:数据定义语言。

例如:CREATE\ALTER\DROP\RENAME\TRUNCATE

DML:数据操作语言。

例如:INSERT(增)\DELETE(删)\UPDATE(改)\SELECT(查)

DCL:数据控制语言。

例如:COMMIT\ROLLBACK\SAVEPOINT\GRANT\REVOKE

2.一些基本操作

修改表:ALTER TABLE     

修改列数据类型 ALTER TABLE EWQ MODIFY   

重命名列 CHANGE   重命名表 RENAME    删除DROP

CREATE  创建        UPDATE ewq (更新表)

              SET ema = 777

              WHERE id = 1

添加数据INSERT INT EWQ VALUES

SHOW INDEX FROM employees 查看表索引

View:视图

Create or replace view:创建或修改视图

3.SQL底层执行原理

SQL92语法:

SELECT …,…,…(存在聚合函数)

FROM …,…,…

WHERE 多表的连接条件 AND 不包含聚合函数的过滤条件

GROUP BY …,…

HAVING 包含聚合函数的过滤条件

ORDER BY …,… (ASC\DESC)

LIMIT …,…

SQL99语法:

SELECT …,…,…(存在聚合函数)

FROM …(LEFT/RIGHT)JOIN…ON…多表的连接条件

WHERE 不包含聚合函数的过滤条件

GROUP BY …,…

HAVING 包含聚合函数的过滤条件

ORDER BY …,… (ASC\DESC)

LIMIT …,…

SQL语句执行过程:

FROM-ON-(LEFT\RIGHT)JOIN-WHERE-GROUP BY-HAVING-SELECT-DISTINCT-ORDER BY-LIMIT

4.一些常用的关键字

SELECT … FROM…: 查询字段… 表为…

DISTINCT:删除重复行

IFNULL:如果为空   格式:IFNULL(表名,0或1)

``:着重号   若表名与关键字重复,可用着重号

DESCRIBE(DESC):显示表的结构

WHERE:过滤数据     格式:声明在FROM后面  

SELECT * FROM employees WHERE last_name = 'weiss';

ORDER BY (ASC):默认升序排序  从低到高 

ORDER BY (字段名) DESC(降序)   从高到低

格式:WHERE声明再FROM后,ORDER BY之前

  例:SELECT *

FROM dep 

WHERE dep 

ORDER BY dep;

二级排序:ORDER BY dep DESC,sla ASC;(dep降序,sla升序)

LIMIT: 分页

需求:每页显示pagesize条记录,此时显示pageno页

公式:LIMIT(pageno-1)*pagesize,pagesize;

WHERE、ORDER BY ,LIMIT声明如下:

SELECT*

FROM emp

WHERE salary>60

ORDER BY salary DESC

LIMIT 0,10;(0可以省略)

5.多表查询

JOIN:

【MySQL入门】-- MySQL入门看这里!_第1张图片

6.HAVING和WHERE

如果过滤条件中出现了聚合函数那么必须使用having来替换where

HAVING必须声明在group by后面

使用having的前提是使用了group by

Having不可以单独使用 必须跟group by

HAVING和WHERE对比

1.从适用范围看,HAVING更广

2.如果过滤条件中没有聚合函数 WHERE 的执行效率高于HAVING


7.运算符

一、比较运算符: =,<=>,<>,!=,<,<=,>,>=

<=>:只要有null参与判断,结果就为null

二、运算符:

 IS NULL、IS NOT NULL、ISNULL:判断为空的数据

 LEAST()、GREATEST:判断最大、最小

 BETWEEN…AND:查询…到…范围的数据  

例:查询salary  6000到8000的数据

        方法一:WHERE salary BETWEEN 6000 AND 8000

        方法二:WHERE salary>=6000 && 8000<=salary

    查询salary不在6000到8000的数据

方法一:WHERE salary NOT BETWEEN 6000 AND 8000

方法二:WHERE salary <6000 OR salary >8000

 IN(set)、not in(set)

例:查询字段(dep)为10,20,30的数据

方法一:WHERE dep = 10 OR dep = 20 OR dep = 30;

方法二:WHERE dep IN (10,20,30);

 查询工资不是6000,7000,8000的信息

WHERE salary NOT IN (6000,7000,8000);

 LIKE 模糊查询

例:查询名字中包含字符‘a’的员工信息

 WHERE name LIKE ‘%a%’

%:代表不确定个数的字符

WHERE name LIKE ‘a%’:以a开头

WHERE name LIKE ‘a’:名字为a 

例:查询包含a且包含e的信息

WHERE name LIKE ‘%a%’AND name LIKE‘%e%’;

    _代表一个不确定的字符

  例:查询第二个字符是a的信息

WHERE name LIKE ‘_a&’;

\:转义字符

 例:查询第二个字符是_且第三个字符是a的信息

     WHERE name LIKE ‘_\_a%’;

:REGEXP:正则表达式

例:以luo开头,g结尾,包含lp

SELECT ‘luopeng’ REGEXP ‘^luo’,

‘luopeng’REGEXP ‘g$’,‘luopeng’REGEXP ‘lp’

三、逻辑运算符

   OR、&&、||、AND、NOT、!、XOR

 XOR:异或

 AND优先级高于OR

8.约束

Not null:非空约束 create table:创建表时添加约束

Unique:唯一性约束       a   Alter table:修改表时添加或者删除约束

Primary key:主键约束

Foreign key:外键约束

建议:foreign key (表) REFRRENCES ((表)关键字段) on update cascade on delete restrict

Check:检查约束

Default:默认值约束

Auto_increment:自增约束

9.创建外键

ALTER TABLE orders

ADD CONSTRAINT fk_id FOREIGN KEY(c_id) REFERENCES customers_info(c_num)

10.存储过程与函数

存储过程语法:

DELIMITER ($)

CREATE PROCEDURE 存储过程名(IN\OUT\INOUT  参数 参数类型,)

BEGIN

存储过程体

END($)

DELIMITER ;

存储过程的调用:call

存储函数语法:

DELIMITER ($)

CREATE FUNCTION (函数名 参数类型)

RETURNS 返回值类型,特性

BEGIN

        RETURN(  函数体);

END($)

DELIMITER ;

11.变量,流程控制与游标

全局变量:global 

针对所有会话(连接)有效,但不能重启

会话系统变量:session

查看变量

SHOW GLOBAL VARIABLES (全局)    SHOW SESSION(可省略)VARIABLES(会话)

SHOW GLOBAL VARIABLES LIKE ‘’(查询部分系统变量)

SELECT @@global.max_connections(查看指定系统变量)

修改变量

全局修改    SET @@GLOBAL.()=()       SET GLOBAL ()=()

SET仅针对服务器实例有效,一旦重启服务就失效

会话修改     SET @@session.()=()     SET SESSION ()=()

二、用户变量

会话用户变量:使用@开头,作用域为当前会话

【MySQL入门】-- MySQL入门看这里!_第2张图片

局部变量:只能使用在存储过程和存储函数中

【MySQL入门】-- MySQL入门看这里!_第3张图片

局部变量必须使用DECLARE声明

声明并使用在BEGIN……END中(使用在存储过程或函数中)

DECLARE方式声明局部变量必须声明在BEGIN中的首行位置

你可能感兴趣的:(MySQL数据库入门,mysql,学习,数据库)