【MySQL】初识MySQL

数据库的重要性相信不需要我在这里着重强调了,这个专栏重点介绍的就是MySQL数据库,我所使用的版本为5.6,大致思路是先介绍MySQL的操作,然后再深入了解其底层原理,那就开始吧

1.数据库相关概念

  • 数据库(DB):从名称上来看我们大致可以知晓其意思,即存储数据的仓库
  • 数据库管理系统(DBMS):操纵和管理数据库的软件
  • 关系型数据库:使用表结构来存储数据,特点是使用SQL语言操作,有统一的标准,格式统一,便于维护

MySQL就是数据库管理系统,操作MySQL是使用SQL语言进行操作,所以学习MySQL的操作实际上就是在学习SQL语言

2.MySQL数据模型

在这里插入图片描述

3.SQL语法

3.1 通用语法

1.SQL语句可以单行或多行书写,以分号作为结尾
2.MySQL的SQL语句不区分大小写,但还是建议在书写的时候统一大小写
3.单行注释使用--或#注释(#是MySQL特有),多行注释使用/**/

3.2 SQL语法分类

分类说明
DDL定义数据库对象
DML对数据表的数据进行增删改操作
DQL查询数据
DCL创建数据库用户以及控制访问权限

3.3 DDL语句

3.3.1数据库操作

查询:
  show databases;            查询所有的数据库
  select database();         查询当前所处的数据库
创建:
  create database 数据库名;   如果数据库名已存在的话会报错
使用:
  use 数据库名;
删除:
  drop database 数据库名;     这个操作很危险,不要轻易使用

3.3.2数据类型

在介绍数据表操作之前需要先对MySQL里面常用的数据类型进行介绍
主要可以分为3类:数值类型,字符串类型和日期类型

  • 数值类型
tinyint :      大小为1字节
smallint:      大小2字节
int:           大小4字节
bigint:        大小8字节
float:         单精度浮点数,大小4字节
double:        双精度浮点数,大小8字节
  • 字符串类型
varchar(size):      可变长度字符串
text:               长文本数据
  • 日期类型
date:                   日期,格式是yyyy-mm-dd
time:                   时间,显示到秒
datetime:               date和time的混合
timestamp:              和datetime类似,但是是以时间戳的形式显示

3.3.3数据表操作

对数据表进行操作的前提是已经创建好数据库并使用了某一个数据库

查询:
  show tables;                        查询当前数据库的所有数据表
  desc 表名;                           查询数据表结构
  show create table 表名;              查询建表的SQL语句
创建:
  create table 表名(字段1 字段类型,
               字段2 字段类型,  
               ......
               );                      最后一个字段后面没有逗号
修改表结构:
  alter table 表名 add 字段名 字段类型;                   数据表中添加字段
  alter table 表名 modify 字段名 新字段类型;              修改字段数据类型
  alter table 表名 change 旧字段名 新字段名 新字段类型;    修改字段名和数据类型
  alter table 表名 drop 字段名;                          删除字段
  alter table 表名 rename to 新表名;                     修改数据表名
删除:
  drop table 表名;      这个操作同样危险

3.4 DML语句

DML语句是对数据表里面的数据进行增删改的操作,三个操作对应着三个关键字:insert,delete和update

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

这是给指定的字段添加数据,字段和值要对应,不加字段的话就是给全部字段添加数据,values后面可以有多个括号,一个括号就是一个一行数据,括号之间使用逗号隔开,添加的数据如果是字符串或者是日期的话需要包含在引号中

修改数据:
  update 表名 set 字段1=值1,字段2=值2......where 条件;

如果没有条件的话就是修改整个数据表的数据

删除数据:
  delete from 表名 where 条件;

不加上条件同样代表的是删除数据表所有数据

3.5 DQL语句

查询所使用的关键字为select;当然,这个关键字会和其它的关键字配合进行使用

3.5.1 基础查询

select 字段1,字段2......from 表名;

这是最基础的查询语句,如果你要返回所有的字段,使用通配符"*"即可
此外,我们还可以给返回的字段设置别名来增加可读性

select 字段1 as 别名1,字段2 as 别名2......from 表名;

在select后面加上关键字distinct就可以做到对查询结果去重

select distinct 字段1,字段2......from 表名;

3.5.2 条件查询

这里需要select和where进行配合操作

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

where后面的条件可以有多个
常用的条件运算符如下:
在这里插入图片描述
此外SQL语句中也有逻辑运算符
在这里插入图片描述

3.5.3 分组查询

在介绍分组查询之前需要介绍下聚合函数,因为二者经常配合使用
聚合函数是指将一列数据作为一个整体进行纵向计算(即函数是作用于某一列的)
常见的聚合函数如下:

函数说明
count统计数量
max/min求最大/最小值
sum求和
avg求平均值

注:null不参与聚合函数运算
在书写SQL语句的时候聚合函数作用于字段

select 聚合函数(字段1,字段2......) from 表名;

分组查询所使用的关键字为group by,有些情况下可能会使用到where和having

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

[]中表示可能会用到的语句,并不是说所有的分组查询都会使用到
这里要注意的是where和having的区别

  1. where是在分组之前进行筛选,条件不满足的话就不会参与分组;having是在分组之后对结果进行筛选
  2. where不能对聚合函数进行判断,having可以

3.5.4 排序查询

排序查询使用的关键字为order by

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

排序方式里面asc代表升序,desc代表降序,一般默认为升序

3.5.5 分页查询

使用关键字limit

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

起始索引从0开始
起始索引公式:(页码-1)*每页展示的记录数

3.6 DCL语句

DCL语句所控制的是管理数据库用户以及用户的访问权限

3.6.1 管理用户

查询用户:
  1. use mysql;
  2. select * from user;
创建用户:
  create user 用户名@主机名 identified by 用户密码;
修改用户密码:
  alter user 用户名@主机名 identified with mysql_native_password by 用户密码;
删除用户:
  drop user 用户名@主机名;

mysql是MySQL自己本身就有的数据库,里面的user数据表就是存储用户信息的位置,主机名是规定用户能够在哪些主机上访问数据库,默认为localhost(即当前主机)

3.6.2 权限控制

MySQL中有很多权限,但常用的也就只有少数的几种,如下:

权限说明
all所有权限
select查询数据
insert插入数据
update修改数据
delete删除数据
alter修改数据表
drop删除数据库/数据表/视图
create创建数据库/数据表
查询用户权限:
  show grants for 用户名@主机名;
授予用户权限:
  grant 权限列表 on 数据库名.表名 to 用户名@主机名;
撤销权限:
  revoke 权限列表 on 数据库名.表名 from 用户名@主机名

数据库名和表名之间有一个英文状态下的句号,别忘了
授予多个权限,权限之间可以使用逗号隔开
本篇文章就到这里,完

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星鸦wyk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值