MySQL基本操作速查

目录

一、 MYSQL概念

1.1 数据库相关概念和使用

1.2 数据的启动和关闭

1.3 连接数据库

1.4 数据模型

关系数据库

数据模型

1.5 表的数据类型(数值类型、字符串类型、日期时间类型)

数值类型

字符串类型

日期类型

 1.6 DQL的执行顺序

二、SQL语句(Structured Query Language)

 2.1 SQL语法

 2.2 SQL分类(DDL、DML、DQL、DCL)

2.2.1 DDL (数据库,表,字段)增删改

          数据库的操作:

          表的操作:

          字段的操作:

2.2.2 DML(表)增、删、改

          添加数据

          修改数据

          删除数据

2.2.3 DQL(表)查

          1、基本查询

          2、 条件查询

           3、 聚合函数

           4、分组查询

           5、排序查询

           6、分页查询

2.2.4 DCL(数据库用户)

三、函数

3.1 字符串函数

3.2 数值函数

3.3 日期函数

3.4 流程函数

 四、约束

常用约束

 外键约束

添加外键

删除外键

 五、多表查询

5.1 笛卡尔积:

5.2 内连接

5.3  外连接

 5.4 自连接

自连接查询 

联合查询(UNION )

5.5 子查询

A. 标量子查询(子查询结果为单个值)

​B. 列子查询(子查询结果为一列)

C. 行子查询(子查询结果为一行)

​D. 表子查询(子查询结果为多行多列)

六、事务


一、 MYSQL概念

1.1 数据库相关概念和使用

数据库DataBase(DB) 存储数据的仓库,数据是有组织的进行存储

数据库管理系统DataBase ManagementSystem (DBMS) :操纵和管理数据库的大型软件

SQL Structured QueryLanguage (SQL)        操作数据库的编程语言

1.2 数据的启动和关闭

net start mysql80
net stop mysql80

1.3 连接数据库

方式一 :         使用Navicat....

方式二:          使用cmd命令行

mysql [-h 127.0.0.1] [-P 3306] -u root -p
参数:
-h : MySQL服务所在的主机IP
-P : MySQL服务端口号, 默认3306
-u : MySQL数据库用户名
-p : MySQL数据库用户名对应的密码

1.4 数据模型

1.4.1、关系数据库

建立在关系模型基础上,由多张相互连接的二维表组成的数据库

特点:
A. 使用表存储数据,格式统一,便于维护。
B. 使用SQL语言操作,标准统一,使用方便。

 1.4.2、数据模型

MySQL是关系型数据库,是基于二维表进行数据存储的

1.5 表的数据类型(数值类型、字符串类型、日期时间类型)

 其中大小(无符号范围)和 字段类型的长度息息相关

1.5.1 数值类型

 类型                        大小                 有符号(SIGNED)范围                                                               无符号(UNSIGNED)范围                                        描述

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

tinyint                        1byte                (-128,127)                                                                                                (0,255)                                                         小整数值

smallint                     2byte                (-32768,32767)                                                                                    (0,65535)                                                  大整数值

mediumint                3bytes              (-8388608,8388607)                                                                           (0,16777215)                                           大整数值

int / integer               4bytes              (-2147483648,2147483647)                                                              (0,4294967295)                                      大整数值

bigint                        8byte                (-2^63,2^63-1)                                                                                       (0,2^64-1)                                                极大整数值

float                           4byte                (-3.402823466 E+38,3.402823466351 E+38)                                    0 和

                                                                                                                                                         (1.175494351 E-38,3.402823466 E+38)                  单精度浮点数        

double                      8bytes                (-1.7976931348623157E+308,1.7976931348623157E+308)       0 和(2.2250738585072014E-308,

                                                                                                                                                                                1.7976931348623157E+308)                 双精度浮点数

decimal                                              依赖于M(精度)和D(标度)的值                                                                 依赖于M(精度)和D(标度)的值                  小数值(精确定点数)

1.5.2 字符串类型

 1.5.3 日期类型

 

 1.6 DQL的执行顺序

二、SQL语句(Structured Query Language)

2.1 SQL语法

1). SQL语句可以单行或多行书写,以分号结尾。
2). SQL语句可以使用空格/缩进来增强语句的可读性。
3). MySQL数据库的SQL语句不区分大小写,关键字建议使用大写。
4). 注释:
单行注释:-- 注释内容 或 # 注释内容
多行注释:/* 注释内容 */

 2.2 SQL分类(DDL、DML、DQL、DCL)

2.2.1 DDL (数据定义语言)用来定义数据库对象(数据库,表,字段)

数据库的操作:

// 查询-所有数据库
show databases;

// 查询-当前数据库
select database;

// 切换数据库
use 数据库名;


// 创建数据库
create database [ if not exists ] 数据库名 [ default charset 字符集 ] [ collate 排序
规则 ] ;

// 删除数据库
drop database [if exists] 数据库名;

表的操作:

// 查询-当前数据库的所有表
show tables;
// 查看-表的结构
desc 表名;
// 查询-表的建表语句
show create table 表名;


// 创建表
create table 表名(
字段1 字段1类型 [ COMMENT 字段1注释 ],
字段2 字段2类型 [COMMENT 字段2注释 ],
字段3 字段3类型 [COMMENT 字段3注释 ],
......
字段n 字段n类型 [COMMENT 字段n注释 ]
) [ COMMENT 表注释 ] ;


// 修改-表名
alter table 表名 rename to 新表名;


// 删除表(全部删除)
drop table [if exists] 表名;
// 删除指定表,并重新创建表
truncate table 表名;

字段的操作:

// 添加字段
alter table 表名 add 字段名 类型(长度) [comment 注释] [约束];

// 修改字段数据类型
alter table 表名 modify 字段名 新数据类型(长度);

// 修改字段名和字段类型
alter table 表名 change 旧字段名 新字段名 类型(长度) [comment 注释] [约束];

// 删除字段
alter table drop 字段名;

2.2.2 DML(数据操作语言),用来对数据库中表的数据记录进行增、删、改操作。

添加数据

// 指定字段添加数据
insert into 表名 (字段一、字段二.....) values (值1、值2......);

// 给全部字段添加数据
insert into 表名 values (值1、值2......);

// 批量添加数据
insert into 表名 (字段名1, 字段名2, ...) values (值1, 值2, ...), (值1, 值2, ...), (值
1, 值2, ...) ;
insert into 表名 values (值1, 值2, ...), (值1, 值2, ...), (值1, 值2, ...) ;

修改数据

// 修改数据(修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据。)

UPDATE 表名 SET 字段名1 = 值1 , 字段名2 = 值2 , .... [ WHERE 条件 ] ;

删除数据

// 删除语句
delete from 表名 [ WHERE 条件 ] ;

// 删除所有数据
delete from 表名;

注意事项:
• DELETE 语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数据。
• DELETE 语句不能删除某一个字段的值(可以使用UPDATE,将该字段值置为NULL即可)。
• 当进行删除全部数据操作时,datagrip会提示我们,询问是否确认删除,我们直接点击Execute即可。

2.2.3 DQL(数据查询语言),数据查询语言,用来查询数据库中表的记录。

语法:

select 字段列表 from 表名列表 where 条件列表

group by 分组字段列表 

having 分组后条件列表 

order by 排序字段列表

limit 分页参数 

查新分类:

基本查询(不带任何条件)
条件查询(WHERE)
聚合函数(count、max、min、avg、sum)
分组查询(group by)
排序查询(order by)
分页查询(limit) 

1、基本查询

// 查询多个字段
select 字段1、字段2、字段3... from 表名;

// 查询所有字段
select * from 表名;

注意 : * 号代表查询所有字段,在实际开发中尽量少用(不直观、影响效率)。

// 查询时-设置字段别名
SELECT 字段1 [ AS 别名1 ] , 字段2 [ AS 别名2 ] ... FROM 表名;
SELECT 字段1 [ 别名1 ] , 字段2 [ 别名2 ] ... FROM 表名;

// 查询时-去除重复记录
select distinct 字段列表 from 表名;

2、 条件查询

// 条件查询
select 字段列表 from 表名 where 条件列表;

 3、 聚合函数

// 聚合函数查询 
select 聚合函数(字段列表) from 表名;


注意:null 值 是不参与所有聚合函数运算的

 

 4、分组查询

select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件]

 where 和 having 的区别?

执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。
判断条件不同:where不能对聚合函数进行判断,而having可以。

注意事项:
• 分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义。
• 执行顺序: where > 聚合函数 > having 。
• 支持多字段分组, 具体语法为 : group by columnA,columnB

5、排序查询

select 字段列表 from 表名 order by 字段1 排序方式, 字段2 排序方式;

排序方式:
ASC : 升序(默认值)
DESC: 降序

 6、分页查询

select 字段列表 from 表名 limit 起始索引, 查询记录数;

 注意事项:
• 起始索引从0开始,起始索引 = (查询页码 - 1)* 每页显示记录数。
• 分页查询是数据库的方言,不同的数据库有不同的实现,MySQL中是LIMIT。
• 如果查询的是第一页数据,起始索引可以省略,直接简写为 limit 10。 

2.2.4 DCL(Data Control Language(数据控制语言))

用户管理

        DCL英文全称是Data Control Language(数据控制语言),用来管理数据库用户、控制数据库的访问权限。

 查询用户

select * from mysql.user;

创建用户

CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';

修改用户密码

ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码' ;

删除用户

DROP USER '用户名'@'主机名'

注意事项:

  • 在MySQL中需要通过用户名@主机名的方式,来唯一标识一个用户。
  • 主机名可以使用 % 通配。

权限控制  

 权限分类

操作权限

查询权限

SHOW GRANTS FOR '用户名'@'主机名' ;

授予用户权限

GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';

撤销权限

REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';

注意事项:

  • 多个权限之间,使用逗号分隔
  • 授权时, 数据库名和表名可以使用 * 进行通配,代表所有。

三、函数

3.1 字符串函数

3.2 数值函数

3.3 日期函数

3.4 流程函数

 四、约束

常用约束

 外键约束

添加外键

删除外键

 

 五、多表查询

5.1 笛卡尔积:

                笛卡尔乘积是指在数学中,两个集合A集合 和 B集合的所有组合情况。

5.2 内连接

                相当于查询两部分A 和 B 的交集部分数据。

隐式内连接

select 字段列表 from 表1, 表2 where 条件 ....;

显内连接

SELECT 字段列表 FROM 表1 [ INNER ] JOIN 表2 ON 连接条件 ... ;

5.3  外连接

 

左外连接

SELECT 字段列表 FROM 表1 LEFT [ OUTER ] JOIN 表2 ON 条件 ... ;

右外连接

SELECT 字段列表 FROM 表1 RIGHT [ OUTER ] JOIN 表2 ON 条件 ... ;

 5.4 自连接

自连接查询 

SELECT 字段列表 FROM 表A 别名A JOIN 表A 别名B ON 条件 ... ;

联合查询(UNION )

SELECT 字段列表 FROM 表A ...
UNION [ ALL ]
SELECT 字段列表 FROM 表B ....;

5.5 子查询

A. 标量子查询(子查询结果为单个值)


B. 列子查询(子查询结果为一列)

 


C. 行子查询(子查询结果为一行)


D. 表子查询(子查询结果为多行多列)

 

六、事务

查看/设置事务的提交方式

SELECT @@autocommit ;
SET @@autocommit = 0 ;

提交事务

commit; 

回滚事务

rollback

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值